• 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 find out the windowID of an open cell-view

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 143
  • Views 18731
  • 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 find out the windowID of an open cell-view

Sheppie
Sheppie over 5 years ago

Hi,

How do I do the following:
Using the procedure dbGetOpenCellViews() you get the list of all open cell-views in virtual memory. This lists both cell-views open in an editor window (i.e. opened through the librrary manager) and cell-views that are not opened in an editor window (i.e. opened using dbOpenCellViewByType()) I'd like to filter all cell-views which are opened in an editor window. So as an example:

I have two open cell-views: 1 = libA/cell1/view in a window and libB/cell2/view in memory only. The filetered list should only contain the database ID of  libA/cell1/view.

When you want to close data (CIW->File->Close Data) it presents a table listing all open cell-views. Ini this table, the window ID is shown (in the "status" column) if it is in an editor window. This is what I would like to know.

I could also specificly look for a particular lib/cell/view to see if it is opened or not by using procedure dbFindOpenCellView(), but this will only return the cell-view ID, not the windowID.

So the short question: how do I find the window ID from a cell-view ID?

Thanks in advance.

Kind regards,

Sjoerd

  • Cancel
Parents
  • mbracht
    mbracht over 5 years ago

    Hi Sjoerd,

    A cell view is an OA database object and it does not have window ID, so there's no way to get from a given cell view to a window. It does work the other way round though, for a window id you can get at the contained cell view. Here's how you get the cellviews that are currently displayed in a window:

    wCvs = (setof cv (foreach mapcar wid (hiGetWindowList) (geGetWindowCellView wid)) cv)

    You need to filter with setof() because (geGetWindowCellView wid) returns nil for windows that do not contain a cell view...the CIW as an example.
    You may then create the difference between dbgetOpenCellViews() and the list from the command above and there you go...

    (setof cv dbGetOpenCellViews() (not (member cv wCvs)))

    Max

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Sheppie
    Sheppie over 5 years ago in reply to mbracht

    Hi Max,

    Thank you for your solution. Nice example of looking at a problem from an other angle. I've tested it, but it always generates a warning: the CIW: There is no graphical edit environment assigned to window(1) because the window is not a graphic editor window. This is something I can get around with (temporarily sending warning messages to a different port) but then other "real" warnings will not be visible as well.

    Since Andrew already offered an other solution, I'll go with that one.

    With kind regards,

    Sjoerd

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Sheppie
    Sheppie over 5 years ago in reply to mbracht

    Hi Max,

    Thank you for your solution. Nice example of looking at a problem from an other angle. I've tested it, but it always generates a warning: the CIW: There is no graphical edit environment assigned to window(1) because the window is not a graphic editor window. This is something I can get around with (temporarily sending warning messages to a different port) but then other "real" warnings will not be visible as well.

    Since Andrew already offered an other solution, I'll go with that one.

    With kind regards,

    Sjoerd

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to Sheppie

    Hi Sjoerd,

    For completeness, if you wanted to use the "other angle" approach and avoid the warnings, and have a cellView you're looking for (in a variable cvToLookFor) you could do:

    car(exists(win hiGetWindowList() win~>cellView==cvToLookFor))

    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