Home > Community > Forums > Custom IC SKILL > changing action of strokes

Email

* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

 changing action of strokes 

Last post Wed, Dec 17 2008 12:17 PM by aplumb. 26 replies.
Started by MOSFET 12 Dec 2008 07:51 AM. Topic has 26 replies and 8665 views
Page 1 of 2 (27 items) 1 2 Next >
Sort Posts:
  • Fri, Dec 12 2008 7:51 AM

    • MOSFET
    • Top 500 Contributor
    • Joined on Fri, Dec 12 2008
    • Austin, TX
    • Posts 32
    • Points 580
    changing action of strokes Reply

    I recently figured out how to enable strokes in Virtuoso, and was wondering if there is a Skill function that will descend into a block that a given set of coordinates is contained within?  I searched the Skill help manual for "descend", but couldn't find any functions that do what I am describing.  How can I descend into a block using a downward mouse stroke whose endpoint is inside the block?

     

    Also, is it possible to define new strokes? 

    • Post Points: 20
  • Fri, Dec 12 2008 8:28 AM

    Re: changing action of strokes Reply

     You would need a series of commands to do what you want, one of the edit in place commands (possibly leHiEditInPlace) but first you must enter the last stroke point before executing the command:

    preXY( hiGetStrokeLastPt()) leHiEditInPlace()

     Look in dfII/etc/sted for more info on how to set up the procedures to be called by the strokes.

    The stroke editor - sted - is supported on Solaris but not on Linux in IC6.1. Start sted in a shell window to define your own strokes.

     Ted

    • Post Points: 35
  • Fri, Dec 12 2008 8:59 AM

    • MOSFET
    • Top 500 Contributor
    • Joined on Fri, Dec 12 2008
    • Austin, TX
    • Posts 32
    • Points 580
    Re: changing action of strokes Reply

    I am very new to Skill coding.  I understand that the hiGetStrokeLastPt() function is returning the endpoint of the mouse stroke, but what exactly is the preXY function doing?

    • Post Points: 20
  • Fri, Dec 12 2008 9:04 AM

    Re: changing action of strokes Reply

     preXY is a method to cache a point to feed the next command. This usually eliminates the prompting for an additional point. It should work with the HI version of the command.

     Ted

    • Post Points: 20
  • Fri, Dec 12 2008 9:12 AM

    • MOSFET
    • Top 500 Contributor
    • Joined on Fri, Dec 12 2008
    • Austin, TX
    • Posts 32
    • Points 580
    Re: changing action of strokes Reply

     So the steps would be as follows:

     

    1. save the coordinates of the endpoint of the mouse stroke using preXY(hiGetStrokeLastPt())

    2. use a function to select the instance that contains the point saved in step 1.

    3. use leHiEditInPlace() to descend into the instance selected in step 2.

     

    What function will accomplish step 2? 

    • Post Points: 20
  • Fri, Dec 12 2008 9:29 AM

    Re: changing action of strokes Reply

     No need for function for step 2. leHiEditInPlace will automatically select the cell under the point and pushes into it. See the help file on leHiEditInPlace to determine how it calculates which cell to choose based on overlapping shapes.

    Ted

    • Post Points: 20
  • Fri, Dec 12 2008 10:14 AM

    • MOSFET
    • Top 500 Contributor
    • Joined on Fri, Dec 12 2008
    • Austin, TX
    • Posts 32
    • Points 580
    Re: changing action of strokes Reply

    Is there a function like leHiEditInPlace() for schematics that will let me descend into a schematic block?

    • Post Points: 35
  • Fri, Dec 12 2008 10:18 AM

    Re: changing action of strokes Reply

     According to cdsFinder and the documentation, use schHiEditInPlace.

    • Post Points: 5
  • Fri, Dec 12 2008 10:21 AM

    • skillUser
    • Top 10 Contributor
    • Joined on Fri, Sep 19 2008
    • Austin, TX
    • Posts 2,567
    • Points 15,575
    Re: changing action of strokes Reply

    Hi,

    There is schHiDescend([w_windowid]) which will invoke the descend in the current mode (read/edit), or you can force the mode using either schHiDescendEdit() or schHiDescendRead() 

    Hope this is what you are looking for.

    Regards,

    Lawrence.

    • Post Points: 20
  • Fri, Dec 12 2008 11:45 AM

    • MOSFET
    • Top 500 Contributor
    • Joined on Fri, Dec 12 2008
    • Austin, TX
    • Posts 32
    • Points 580
    Re: changing action of strokes Reply

    Thanks for the help.  This code seems to accomplish my goal.  A downward stroke into a block will descend into it, and an upward stroke will return one level up the hierarchy.  The schHiDescend() function is what I was looking for, as opposed to the schHiEditInPlace() function.

     

    firstPt = hiGetStrokeFirstPt()
    lastPt  = hiGetStrokeLastPt()
      
    firstPt_yCoord = (cadr firstPt)
    lastPt_yCoord = (cadr lastPt)
      
      
    (cond ((lastPt_yCoord > firstPt_yCoord) schReturn())
    ((lastPt_yCoord < firstPt_yCoord) preXY(lastPt) schHiDescend())
    (else (printf "Error determining direction of stroke\n")))

     

    EDIT: It appears that schReturn() is not a valid function, even though leReturn() is a valid function.  It also appears that leReturn() also works in schematics.  Is there an equivalent leReturn() function for schematics, or should I just use the leReturn() function? 

    • Post Points: 5
  • Mon, Dec 15 2008 8:01 AM

    • MOSFET
    • Top 500 Contributor
    • Joined on Fri, Dec 12 2008
    • Austin, TX
    • Posts 32
    • Points 580
    Re: changing action of strokes Reply

    Austin CAD Guy:


    The stroke editor - sted - is supported on Solaris but not on Linux in IC6.1. Start sted in a shell window to define your own strokes.

     Ted

     

     We are using IC6.1.2.500.12 on linux, but we also have available Solaris machines to log into.  If I am logged in to a Solaris machine, can I run the sted program, even though the other Cadence tools we have are for Linux?  Where exactly is the sted executable located?

    • Post Points: 20
  • Mon, Dec 15 2008 8:09 AM

    Re: changing action of strokes Reply

     First, I'm glad to see you are on IC6.1.

    Set your path to the software on Solaris, it can be IC5141 or an older software as the strokes editor has not changed. It is in the <CDS_INST_DIR>/tools/bin directory - in my case /net/redneck/cds/sun4v/IC5141USR6/tools/bin. The resulting file (your def.strokes file) and other SKILL necessary to support the strokes should be in your home directory or your .cadence directory. Your .cdsinit should load it from where ever it is.

     Ted

    • Post Points: 20
  • Mon, Dec 15 2008 9:08 AM

    • MOSFET
    • Top 500 Contributor
    • Joined on Fri, Dec 12 2008
    • Austin, TX
    • Posts 32
    • Points 580
    Re: changing action of strokes Reply

    Austin CAD Guy:

     First, I'm glad to see you are on IC6.1.

    Set your path to the software on Solaris, it can be IC5141 or an older software as the strokes editor has not changed. It is in the <CDS_INST_DIR>/tools/bin directory - in my case /net/redneck/cds/sun4v/IC5141USR6/tools/bin. The resulting file (your def.strokes file) and other SKILL necessary to support the strokes should be in your home directory or your .cadence directory. Your .cdsinit should load it from where ever it is.

     Ted

     

    I think I found the sted executable here:

     /usr/local/met/apps/IC5033_sun4v.ISR200312121550/tools.sun4v/vframe/bin/

     

    However, when I run "./sted", I receive the following error:

     

    "Can't initialize the selected window system".

     

    I am using rsh to connect to the Solaris machine from my Linux machine.  What do I need to do to run sted? 

     

    • Post Points: 20
  • Mon, Dec 15 2008 10:58 AM

    Re: changing action of strokes Reply

    I would suspect that the rsh window does not have the display properly set. Use the command: echo $DISPLAY to show the display and make sure it is set to your system display. Rsh usually does not reset the display.

    If this does not work, you need to run a thin client which uses the native Solaris windows system.  Use VNC or some other Solaris based thin client to display back to your screen.

    • Post Points: 20
  • Mon, Dec 15 2008 11:12 AM

    • MOSFET
    • Top 500 Contributor
    • Joined on Fri, Dec 12 2008
    • Austin, TX
    • Posts 32
    • Points 580
    Re: changing action of strokes Reply

    Austin CAD Guy:

    I would suspect that the rsh window does not have the display properly set. Use the command: echo $DISPLAY to show the display and make sure it is set to your system display. Rsh usually does not reset the display.

    If this does not work, you need to run a thin client which uses the native Solaris windows system.  Use VNC or some other Solaris based thin client to display back to your screen.

     

    I did a "setenv DISPLAY <myIP>:0.0", and now when I run "./sted", it just says "Segmentation fault".  How can I debug this? 

    • Post Points: 20
Page 1 of 2 (27 items) 1 2 Next >
Sort Posts:
Started by MOSFET at 12 Dec 2008 07:51 AM. Topic has 26 replies.