• 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. Help regarding pop-push of a LIST

Stats

  • Locked Locked
  • Replies 37
  • Subscribers 144
  • Views 26776
  • 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

Help regarding pop-push of a LIST

Neeraj Vardhan
Neeraj Vardhan over 12 years ago

Hi,

I was trying to save my path coordinates as a list. But when i was trying to print the list of points, got errors "unbound variable-plist" . the code is mentioned below.

 

procedure(nvToGetMyLocation()

let((point plist)

cvw=getCurrentWindow()

point=hiGetPoint(cvw)

plist=append(plist list(point))

print(point)

print(plist)

); let

); procedure_nvToGetMyLocation

 

  • Cancel
  • theopaone
    theopaone over 12 years ago

    As Andrew said, nvMyDirection is not going to execute because p_list is a local variable in nvGetMyLocation. That is what the declaration in the prog statement does. The value is only available within the dynamic scope of the function (the function and all it the functions it calls). The variable does not exist at the interpreter level of when inside nvMyDirection. I would probably return the value from nvGetMyLocation and use that as the input to nvMyDirection.

     Look at your print values. Each one is the point and the a list containing only that point. There is nothing accumulating the data. It is better to use println or printf( "%L\n" ...) for your print statement so it will print on each line.

    Also, n (in the n++ statement) is a global variable.

    Ted

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

    I tried one of your bindkeys, and I get (not surprisingly):

    *Error* eval: unbound variable - n

    If I then type "n=0" in the CIW, the bindkey then works - it just prints the coordinates of the cursor in the CIW.

    So it's still not producing the error you say. I see no reason why it should - but I would expect that you'd get that error if you called nvMyDirection(), but you didn't say that you were calling that.

    It sounds as if you're lacking some basic understanding on variable scoping. I'd suggest that you read the SKILL Language User Guide which is an introduction to the SKILL Language.

    Kind Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Neeraj Vardhan
    Neeraj Vardhan over 12 years ago

    Hi Andrew and Ted, thanks a lot for the help. Andrew, i went through the manual yesterday. I got why i was facing problem. 

    Regards

    Neeraj 

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Neeraj Vardhan
    Neeraj Vardhan over 12 years ago
    Hi, This is not related to this topic, but i would like to know is there any function which could fetch me the current width of path. Regards Neeraj
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 12 years ago

    If you've got the shape in a variable, it would be shape~>width .

    For example, if you have the path selected (and only one thing selected), it would be car(geGetSelSet())~>width

    Kind Regards,

    Andrew 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Neeraj Vardhan
    Neeraj Vardhan over 12 years ago
    Thanks Andrew, It worked, Is there any other option to get the default width of metal layers. Because when i used this command "dbCreatePath" and width of the path as you mentioned. It didnt flag error for min width error for top layers, it just created the path. So was looking for any function which could get me the default width. ex if i could get the width from the path form which pops up after i use p+F3 to change the default width. Regards Neeraj
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 12 years ago

    techGetSpacingRule(techGetTechFile(geGetEditCellView()) "minWidth" "Metal1")

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Neeraj Vardhan
    Neeraj Vardhan over 12 years ago
    Thanks Andrew I am stuck with another problem, the function hiGetPoint(CV) provides us the dynamic point coordinates. Which is not suitable for forming paths using those points. Is there a way i could get the points which provide me the points which are suitable for drawing a path. I dont know how to paste the screen shots, as it would be easy to understand. Regards Neeraj
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 12 years ago

    Neeraj,

    You should use the enterPath() function.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Neeraj Vardhan
    Neeraj Vardhan over 12 years ago
    Hi Andrew, sorry to trouble you. Can you please give me an example of entryPath() function. I have gone through the manual but, i am unable to understand it completely how its working.
    • 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