• 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 should we found a multipart path instance in a cell...

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 144
  • Views 14690
  • 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 should we found a multipart path instance in a cell view.

VEERA PRAMOD
VEERA PRAMOD over 16 years ago

Hi all..

I had drawn some multipartpaths in a cell view.How should i know it is multipartpath instance or not using CIW.If any one knows please give me the solution. 

 

Thank you. 

Veera.K Pramod 

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 16 years ago
    Veera,

    I'm not entirely sure I understand your question. I'm assuming you're asking if you can tell the difference between a multipart path created via the Create->Multipart Path menu (perhaps using a template) and one created using SKILL?

    If so, the answer is "no". There is no information on the MPP ROD object (or the db object for the master path) which records whoich template was used to create it, let alone the method of creation.

    Why do you need to know?

    Regards,

    Andrew
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • skillUser
    skillUser over 16 years ago

    Hi Veera,

    If you want to find which of all the paths are multi-part paths as opposed to regular paths, then you can first check the ROD-iness of the path and then check for sub-parts, this will identify it as a multipart path. For example:

    ;; find the rod shapes, not specifically paths
    setof(sh cv~>shapes rodGetObj(sh))
    => (db:0x4532da92 db:0x4532da94)
    ;; find and select all rod path objects
    mapc('geSelectFig setof(sh cv~>shapes sh~>objType=="path" && rodGetObj(sh)))
    => (db:0x4532da92 db:0x4532da94)
    ;; iterate over all shapes and find only rod paths that have sub-parts
    foreach(sh cv~>shapes
     when(sh~>objType=="path" && rod=rodGetObj(sh)
       when(rod~>subShapes
        geSelectFig(sh))
      )
    )

     I hope that this is what you were looking for.

    Regards,

    Lawrence.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 16 years ago
    Veera,

    See - Lawrence and I had two completely different interpretations of your question. Just shows the importance of asking a complete and precise question!

    Best Regards,

    Andrew
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Naveen P Kumar
    Naveen P Kumar over 15 years ago

    Hi,

      I am facing a similar issue. I am using "dbCopyFig" on a multipart path but it doesnt copy the subparts. It just copies the base path.

    I tried to see if there is any MPP property for the obj by dbId~>? and Im not able to find any.

    So How do I make dbCopyFig work for MPP.

     

    Thanks,

    Naveen P

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • dmay
    dmay over 15 years ago

    You can use rodGetObj on a shape to see if it is a rod object (a multi-part path is a ROD object - Relative Object Design). You can also use rodGetNamedShapes on a cellview id to get all of the rodObjects in the cellview. From the rod object id, you can get the shape ids of all the sub-parts of that multi-part path. In this way you can treat these MPP shapes different from other shapes in your cell. However, as far as I know, there is not currently a way to copy the multi-part path in Skill code. You can copy it interactively using leHiCopy, but I don't think you can do it in a script. Maybe someone from Cadence can confirm this.

    Here is how you would get the shape ids that are in your MPPs in your cellView:
    cv = geGetEditCellView()
    rodParts = nil
    foreach(shp cv~>shapes
        when(r=rodGetObj(shp)
            foreach(subShp r~>subShapes
                rodParts = cons(subShp rodParts)
            )
        )
    )

    Derek

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

    Derek's right. In fact there's a "non solution" solution 11011335 which describes this limitation.

    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