• 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. changing action of strokes

Stats

  • Locked Locked
  • Replies 26
  • Subscribers 144
  • Views 23509
  • 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

changing action of strokes

MOSFET
MOSFET over 16 years ago

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? 

  • Cancel
  • Austin CAD Guy
    Austin CAD Guy over 16 years ago

     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

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • MOSFET
    MOSFET over 16 years ago

    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?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Austin CAD Guy
    Austin CAD Guy over 16 years ago

     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

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • MOSFET
    MOSFET over 16 years ago

     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? 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Austin CAD Guy
    Austin CAD Guy over 16 years ago

     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

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • MOSFET
    MOSFET over 16 years ago

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

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Austin CAD Guy
    Austin CAD Guy over 16 years ago

     According to cdsFinder and the documentation, use schHiEditInPlace.

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

    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.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • MOSFET
    MOSFET over 16 years ago

    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? 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • MOSFET
    MOSFET over 16 years ago

    Austin CAD Guy said:

    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?

    • 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