• 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. create cellView with ddGetObj

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 143
  • Views 14577
  • 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

create cellView with ddGetObj

NickJ
NickJ over 4 years ago

I have some code that allows me to open .csv files with oocalc (libre office) from within library manager. This works great for existing files.

I'm trying to add functionality that allows for the creation of .csv views from lib managet (again using oocalc).

I'm using the ddGetObj() to create the file as the dbOpenCellViewByType() won't work with a csv view. The csv view seems to be correctly registered etc. it's just the ggGetObj that isn't working.

I've tried getting it to create schematic and layout views, but can get nothing to work, but I can only get it to find already existing views. The Virtuoso Design Environment SKILL reference suggests it should create a view.

How do I get this to create a view.?

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

    dbOpenCellViewByType won't do the job, because that's specifically for creating OA database views (or OA database files within other views). ddGetObj in itself will only do part of the job because it creates the directory structure but not the files within the view.

    You may find this article useful: How to create a text cellview using SKILL? - this can be used to create not only cellViews of type "text", but also other registered viewTypes which have a textual file. So I'm pretty sure this will help you.

    Andrew

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

    OK cheers, I'll have a look at that to see if I cna get that working.

    I know that dBOpenCellViewByType doesn't work. It was ddGetObj that I think should work. I don't understand why it doesn't.

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

    ddGetObj does create the cell or view (or even file within the view). However, it only returns a handle on the directory or the file itself; it's not very useful beyond that - it won't put some desired file content in the right place. It doesn't take care of locking the file, creating the contents, freeing the lock when you're done with it and so on. If you look at the article I pointed to, it uses ddGetObj to do the basic file creation, and then handles locking, giving you a means to write the contents, and then close the view to free the lock. 

    The issue is that ddGetObj is too low level for your needs. There's also stuff in virtuoso to clean up empty cellVIews, so that may also kick in if no content is created.

    Andrew.

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

    Hi Andrew, the answer you linked to unfortunately doesn't do what I need. The ddGetObj does what I need. Do you have any idea why it isn't creating the view?

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

    So if you do:

    file=ddGetObj("mylib" "mycell" "csv" "file.csv" nil "a")

    it should create mycell/csv as a view, and then creates "file.csv" (zero-sized) with a master.tag file referencing that file. The function should return a dd object for the file.

    Does that not work? If not, what happens?

    If I then do ddReleaseObj(file) it goes ahead and deletes the cell/view because there was no data in the file.

    Andrew.

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

    So if you do:

    file=ddGetObj("mylib" "mycell" "csv" "file.csv" nil "a")

    it should create mycell/csv as a view, and then creates "file.csv" (zero-sized) with a master.tag file referencing that file. The function should return a dd object for the file.

    Does that not work? If not, what happens?

    If I then do ddReleaseObj(file) it goes ahead and deletes the cell/view because there was no data in the file.

    Andrew.

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

    Great, I have that working now. I was using the the ddGetObj incorrectly.

    • 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