• 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. Regarding "dbGetTrueOverlaps()"

Stats

  • Locked Locked
  • Replies 12
  • Subscribers 144
  • Views 6582
  • 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

Regarding "dbGetTrueOverlaps()"

Neeraj Vardhan
Neeraj Vardhan over 12 years ago

Hi,

I am writing a code to get all instances under a marker layer. I tried to use dbGetTrueOverlaps() but it failed with an error of "*Error* dbGetTrueOverlaps: Invalid bBox - (((-0.915 0.025) (4.695 3.135)))". I have mentioned the code below, 

 

 procedure(nvGetVia3()

cv=geGetEditCellView()

x=geGetSelSet()

y=x~>bBox

shape_new=dbGetTrueOverlaps(cv y)

)

 

Thanks & Regards

Neeraj 

 

  • Cancel
  • RFStuff
    RFStuff over 12 years ago

     You may dolike below to NOT get any nil.

    I think y=x~>bBox is not the list format dbGetTrueOverlaps() wants.

     

     procedure(nvGetVia3()

    cv=geGetEditCellView()

    x=geGetSelSet()

    y=x~>bBox

    shape_new=dbGetTrueOverlaps(cv car(y))

    )

     

    Thanks

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • RFStuff
    RFStuff over 12 years ago

    Sorry I pressed the POST button twice.....

     You may do like below to NOT get any nil.

    I think y=x~>bBox is not the list format dbGetTrueOverlaps() wants.

     

     procedure(nvGetVia3()

    cv=geGetEditCellView()

    x=geGetSelSet()

    y=x~>bBox

    shape_new=dbGetTrueOverlaps(cv car(y))

    )

     

    Thanks

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 12 years ago
    This is because geGetSelSet returns the list of selected objects and hence y contains the list of bounding boxes. So you can either do x=car(geGetSelSet()) and keep your call to dbGetTrueOverlaps as before, or use the approach that RFStuff suggested below.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Neeraj Vardhan
    Neeraj Vardhan over 12 years ago

    Thankyou RFStuff and Andrew. I am facing a problem in picking up instance below the selected layer. can you provide me an example, by using dbGetTrueOverlaps() function, and how to pick the instance below the selected layer and print there location.

    Regards

    Neeraj 

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • RFStuff
    RFStuff over 12 years ago

     Dear Neeraj,

    You may follow the link below :-

     Topic:-

    Script for finding same Metal type Shape Overlapping a Trace

     /forums/T/25186.aspx

    Kind Regards,

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Neeraj Vardhan
    Neeraj Vardhan over 12 years ago

    Thanks RFSTuff for a  quick reply , I have one more query, how can i select all the instances under the layer and delete some of them later. As we do by search and then select and delete specific things from them.

    Regards

    Neeraj 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • RFStuff
    RFStuff over 12 years ago

    If you use dbGetTrueOverlaps(), you may get a list of lists something like below. The 1st one is the ID of the selected trace.You can always eliminate it using unless like Andrew's code in the POST.

    The first ID in each list represent the instance name in the hierarchy. The last one in each list is the actual object (may be a PATH,POlygon,Shape..etc). Each list is basically a nested list of the hierarchy.

    If you have more number hierarchy you will get more depth in the nesting. If you get the idea you can easily extract the instance ID.

    One can  basically argue that the instance is a last but one in a nested list returned by dbGetTrueOverlaps().

    You can also try  dbGetInstTransform(). It may NOT work in IC5141.

     

     

     shapeList = dbGetTrueOverlaps(cv obj1~>bBox obj1~>layer 0:5)
    \t (db:217705012
    \t     (db:217517248 db:262161624)
    \t     (db:217517248 db:262161472)
    \t     (db:217517248 db:262161312)
    \t     (db:217517248 db:261977724)
    \t     (db:217517248 db:261977644)
    \t     (db:217517248 db:261977564)
    \t )
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Neeraj Vardhan
    Neeraj Vardhan over 12 years ago
    Hi RFStuff, Hope i was not clear in my last post. Let me give a example, i have a huge layout from which i have to select "VIA5" for specific area. And i just want my SKILL code to select these instance, and allow me to delete only those which i want to from the selected once. It should be such that my code selects and i could unselect the not needed ones manually and then press . Regards Neeraj
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • RFStuff
    RFStuff over 12 years ago

    I am NOT still clear what u want to do actually.

    But what I understand from your post, you may do something as below:-

    1) Find the overlapped instance/objects using

    dbGetTrueOverlaps().
    2) You can use some thing like  dbGetTrueOverlaps(cv car(obj1~>bBox) "VIA5" 0:5) to get the VIA ovelap objects. I assume VIA5 is drawing alyer in your process.
     
    3) Then whatever you want you can do with it by using appropriate command.
        a) If you want to do manually, then you can use Mr Andrew's code in the post to highlight the area to find the locations
        b) For doing in the code you can delete using appropriate commands.
     
    Kind Regards, 
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Neeraj Vardhan
    Neeraj Vardhan over 12 years ago
    I want the all of the "via5" under the given layer to be selected on layout. so that after running the script, when i go in layout, i could be able to move,copy or delete them or even deselect few of the instance from the all selected.
    • 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