• 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. Script to make visible dummy layer of those metal layers...

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 144
  • Views 16839
  • 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

Script to make visible dummy layer of those metal layers visible in LSW selection

Neeraj Vardhan
Neeraj Vardhan over 12 years ago

Hi can any one show some light on how to perform the solution. For example if i have "M1 drawing layer" visible in LSW , then if i press some bindkey the M1 dummy layer should get vissible. I have tried some code but it isnt working. Copied for reference below

 

procedure(showDummySet()

for(i 1 10

z="M"

layer=(concat(z,i))

x=leIsLayerVisible( list("layer" "drawing") )

if( x == "t" then (

leSetAllLayerVisible(nil) 

leSetEntryLayer(list(\"layer\" \"drawing\")) 

leSetEntryLayer(list(\"layer\" \"dummy\")) 

hiRedraw()

)

)

)

)

hiSetBindKey("Layout" "Ctrl<Key>8" "showDummySet() ") 

  • Cancel
  • chianga
    chianga over 12 years ago

    Hi Neeraj

     

    I think you need to use leSetLayerVisible instead of leSetEntryLayer, you might want to give that a try.

     

    Cheers,

    Andy 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Neeraj Vardhan
    Neeraj Vardhan over 12 years ago

    Hi Andy,

     I was getting this error for both   leSetLayerVisible & leSetEntryLayer as 

     *WARNING* (TECH-2000192): leIsLayerVisible: Invalid layer/purpose - ("layer" "drawing").

    I am not able to set the layer as per my wish. So either i have to use a "when" and make the code huge or any other option to sort this out.  

     

     

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • skillUser
    skillUser over 12 years ago

    Neeraj,

    You have quotes around "layer" which means it will be treated as a literal string, rather than the variable you intended. Take these quotes away and you may get it working. (I have not looked in detail at this code, I just noticied this bit).

    Regards,

    Lawrence.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Neeraj Vardhan
    Neeraj Vardhan over 12 years ago

    Thanks a lot Lawrence, the code is working fine .

    Regards

    Neeraj 

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Neeraj Vardhan
    Neeraj Vardhan over 12 years ago
    Hi lawrence, i was facing this error while running the code
    "t
    M1t
    *Error* eval: not a function - leSetLayerVisible(layer t)" 
     
    Can you assist me, why this error is comming. 
     
     
    Code :
     
    procedure(showDummySet()
    for(i 1 10
    z="M"
    layer=concat(z,i)
    print(layer)
    x=leIsLayerVisible(list(layer "drawing") 
    print(x)
    if( x == t then (
    leSetLayerVisible(list(layer "drawing") t)
    leSetLayerVisible(list(layer "dummy") t)
    )
    )
    )
    )
    )
     
    Thanks & Regards
    Neeraj  
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 12 years ago

    I didn't get the error you did - because there's a missing close parenthesis on the first leIsLayerVisible. If I add that, then I get the error you got, because there's an erroneous open parenthesis on the if line. For good measure I declared all the variables in the code as local too - and it now works fine (it did without adding the let, but I though it was a good idea to add):

    procedure(showDummySet()
        let((z layer x)
            for(i 1 9
                z="M"
                layer=concat(z,i)
                print(layer)
                x=leIsLayerVisible(list(layer "drawing"))
                print(x)
                if( x == t then
                    leSetLayerVisible(list(layer "drawing") t)
                    leSetLayerVisible(list(layer "slot") t)
                )
            )
        )
    )

    Note that we would recommend that you use a prefix for your function to avoid clashing with anyone else's function called "showDummySet".

    Regards,

    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