2 function bindkey unfuctional in IC5141?

Discussion in 'Cadence' started by Erik Wanta, Sep 2, 2004.

  1. Erik Wanta

    Erik Wanta Guest

    The following works in IC5033 but not in IC5141:
    hiSetBindKey("Layout" "<Key>5" "leSetEnv(\"orientation\" \"MX\")
    leHiMove()")

    In IC5141 it just does the leHiMove(). Any ideas why it is not
    changing the orientation in IC5141?
     
    Erik Wanta, Sep 2, 2004
    #1
  2. Erik Wanta

    Erik Wanta Guest

    Looks like leSetEnv is being discontinued. The following didn't seem
    to work however:
    hiSetBindKey("Layout" "<Key>5" "envSetVal(\"layout\" \"orientation\"
    'cyclic \"MX\") leHiMove()")

    Any ideas why envSetVal("layout" "orientation" 'cyclic "MX") isn't
    working?

    Note: There are a number of environment variables that are no longer
    compatible with leSetEnv and leGetEnv. The setting methods for the
    environment variables are noted in this Appendix under the heading
    Setting Method, which is included with the description of each
    environment variable. Cadence recommends that you use only envSetVal
    and envGetVal to determine the setting of, set, or reset environment
    variables.
     
    Erik Wanta, Sep 2, 2004
    #2
  3. leSetEnv is not being discontinued as far as I know. It's still used quite
    extensively in the code.

    It should keep the env vars in sync with the envSetVal() settings anyway, so it
    shouldn't really make any difference.

    Where did that Cadence recommendation come from? Is that in the docs somewhere,
    or was it something an AE told you?

    (I'll do some experimentation with this orientation issue when I can get in
    front of a workstation, or boot my laptop up in Linux).

    Regards,

    Andrew.
     
    Andrew Beckett, Sep 3, 2004
    #3
  4. Erik Wanta

    Erik Wanta Guest

    Andrew:
    The following note was found on sourcelink:
    Is there a difference between envSetVal and leSetEnv? Note that the
    "setting method" for orientation is envSetVal. What is the expected
    behavior after setting:
    envSetVal("layout" "orientation" 'cyclic "MX")

    Is it that it will give a new instance MX orientation to start with?

    In the earlier IC5033 versions the bindkey I mentioned in my original
    post worked. That is when I used the bindkey it would change the
    rotation and move the instance.

    I was thinking that maybe I could get around this in IC5141 by doing a
    car(geGetSelSet())~>orient~>"MX" or something but I don't have access
    to Cadence right now to test.
     
    Erik Wanta, Sep 4, 2004
    #4
  5. Hi Erik,

    I did some experiments, and found that the behaviour changed in IC5033 USR2 and
    IC5141. It now always resets to R0 within the move function.

    It's nothing to do with differences between leSetEnv and envSetVal. In fact,
    there should be no usage differences between using these two functions (the
    environments should always stay in sync; both exist for historical reasons -
    primarily that leSetEnv existed before the common environment capability that
    was added many releases back).

    Anyway, a bit of research showed that the behaviour changed as a result of

    PCR: 658273
    Title: Set environment var orientation to R0 in first creation.

    This was considered a bug by the customer in that case (with good reason - it
    was rather inconsistent in its behaviour - setting the environment variable only
    affected the first command, and was reset for subsequent commands). It was
    changed to always reset each time - the point is that this environment variable
    is used as an action rather than a state, and is used to communicate internally
    between different parts of the tool.

    However, it seems that your usage wasn't taken into account - effectively you
    were taking advantage of this "bug" (not perceived as a bug by you).

    So the following PCR was filed (for another customer originally, but also linked
    to from an SR from one of your colleagues):

    PCR: 726455
    Title: leHiMove/leSetEnv function

    This is fixed in IC5033 USR3, and I believe IC5141 USR1. The fix is to have
    another env setting:

    layout resetOrientation boolean t

    (the default is above) - you can set it to nil if you don't want it to reset the
    orientation in the move command, but pick up the orientation env var
    directly.

    Regards,

    Andrew.
     
    Andrew Beckett, Sep 9, 2004
    #5
  6. Erik Wanta

    Erik Wanta Guest

    Andrew:
    Thank you for the additional information!

    I am a little confused however. I would expect that if I set the
    layout orientation variable that it would use the orientation that I
    set for all future operations. If it resets it immediately then when
    does it use the orientation I set?
     
    Erik Wanta, Sep 12, 2004
    #6
  7. Hi Erik,

    Really the env var was not intended for public use - but was made
    public some time ago without it being thought through properly.
    As a result, this use of it as a communication mechanism between
    commands was not made consistent with use model you have for it. I'm
    sure it could have been implemented a better way which satisfies
    everyone, but at least there's a fix for now.

    Andrew.
     
    Andrew Beckett, Sep 13, 2004
    #7
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.