• 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 Design
  3. Issue with Deselecting Labels Having "Text Drawing" Layers...

Stats

  • Replies 3
  • Subscribers 125
  • Views 56
  • Members are here 0

Issue with Deselecting Labels Having "Text Drawing" Layers in Layout

AR202509246930
AR202509246930 1 hour ago

Hi everyone,

I've implemented logic to deselect the labels VPW, VNW, VPERI, and VSS. While VPW and VNW are getting deselected correctly—likely because they contain layers like "nplssa and pplssa label"—I'm facing an issue with VPERI and VSS. These two labels have "text drawing" layers, and they are not getting deselected as expected.

Please find the code below 

Has anyone encountered this behavior before or have suggestions on handling "text drawing" layers differently?

Thanks in advance!


procedure(selectAllLayoutObjects()
let( (cv)
cv = geGetEditCellView()

;; Select instances
foreach(inst cv~>instances
unless((equal inst~>cellName "spacer")
geSelectFig(inst)
))
;; Select pins and labels
foreach(shape cv~>shapes
unless((or (equal shape~>pin~>term~>name "VPERI")
(equal shape~>pin~>term~>name "VSS")
(equal shape~>theLabel "VPW")
(equal shape~>theLabel "VNW")
(equal shape~>theLabel "VSS")
(equal shape~>theLabel "VPERI")
)
geSelectFig(shape)
))))


  • Cancel
  • Sign in to reply
  • Andrew Beckett
    Andrew Beckett 1 hour ago

    Can you select one of these labels (on text) only (ie nothing else selected) and then enter:

    car(geGetSelSet())~>??

    and share what it shows?

    Your post was a bit confusing because it talks about deselecting things, whereas in reality it is selecting everything except a set of objects meeting a criteria; it doesn’t deselect at all.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • AR202509246930
    AR202509246930 1 hour ago in reply to Andrew Beckett

    Hi Andrew,
    Please find the car(geGetSelSet())~>?? response below



    car(geGetSelSet())~>??
    (db:0x6b8c252a cellView db:0x00c9009a objType "textDisplay"
    prop nil bBox
    ((0.04 1.395)
    (0.0915 1.405)
    ) children
    nil groupMembers nil isAnyInst nil
    isShape t matchPoints nil net
    nil parent db:0x6b8c252f pin nil
    purpose "drawing" textDisplays nil assocTextDisplays
    nil markers nil figGroup nil
    isUnshielded nil shieldedNet1 nil shieldedNet2
    nil layerName "text" layerNum 230
    lpp
    ("text" "drawing") connRoutes nil routeStatus
    "normal" owner db:0x6b8c239c associate db:0x6b8c239c
    font "roman" height 0.01 isDrafted
    t isOverbar nil justify "centerLeft"
    orient "R0" text "name" xy
    (0.04 1.4) isVisible t assocType "attrAssocType"
    isNameVisible nil isValueVisible t
    )

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Andrew Beckett
    Andrew Beckett 42 minutes ago in reply to AR202509246930

    As I suspected, the "labels" are actually textDisplays in this case. A textDisplay object shows the value of an associate object/property - in this case (probably) the associate is the terminal and it's displaying the terminal name. To check it, you'd need to use:

    (and (equal shape~>objType "textDisplay") (equal (get shape~>associate shape~>text) "VSS"))

    or it might be simpler to just do:

    (and (equal shape~>objType "textDisplay") (member (get shape~>associate shape~>text) '("VSS" "VPERI" "VPW" "VNW")))

    to catch all of the allowed names in one statement - and then do something similar for labels.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • 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