• 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. How to select the specific type of object by coordinati...

Stats

  • Locked Locked
  • Replies 10
  • Subscribers 143
  • Views 18452
  • 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

How to select the specific type of object by coordination

wenckey
wenckey over 6 years ago

In a layout cellview, I have the coordinate of the object, but in that location many objects there, like path/ via/ polygon

if I only want to select the type "via", what skill command I can use?

How about select all object in the location?

Also I want to move the selected object to a certain location. What's the command?

  • Cancel
Parents
  • Marben
    Marben over 6 years ago

    Hi Wenckey

    Something like these.

    Hope this helps.

    procedure( svx()
     cv = geGetEditCellView()
     x = 13.899
     y = 0.37
     
     foreach(via cv~>vias
      via_x = car(via~>xy)
      via_y = cadr(via~>xy)
      if( via_x == 13.899 && via_y == 0.37 then
       geSelectFig(via)
      ) ;if
     );for
    ) ;proc


    ; To select all object in that location.
    procedure( sva()
     x = 13.899
     y = 0.37
     cv = geGetEditCellView()
     geSelectAll()
     foreach( obj geGetSelSet()
      x_coord = car(obj~>xy)
      y_coord = cadr(obj~>xy)
      printf("\nx = %L y = %L" x_coord y_coord)
      if( x_coord != x && y_coord != y then
       geDeselectFig(obj)
      ) ;if
     ) ;for
    );proc


    Best regards,

    Marben

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 6 years ago in reply to Marben

    Hi Marben,

    Unfortunately that wouldn’t be very efficient for a large layout with lots of vias and lots of shapes.  Better would be to use dbViaQuery or dbShapeQuery to find vias or other shapes in that location. You’d just define the bBox as a list of the point twice. You could also use dbGetOverlaps as a more general query for objects in that location - in all cases you’d use 0 as the start and stop level, and then you’d use geSelectFigs on the resulting list of objects. 

    Regards,

    Andrew

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • wenckey
    wenckey over 6 years ago in reply to Andrew Beckett

    Thanks for the response. Can you give me a quick example like select the via in location(X,Y). 

    I cannot find the instruction for dbViaQuery or dbShapeQuery in cdsFinder. How can I find the command in any document?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 6 years ago in reply to wenckey

    cv=geGetEditCellView()
    pt=17:-1
    vias=dbViaQuery(cv list(pt pt) 0 0)
    geSelectFigs(vias)

    I'm rather surprised that you don't find dbViaQuery or dbShapeQuery in cdsFinder or by searching for it in cdnshelp. Which IC version are you using? (what does getVersion(t) in the CIW return?)

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 6 years ago in reply to wenckey

    cv=geGetEditCellView()
    pt=17:-1
    vias=dbViaQuery(cv list(pt pt) 0 0)
    geSelectFigs(vias)

    I'm rather surprised that you don't find dbViaQuery or dbShapeQuery in cdsFinder or by searching for it in cdnshelp. Which IC version are you using? (what does getVersion(t) in the CIW return?)

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • wenckey
    wenckey over 6 years ago in reply to Andrew Beckett

    Hi, Andrew:

    Thanks a lot! I checked my cadence version is "sub-version  IC6.1.7-64b.500.11" and I can find it with the help menu.

    My cdsFinder is old, I need to update it!

    Thanks

    Kevin

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 6 years ago in reply to wenckey

    Hi Kevin,

    Presumably something is wrong with your search path as it should just find this in the tools/bin dir of the IC installation. You can also just type startFinder() in the CIW to launch it, and that should pick the cdsFinder from your current installation. The current version has a useful "More Info" button which takes you from the quick summary to the full documentation.

    Kind Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • wenckey
    wenckey over 6 years ago in reply to Andrew Beckett

    Got it!~ 

    That will be great help.

    • 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