• 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. Most efficient db function to move all shapes in a design...

Stats

  • Locked Locked
  • Replies 15
  • Subscribers 143
  • Views 19010
  • 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

Most efficient db function to move all shapes in a design?

jaleco
jaleco over 8 years ago

Working in ic5141, what is the most efficient way to move all shapes in a design using the db functions?

I'm dealing with millions of shapes and would like to use a function like Move Origin, but this is not a db function.

Is it more efficient to create a figure group, add each shape to the group and move the group, or to select and move each shape?

Neither seem like good options for a list of millions of shapes.

  • Cancel
Parents
  • jaleco
    jaleco over 8 years ago
    I have found that working in no graph mode MAY be slower than working in graphics mode when dealing with millions of flat shapes, but need some more help to know of what I am trying to do is simply going to be time intensive - hours of computing time, if lucky enough not to exceed available memory….which has happened already in no graph mode.

    Is there any advantage to using one set of functions dependent on graphics vs. no graphics for this type of data intensive processing?
    My specific task is to select a set of flat shapes from a layout of flat shapes, make a new cell view with the selected set, and define its origin at a point within the selection bounding box area.

    There are many ways to do this, but the challenge has been the number of shapes to deal with, and hence the efficiency aspect of the thread title.

    Making an assumption that working in no graph mode would be more efficient than graphics mode, I have tried deleting shapes using dbGetOverlaps() and working with what is left, but this seems to have been the worst approach.

    I have tried using leMakeCell() in no graph mode, passing it a list of shapes found by dbGetOverlaps(), and a new origin point, and though it has to do less processing, I killed it after watching the screen for 2 hours.

    Finally, I am stuck trying to figure out how to work in graphics mode, scripting the use of the leHiMakeCell() form.
    I'm trying to use the form because in graphics mode, getting a selection set of shapes seems to take much less time than non-graphically.
    The form then takes the selection set to create the new cell.
    essentially:
    (create win, open cell view into win)
    geSelectArea(<args>) ; selects shapes
    leHiMakeCell() ; opens form
    form=hiGetCurrentForm() ; does not consistently get the form…it has actually worked only once
    form~>cellName~>value="new cell name"
    hiFormDone(form)
    dbClose(cell view)

    Almost every time I try this, the "form" variable does not get the form ID of the leHiMakeCell() form.
    I don't know if it is because the geSelectArea() function is not done when the form is called, or if there is some other way to put values into the form.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • jaleco
    jaleco over 8 years ago
    I have found that working in no graph mode MAY be slower than working in graphics mode when dealing with millions of flat shapes, but need some more help to know of what I am trying to do is simply going to be time intensive - hours of computing time, if lucky enough not to exceed available memory….which has happened already in no graph mode.

    Is there any advantage to using one set of functions dependent on graphics vs. no graphics for this type of data intensive processing?
    My specific task is to select a set of flat shapes from a layout of flat shapes, make a new cell view with the selected set, and define its origin at a point within the selection bounding box area.

    There are many ways to do this, but the challenge has been the number of shapes to deal with, and hence the efficiency aspect of the thread title.

    Making an assumption that working in no graph mode would be more efficient than graphics mode, I have tried deleting shapes using dbGetOverlaps() and working with what is left, but this seems to have been the worst approach.

    I have tried using leMakeCell() in no graph mode, passing it a list of shapes found by dbGetOverlaps(), and a new origin point, and though it has to do less processing, I killed it after watching the screen for 2 hours.

    Finally, I am stuck trying to figure out how to work in graphics mode, scripting the use of the leHiMakeCell() form.
    I'm trying to use the form because in graphics mode, getting a selection set of shapes seems to take much less time than non-graphically.
    The form then takes the selection set to create the new cell.
    essentially:
    (create win, open cell view into win)
    geSelectArea(<args>) ; selects shapes
    leHiMakeCell() ; opens form
    form=hiGetCurrentForm() ; does not consistently get the form…it has actually worked only once
    form~>cellName~>value="new cell name"
    hiFormDone(form)
    dbClose(cell view)

    Almost every time I try this, the "form" variable does not get the form ID of the leHiMakeCell() form.
    I don't know if it is because the geSelectArea() function is not done when the form is called, or if there is some other way to put values into the form.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

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