• 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 get the lower level shapes in skill?

Stats

  • Locked Locked
  • Replies 7
  • Subscribers 143
  • Views 16423
  • 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 get the lower level shapes in skill?

jiangzhou
jiangzhou over 12 years ago

I want to get the lower level shapes in an area.Also,I saw a post in forum.

Code  writing like below:

******************************************************

procedure(abGetOverlapShape(overlap)
  if(listp(overlap) then
      abGetOverlapShape(cadr(overlap))
  else
      overlap
  )
)

cv=geGetEditCellView()

figList2= dbGetOverlaps(cv list(car(pts) car(pts)) list("M2" "drawing") 32 t)

flattenendFigList2=foreach(mapcar overlap figList2
  srcShape=abGetOverlapShape(overlap)
  dbCopyFig(srcShape cv dbGetHierPathTransform(overlap))
)

******************************************************

But 'dbGetHierPathTransform' is used for IC6.1.How can I replace it in IC5.1?Thanks!!

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 12 years ago

    You can use this:

    /*****************************************************************
    *                                                                *
    *                (abGetOverlapTransform overlap)                 *
    *                                                                *
    * Get the transform needed to transform the shape in the overlap *
    *           into the current cell's coordinate system            *
    *                                                                *
    *****************************************************************/
    
    (procedure (abGetOverlapTransform overlap)
      (let (transform)
           (if (listp overlap)
               (setq transform (dbConcatTransform 
                                (abGetOverlapTransform (cadr overlap))
                                (or
                                  (dbGetq (car overlap) transform)
                                  (list (dbGetq (car overlap) origin)
                                        (dbGetq (car overlap) orient)
                                        1.0)
                                  )
                                ))
               (setq transform (list 0:0 "R0" 1.0)))
           transform
           )) 
    
     

     

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

    Thank you,Andrew .But if get shape from mosaic,error occurs.

    How to  deal with this problem?Thanks!!

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

    Rewrite the code to handle mosaics!

    I'm afraid I don't have time to do that now (in the code where I was using this I explicitly checked if the object was a mosaic and made no attempt to handle them - it's not that difficult though). I have a heavy schedule this week and so can only give quick answers on the forum.

    Sorry!

    Andrew.

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

    Thank you!

    If you have time,can you tell me the method to get the origin of every instance in mosaic?

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

     dbGetTrueOverlaps has an optional argument to return the row and column of the mosaic instance of the found shape. Then multiply the rows by the Y pitch and the columns by the X pitch and use that when transforming the shapes.

    Create a simple cell with two rectangles. Then place it in several mosaics with different rotations. Test your algorithm using this simple cell then you can build it into Andrew's code.

    Ted

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

     What is mosaic ?

    What the special features in it ?

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 12 years ago
    An array. If when creating an instance you specify the number of rows and columns then it will be a mosaic, not a single instance. That complicates things a little!
    • 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