• 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. Allegro X PCB Editor
  3. How to keep your variables in the design?

Stats

  • Replies 25
  • Subscribers 159
  • Views 12683
  • Members are here 0
More Content

How to keep your variables in the design?

Silver John
Silver John over 14 years ago

Hi, All.

I have a script that creates a form with several fields. I want to save the contents of these fields in design, and the next time when I open the design and launches the script I have already configured the form.

There are functions for including the file or string to .brd-file, there are functions for working with the properties of the design...

What is the best way to save my settings?

Maybe someone has an example code?

Thank you.

  • Sign in to reply
  • Cancel
  • eDave
    eDave over 14 years ago
    I just add properties to the design. Just take care to suitably name the properties to avoid conflicts.
    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Silver John
    Silver John over 14 years ago

    Thank you, Dave.

    How long you use this method? Wasn't problems?

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • eDave
    eDave over 14 years ago
    I have used this method for several years without a problem.
    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Ejlersen
    Ejlersen over 14 years ago

    Hi fxffxf

    I've been trying to get this to work using the desribed method but don't seem to be able to go back to an disembodied property list.

    I have the following simple example

    mylist = ncons(nil)
    mylist->ccw = t
    mylist->middle = nil
    mylist->cx = 0.12
    mylist->cy = 10.192
    mylist->layer = "TOP"
    mylist->stype = "LEFT"

    dataString = sprintf(nil " '%L" mylist)

    axlCreateAttachment("_ns_planar_settings" nil 0 'string dataString)

    The above does create my attachment. I can easily read it using

    a_id = axlGetAttachment("_ns_planar_settings" 'string) which returns an attachment id

    mylist1 = errsetstring(a_id->data) will return a list, but I cannot access the data using -> syntax

    typing mylist1 at the skill development window works. but still how do I access the list?

    I would expect mylist1->layer but that returns nil

    Skill > mylist1
    ((nil stype "LEFT" layer "TOP"
        cy 10.192 cx 0.12 middle
        nil ccw t
        )
    )

    Best regards

    Ole

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Silver John
    Silver John over 14 years ago

     Find two differences ;)

    Skill > mylist1 = errsetstring(a_id->data)
    ((nil middle nil ccw t))
    Skill > mylist
    (nil middle nil ccw t)

    Yes, I too faced with this problem.
    You can use: mylist1 = car(errsetstring(a_id->data))

    Also, I store the data without " ' ", and add an apostrophe at the time of restoring:
    sFormData = sprintf(nil "%L" _formData)
    ...
    sFormData = attachment->data
    formData = car(errsetstring(strcat("'" sFormData)))

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
<>
Cadence Guidelines

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