• 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. Delete an object at a given distance from a figure

Stats

  • Locked Locked
  • Replies 2
  • Subscribers 143
  • Views 13571
  • 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

Delete an object at a given distance from a figure

RobertSF
RobertSF over 8 years ago

Hello,

I generate many rod object on a area, I seek to delete some of them  which are at a given distance from another shapes drawing by a specific layer

Thank you for your help.

here my code:

procedure(delObjRulesSpac(cv rodList metalLayer spacingRule)
     let((direction rst)

         direction = '("top" "bottom" "right" "left")

         foreach(dir direction

             foreach(elem rodList

                  when(rodIsObj(elem)

                         when(elem~>dbId~>prop~>name == '("myProp") && elem~>dbId~>layerName == metalLayer

                                  rst = dbGetNeighbor(cv elem~>dbId~>bBox dir elem~>dbId~>layerName)

                                  when(rst

                                           dist = car(rst)

                                           when(dist < spacingRule  dbDeleteObject(elem~>dbId) )
                                )
                          )
                   )
            )
       )
  )
)

1) Init situation

2) my result

3) reslut hope

  • Cancel
  • skillUser
    skillUser over 8 years ago
    Hi Robert,

    Perhaps try a different approach, for example you could size up the path by your spacing rule (e.g. onto a temporary layer like "y0") and then find the rectangular shapes that are overlapped by the temp shape and delete those - it should make for an easier task.

    Hope this helps!

    Lawrence.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • RobertSF
    RobertSF over 8 years ago
    Hi Lawrence,
    Thank you for your respond.
    In fact I had this idea, and I used the pcGrowBox function to size up my path
    foreach(shapes myCellView ~>shapes
    overLaps = dbGetTrueOverlaps(myCellView pcGrowBox(shapes~>bBox mySpacing) shapes~>layerName 15)
    when(overLaps dbDeleteObject(shapes)
    )

    Thank you again
    Robert
    • 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