• 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. Transform

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 142
  • Views 14552
  • 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

Transform

archive
archive over 17 years ago

Hi , I have a polygon (METAL1) in an instance. Im using dbTransform to get the xy of the polygon w.r.t toplevel, but im not able to. For rectangles it is working fine but for polygons it is not giving the exact xy. exact xy = 15.9:1.36 with transform = (17.533 4.965) Inputs are ((db:54977564 cellView db:63255596 objType "inst" prop nil bBox ((16.388 4.46) (20.275 8.92) ) children nil groupMembers nil isAnyInst t isShape nil matchPoints nil net nil parent nil physConns nil pin nil purpose "cell" textDisplays nil assocTextDisplays nil baseName "I1" cellName "XOR" instHeader db:63559468 instTerms nil libName "test_lib" master db:64806956 name "I1" numInst 1 viewName "layout" conns nil mag 1.0 orient "R0" status "firm" transform ((16.855 4.76) "R0" 1.0) xy (16.855 4.76) ) (db:64837364 cellView db:64806956 objType "polygon" prop nil bBox ((1.145 0.505) (1.415 3.4) ) children nil groupMembers nil isAnyInst nil isShape t matchPoints nil net nil parent nil physConns nil pin nil purpose "drawing" textDisplays nil assocTextDisplays nil layerName "ME1" layerNum 46 lpp ("ME1" "drawing") nPoints 12 points ((1.415 1.21) (1.335 1.21) (1.335 1.87) (1.415 1.87) (1.415 3.16) (1.295 3.16) (1.295 3.4) (1.145 3.4) (1.145 0.505) (1.295 0.505) (1.295 0.76) (1.415 0.76) ) ) ) Please let me know why im getting an error for polygons.


Originally posted in cdnusers.org by rimser9
  • Cancel
  • archive
    archive over 17 years ago

    Well, you've not said what you're doing. You've just said you're using dbTransform (and there isn't a function called that), without any clue as to what the arguments are. Then you just listed a list with the expanded view of an instance and a polygon. I've no idea what the "xy" of a polygon means - a polygon is made up of a series of points.

    If you're more explicit about what you're doing - ideally with code and the output it generates - it might be easier to help you. Since the dbTransformPoint() function is pretty simple (if that's what you're using), and widely used, it's very likely to be something you're doing wrong in your code.

    Best Regards,

    Andrew.


    Originally posted in cdnusers.org by adbeckett
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • archive
    archive over 17 years ago

    In the code I have a LayercyclicField where by selecting a layer from that field I calculate the union of all the
    bBox of that layer. But for polygons it si not giving expected output. Sample inputs have been given in the forum.
    I hope this helps. Let me know if anything else is required.

    Yes Andrew I mean dbTransformPoint(). And by xy I mean llx:lly of the polygon.
    I used the command with the following arguments.
    dbTransformPoint(1.145:0.505 list(16.388:4.46 "R0" 1.0))
    output: (17.533 4.965)
    But the output should be 15.9:1.36

    Thanks.


    Originally posted in cdnusers.org by rimser9
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • archive
    archive over 17 years ago

    Well, it's been a while since I did maths at school, but last time I looked 1.145+16.388=17.533 and 0.505+4.46=4.965.

    So I cannot see how you can possibly expect 15.9:1.36?

    If I assume you're trying to transform all the points in the polygon by the "transform" of the instance (rather than the lower left of the instance's bbox), then that would be:

    foreach(mapcar point polygon~>points dbTransformPoint(point inst~>transform))

    and that gives:

    ((18.27 5.97)
    (18.19 5.97)
    (18.19 6.63)
    (18.27 6.63)
    (18.27 7.92)
    (18.15 7.92)
    (18.15 8.16)
    (18.0 8.16)
    (18.0 5.265)
    (18.15 5.265)
    (18.15 5.52)
    (18.27 5.52)
    )

    So I can't work out where you get 15.9:1.36 from!

    Regards,

    Andrew.


    Originally posted in cdnusers.org by adbeckett
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • archive
    archive over 17 years ago

    Ok I was looking at the wrong instance. its ok. Nothing wrong with the command.

    Thanks,


    Originally posted in cdnusers.org by rimser9
    • 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