• 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. leStretchShape( ) not stretching correct edges

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 144
  • Views 12272
  • 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

leStretchShape( ) not stretching correct edges

Michael Kolesnik
Michael Kolesnik over 4 years ago

The documentation is very confusing. Here is what is says about the stretch edge:

"Boolean list indicating whether each point in the figure is free to be moved or not. The list must match the number and order of points in the figure"

But then the example says this:

"leStretchFig( shapeA list( 0 2 ) list(nil t t nil) t )
Stretches the right edge of figure shapeA 2 units in the Y direction." (How does that know what the right edge is since the point list order is not shown?

I assumed that meant the stretch edges are the right and left edges of the shape as shown in the layout window but that is not the case

It seems to be the actual start and end points of the path, which is what I am stretching.

For a test I created a horizontal path then copied it in the layout window then flipped it in the horizontal axis.

I then applied this function to each path :

leStretchShape( car(geGetSelectedSet()) list( .08 0 ) list(nil t) t )

It ended up stretching the endPoint of the path in both cases.

The documentation needs to be updated to remove the "right" from the example and the "l_freePoints" argument needs to be detailed better.

  • Cancel
  • psill000
    psill000 over 4 years ago

    Hello
    When you copy the shapes you are assuming the points are in the same order as the copied shape.

    Try this for the selected shape points rather hard coding the points selected "geGetSelSetFigPoint(objDb)"

    You can test each of the shapes with geGetSelSetFigPoint to see what points are selected.

    Paul

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 4 years ago

    For paths and polygons, the order of the boolean flag list is in the same order as the ~>points. For rectangles and ellipses (which are defined via a bBox, which is the list of lowerLeft and upperRight coordinates), the order is lowerLeft, upperLeft, upperRight, lowerRight.

    I agree, the documentation should be improved - it should explain the point list that is used for path/polygon data, and what happens for rectangles, and the example should show a picture with the point list too. Commenting on it here won't improve that - the best thing to do is to use the "Send Feedback" icon (it's a little alert in the lower left within cdnshelp, or you can also do it from the documentation on Cadence Online Support).

    Andrew.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • Michael Kolesnik
    Michael Kolesnik over 4 years ago in reply to Andrew Beckett

    Thanks a bunch. I found the "Send Feedback" icon - on my help window it is in the lower right hiding somewhat off the screen but I will submit some feedback, probably just copy and paste your explanation since it is short and concise.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 4 years ago in reply to Michael Kolesnik

    Thanks Michael.

    Whilst I do generally get quite a bit of attention to any feedback I might provide myself, it's always good to have it from real customers! Plus I was a bit tied up earlier and could only send a quick response to you and didn't have the chance to submit the feedback to our technical publishing myself.

    Thanks,

    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