• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC SKILL
  3. dbLayerOr and dbLayerAndNot Issue

Stats

  • Locked Locked
  • Replies 1
  • Subscribers 143
  • Views 14173
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

dbLayerOr and dbLayerAndNot Issue

Kbrota
Kbrota over 6 years ago

Hello, 

I am facing some problem while using dbLayerOr and dbLayerAndNot. I wrote the following script to remove the overlapping part between two shapes. It workes nicely for any regular polygons. But, when I want to use it for removing overlapping content from a circular/arc shape object, the resultant layout is not circular anymore. It becomes a polygon (see the attached snapshot). I tried to use x_numVertices as 10000. But, it seems it does not work beyond a certain value. 

If you have any idea about how to fix this, that will be a great help for me. 

; Remove ONLY any overlapping regions from ovlplist

*/

procedure( RK_removeoverlaps(wg_list ovlplist @key (cellview nil) )

let( ( shapelist layer shape )

when( cellview == nil
cellview = geGetEditCellView() ; dbOpenCellViewByType("RK_compLib" "test" "layout" "" "a")
)

shapelist = nil
foreach( shape wg_list
shapelist = dbLayerOr(cellview "tempLay0" list(shape) shapelist)
)

foreach( shape ovlplist
layer = shape~>layerName
dbLayerAndNot(cellview layer list(shape) shapelist)
dbDeleteObject(shape)
)

); end let
); end procedure

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 6 years ago

    Unfortunately there's no publicly supported way of controlling the number of sides that will be used when converting the circle to a polygon (which has to be done here). The number of vertices is actually the maximum number for complex shapes before it splits into multiple shapes, so it's not related to the number of sides in the conversion.

    You'd have to use dbConvertEllipseToPolygon first on the circle and then you can control the number of sides used during the conversion.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information