• 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. Cannot overwrite EnterFunction Command for default bindkey...

Stats

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

Cannot overwrite EnterFunction Command for default bindkey definition

Pedro Paro Filho
Pedro Paro Filho over 8 years ago

Dears,


Minor problem, but I cannot overwrite the default bindkey definition with my own SKILL command.
By default, the layout command for "Ctrl <Btn4>" is geScroll(nil "n" nil) with the EnterFunction Command weScrollOrCycleUpWireViaAlignment().

If I try to change the bindkey command to hiZoomInAtMouse(), (loaded via .cdsinit or even through the Bindkey Editor), the EnterFunction command is not removed from the previous definition, and the bindkey doesn't work properly.

This is the Skill command I introduced in my .cdsinit.


hiSetBindKey("Layout" "Ctrl<Btn4Down>" "hiZoomInAtMouse()")

Any hints?

The virtuoso version is IC6.1.6-64b.500.7

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 8 years ago

    Use 

    hiSetBindKey("Layout" "Ctrl<Btn4Down> EF" "hiZoomInAtMouse()")

    You need EF on the end if you want to set the enter function bindkey.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Pedro Paro Filho
    Pedro Paro Filho over 8 years ago

    Hi Andrew,

    I was not clear, sorry. What I want to do is to remove (make it blank) the field "EnterFunction Command" when redefining the bindkey, otherwise the hiZoomInAtMouse() doesn't work.

    For some reason, I cannot achieve that by simply running the command hiSetBindKey("Layout" "Ctrl<Btn4Down>" "hiZoomInAtMouse()").

    If I do as you suggested, both "command" and "EnterFunction command" are filled with "hiZoomInAtMouse()".

    Thanks in advance for your support

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 8 years ago
    Try: hiSetBindKey("Layout" "Ctrl<Btn4Down> EF" "")

    Sorry - I'd try this myself but I'm a bit busy today...

    Andrew.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Pedro Paro Filho
    Pedro Paro Filho over 8 years ago

    Hi Andrew,


    Don't worry, as I said it is a minor issue, but I'm really surprised that redefining a bindkey (from its default definition) could be that tricky.

    I'll put it in a series of actions and results to better explain the situation:

    What I want in the end is: Bindkey: "Ctrl<Btn4Down>",  Command: "hiZoomInAtMouse()", EnterFunction Command: "" (blank)

    So, from the beggining:

    Action 1: Open Virtuoso (without loading my leBindkeys.il)

    Result 1: Bindkey: "Ctrl<Btn4Down>",  Command: "geScroll(nil "n" nil)",  EnterFunction Command: "weScrollOrCycleUpWireViaAlignment()"

    Action 2: Run command hiSetBindKey("Layout" "Ctrl<Btn4Down>" "hiZoomInAtMouse()")

    Result 2: Bindkey: "Ctrl<Btn4Down>",  Command: "hiZoomInAtMouse()",  EnterFunction Command: "weScrollOrCycleUpWireViaAlignment()"

    (Oddly the EF was kept, preventing the bindkey to work properly while I'm drawing a path in Layout Editor, for instance)

    What I found to be a workaround is to run a third step with the command you suggested  -  hiSetBindKey("Layout" "Ctrl<Btn4Down> EF" ""), only to erase the EF field.

    Please let me know if you smell any possible mistake from my side, otherwise thank you for you support.

    Best regards

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

    I'm not sure why you think this is tricky. The bindkey in normal mode is different from in enter function mode - so if using hiSetBindKey and you want to set or erase both the normal and enter function modes, you have to call hiSetBindKey twice, which is what you've done here with your step 3.

    After many releases of having no bind keys by default, we made a change a few releases back to automatically load the bindkeys in <ICinstDir>/share/cdssetup/dfII/bindkeys (these can also be overridden by the setup.loc mechanism) rather than requiring everyone to load a full set of bind keys from their .cdsinit file. However, what that means is that if you want to erase one of the defaults, you have to set it to blank.

    You could also just do:

    hiSetBindKeys("Layout" list(
      list("Ctrl<Btn4Down>" "hiZoomInAtMouse()" "")
    ))

    which would do the same thing. This function allows you to set both the normal and the enter function bind keys at the same time.

    That's the function used that  you see if you save from the Options->BindKey form.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Pedro Paro Filho
    Pedro Paro Filho over 8 years ago

    Great support Andrew!


    Thank you very much.

    Pedro

    • 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