• 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 160
  • Views 12711
  • 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
Parents
  • fxffxf
    fxffxf over 14 years ago

     Summary of this technique:

         This uses an attachment to store in the database a list of variables. For
         example, you design a form where the user enters in their preferences and
         you manage them in Skill via a disembodied property list. You would like to
         store the user's preferences with the design.

         ; create an attachment name, DO NOT USE "fxf". I would suggest using an
         ; underscore, company name and application to make it unique. For example:
         ;   _acme_bom_rpt
         ; would be a good attachment name.
         attachName = "fxf"

         ; A typical disembodied property list
         mylist = ncons(nil)
         mylist->ccw = t
         mylist->middle = nil
         mylist->cx = 0.12
         mylist->cy = 10.192
         mylist->layer = "TOP"
         ; NOTE:
         ;    Do NOT Store dbid's in the disembodied list or make sure to remove
         ;    them before storing as an attachment.

         ; Store list in current design (assuming user saves design)
         dataString = sprintf(nil " '%L" mylist)
         axlCreateAttachment(attachName nil 0 'string dataString)

         ; Next time user runs your Skill code, here is how to init the list:
         attach = axlGetAttachment(attachName 'string)
         if( attach)  then
               mylist = car(errsetstring(attach->data))
         else     ; no list stored in design so init to default settings
              mylist = ncons(nil)
              mylist->ccw = t
         )

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • fxffxf
    fxffxf over 14 years ago

     Summary of this technique:

         This uses an attachment to store in the database a list of variables. For
         example, you design a form where the user enters in their preferences and
         you manage them in Skill via a disembodied property list. You would like to
         store the user's preferences with the design.

         ; create an attachment name, DO NOT USE "fxf". I would suggest using an
         ; underscore, company name and application to make it unique. For example:
         ;   _acme_bom_rpt
         ; would be a good attachment name.
         attachName = "fxf"

         ; A typical disembodied property list
         mylist = ncons(nil)
         mylist->ccw = t
         mylist->middle = nil
         mylist->cx = 0.12
         mylist->cy = 10.192
         mylist->layer = "TOP"
         ; NOTE:
         ;    Do NOT Store dbid's in the disembodied list or make sure to remove
         ;    them before storing as an attachment.

         ; Store list in current design (assuming user saves design)
         dataString = sprintf(nil " '%L" mylist)
         axlCreateAttachment(attachName nil 0 'string dataString)

         ; Next time user runs your Skill code, here is how to init the list:
         attach = axlGetAttachment(attachName 'string)
         if( attach)  then
               mylist = car(errsetstring(attach->data))
         else     ; no list stored in design so init to default settings
              mylist = ncons(nil)
              mylist->ccw = t
         )

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Children
No Data
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