• 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. dbCopyFig nor lePasteFigs copy text display. Acces to leYankFigs...

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 142
  • Views 10873
  • 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

dbCopyFig nor lePasteFigs copy text display. Acces to leYankFigs buffer ?

ebecheto
ebecheto over 4 years ago

Hi all, i would like to copy from one cellView to another a part of layout, like the graphical : select-all, click in cellViewA, click into cellViewB  ;<= leHiCopy()

But of course automatically.

1) i tried something like :
geSelectAllFig()
leHiCopy()
enterPoint( ?points list(0:0 0:0) )
finishEnterFun( ) mouseAddPt(t) mouseFinishPt(  )

without succes.

2) I made a function based on :

leYankFigs( cvf ptArray nLevels );<= copy all instances normally does it copy pins also ?
lePasteFigs(cvt pt1)

But lePaste does not copy TextDisplay of rectangle Pins. Altough it copy 'label'

3) i made a try with dbCopyFig(REC cv)

but id does not copy pin name either.

Here is my question :

Can we get acces to the buffer of function leYankFigs where it stored the element temporary ?

So that i would create a function that copy TextDisplay as well from the RECTANGLE pins

Thanks for any advice.

Regards,

  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett over 4 years ago

    If you're copying the entire source cellView to the destination (which presumably contains other things too that you wish to preserve, otherwise you could just use dbCopyCellView), I would probably do this by using dbCreateInst() to create an instance of the source cellView in the destination, and then use dbFlattenInst (with appropriate arguments to flatten one level, and preserve pins etc). Would that do?

    In general all approaches using dbCopyFig have a challenge with textDisplay, because they are copying a single figure at a time. They do handle copying attached objects too, but unless the textDisplay is copied at the same time it can't re-create the relationship between the textDisplay and its dependent object. There is this article (I haven't checked it though): How to copy all pins and its textDisplay, labels from a layout cellview to another using SKILL

    You can't access the innards of leYankFigs/lePasteFigs.

    Andrew

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 4 years ago

    If you're copying the entire source cellView to the destination (which presumably contains other things too that you wish to preserve, otherwise you could just use dbCopyCellView), I would probably do this by using dbCreateInst() to create an instance of the source cellView in the destination, and then use dbFlattenInst (with appropriate arguments to flatten one level, and preserve pins etc). Would that do?

    In general all approaches using dbCopyFig have a challenge with textDisplay, because they are copying a single figure at a time. They do handle copying attached objects too, but unless the textDisplay is copied at the same time it can't re-create the relationship between the textDisplay and its dependent object. There is this article (I haven't checked it though): How to copy all pins and its textDisplay, labels from a layout cellview to another using SKILL

    You can't access the innards of leYankFigs/lePasteFigs.

    Andrew

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

    Thanks so much Andrew, fast and sharp-minded as always.

    i had some issues to play with dbCopyCellView, with INFO : dbCopyCellView: .../layout already in VM. No copy being done.

    I must be misleading the use of this function.

    I managed to copy one cell, with the last 't as overwrite; but it can only be done once, if i understand well.

    cv=dbCopyCellView( top    libName cellName "layout" nil nil t)

    So your answer is brilliant to use dbCreateInst() and dbFlattenIsnt() as you suggest.

    dbFlattenInst(inst 1 nil t);<= that function did the job.

    Thanks for the tip. Regards,

    Edouard

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

    Hi Edouard,

    dbCopyCellView() will work, but you have to not have the destination cellView open (and dbCopyCellView returns the destination cellView Id, so it becomes open after the copy). The behaviour is:

    1. If the destination is open readonly, and overwrite is off, you get the message you've seen
    2. If the destination is open at all, and you have overwrite on, it doesn't actually do the copy (the result is the existing cellView id)
    3. If the destination is closed but exists, and overwrite is off, you get a message about the copy not being done because it exists on disk

    So the solution would be to use dbFindOpenCellView and then dbPurge to purge prior to copy.

    Anyway, glad you were happy with my suggestion!

    Andrew

    • Cancel
    • Vote Up +1 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