• 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. wait the design is loaded to run a SKILL routine

Stats

  • Replies 4
  • Subscribers 159
  • Views 13115
  • Members are here 0
More Content

wait the design is loaded to run a SKILL routine

willbi
willbi over 15 years ago

Hello all.

 I need a routine to be run at the loading of the design. But actually, the skill is loaded before open the design. Then I succeeded to launch a routine, but this one does not use the design, it just loads a form.

If I run this new routine that checks a property definition and redefines it if it is wrong, I got an Allegro crash!

 How to make that this new routine starts only once the design is open (and then axlCurrentDesign is different than "").

 Thanks in advance.

 willbi

  • Sign in to reply
  • Cancel
  • rong96
    rong96 over 15 years ago

    Use the axlTriggerSet function in your allegro.ilinit file to run SKILL code when a database is opened.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • willbi
    willbi over 15 years ago

    rong96 said:

    Use the axlTriggerSet function in your allegro.ilinit file to run SKILL code when a database is opened.

     

    Hello rong96.

     Thanks for the reply. In fact I remember that already ask for that and I already got this answer :-)

    In fact, I did in another way the last time I asked for, because I did not succeed in with the axlTriggerSet.

    And it is the same now:

    I have a "(defun redoDesc ()" somewhere. It checks if DESCRIPTION property is defined for "compdefs" and define it again if it is not. So I want this to be run at the loading of the BRD file.

    I tried to put axlTriggerSet('open 'redoDesc) in the allegro.ilinit, it failed. I tried everywhere I can, it never works.

    What's wrong?

    Thanks.

     

     

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

     see the example code in <cdsroot>share/pcb/examples/skill/trigger/trigger.il

    without seeing  your code I can only guess your problem is that your redoDesc function does not take an argument  but the openTrigger callback function requires an argument so I would change your function def to

         procedure( redoDes(t_open)

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • willbi
    willbi over 15 years ago

    Hello fxffxf

    I was reading trigger.il when I received your answer... But without that, I am not sure I would have succeeded.... Now, Yes, I understood how it works:

    axlTriggerSet 'open returns a list (t_open) containing a BRD name with full path and a second member t or nil showing if the BRD is existing or not.

    Then I need to treat it with my redoDesc function. I first add a argument to my function but if I use the function after the BRD is loaded I was getting an error. So I put an @optional and it works wherever the function is used. (at loading or after): (defun (redoDesc (@optional t_open)... and then I also saw that the axlTriggerSet can be placed anywhere (in the allegro.ilinit but also in the local startup.il or in the redoDesc.il itself...

    Many Thanks to all (I finally succeeded to manage it ;-)

    Have a nice week-end.

    • 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