• 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. Bindkeys

Stats

  • Locked Locked
  • Replies 8
  • Subscribers 127
  • Views 15838
  • 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

Bindkeys

1kewlcat
1kewlcat over 15 years ago

I am new to using skill and I have been trying to customize my bindkeys.   I have been struggling trying to get the syntax correct to use the lowercase letter "g" to turn the grid on and upper case "G" to turn it off.  I have been trying to wade through the documentation but for a newbie it's like trying to read the health care bill.  Any help would be GREATLY appreciated.

  • Cancel
  • skillUser
    skillUser over 15 years ago

     Hi KewlCat,

    The difference in the encoding is "<Key>g" versus "Shift<Key>g" in the syntax within the call to hiSetBindKey() or hiSetBindKeys(), for encoding "g" and "G" respectively.

    I hope that this answers your question.

    Regards,

    Lawrence.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • 1kewlcat
    1kewlcat over 15 years ago

    Lawrence,

    Thanks for the quick reply.  Here is what I've tried so far:

    alias bk hiSetBindKey

             bk("Layout" "<Key>g"        "leDisplayOptionsForm()dots)")
             bk("Layout" "<Key>g"        "leHiEditDisplayOptions() leDisplayOptionsForm( \"dots\")")
            bk("Layout" "<Key>g"        "leHiEditDisplayOptions() dots)")
            bk("Layout" "Shift<Key>g"   "leDisplayOptionsForm()none)")
            bk("Layout" "Shift<Key>g"   "leHiEditDisplayOptions() leDisplayOptionsForm() none)")
            bk("Layout" "Shift<Key>g"   "leHiEditDisplayOptions() none)")

     

    Thanks again,

    Stephen

     

     

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

     Hi Stephen,

    I don't think that these will work, though not because of the bindkey coding.  You appear to be wanting to turn on or off the dotted grid.  This can be achieved another way, e.g. a toggle bindkey:

    hiSetBindKey("Layout" "<Key>g" "hiGetCurrentWindow()->drawGridOn=!hiGetCurrentWindow()->drawGridOn")

    That should do the trick. This is a window-specific setting, though the .cdsenv variable, if set, is global across the layout windows.  However changing the latter will not affect existing windows, just new ones opened after the change.  The method above will toggle the current setting for that window.  You can, if you wish, creat two separate bindkeys for turning the grid on or off explicitly.

    Your method would not work as the attempts to open the form would not then allow any code afterward to run until the form was closed, the code is unable to modify the form "in the background".

    Regards,

    Lawrence.

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • 1kewlcat
    1kewlcat over 15 years ago

    Lawarnce,

     

    That is *exactly* what I was trying to do and your solution is even more elegant.  The toggle idea worked and it's always just a single keystroke - on/off.  Thanks so much for the lesson.

     

    Happy holidays,

    Stephen

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

    Hi Stephen,

    I'm glad that it worked and did what you needed, and that you (and others I hope) learned something in the process too.

    Have a great holiday season!

    Regards,

    Lawrence.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ArKa01
    ArKa01 over 10 years ago

    Hi Lawrence,

    Can you (or anyone) please explain how the line

    hiSetBindKey("Layout" "<Key>g" "hiGetCurrentWindow()->drawGridOn=!hiGetCurrentWindow()->drawGridOn")

    works?

    Thanks

    AR

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 10 years ago

    Display options update properties on the window object. They are typically seeded from a cdsenv setting - so for example:

    layout drawGridOn boolean t

    is the .cdsenv file entry, which can also be set using:

    envSetVal("layout" "drawGridOn" 'boolean t)

    However, that doesn't impact existing windows. Also, the envSetVal is the last resort for the lookup when opening a new window - it also looks for properties on the cellView, then falls back to properties on the library, then technology library, and finally the cdsenv.

    So what you're doing in this bindkey is retrieving the drawGridOn property from the window, inverting it (the !) and then setting it again. So this will toggle the current drawGridOn setting on the window.

    Does that help?

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ArKa01
    ArKa01 over 10 years ago
    Got it. Thanks
    • 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