• 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. Skill Routine Loads From Command Line but Not ilinit

Stats

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

Skill Routine Loads From Command Line but Not ilinit

archive
archive over 17 years ago

I know this may be a pretty broad question, but here it comes :) I have a skill routine in my Skill path that has no problem loading from the command line, ex: (load "tools.il") The skill routine works perfectly with no errors. The registerd functions work without issue. However when I try to load it through allegro.ilinit I get an error: E- *Error* load: error while loading file - "tools.il" With no other error messages. When I try to run a registered function (ex function_name) it gives an error like: E- *Error* toplevel: undefined variable - function_name At this point if I load it manually at the command line it works fine. Is there something different required to load skill from the ilinit as opposed to loading from the command line? Why would it work one way and not the other? Thanks for any help. Chris


Originally posted in cdnusers.org by CJB
  • Cancel
  • Sign in to reply
Parents
  • archive
    archive over 17 years ago

    You should make sure you do not execute any AXL APIs during allegro.ilinit except for axlCmdRegister.
    Neither the Allegro database nor the user interface is active when allegro.ilinit is parsed, so you need to stay away
    from having any AXL code execute.

    For example the following is not legal because an AXL function is executed during:
    p = axlDBGetDesign()

    But the following will work since the AXL API is inside a function that is not excecuted
    procedure( testme()
    p = axlDBGetDesign()
    printf("%L" p)
    )
    axlCmdRegister("test" 'testme)


    Contents of allegro.ilinit:
    1) Define new functions (procedures)
    2) axlCmdRegister allowed
    3) minimize the number of global scope variables. If you need to them keep it as simple as possible (e.g initialize to nil)


    Originally posted in cdnusers.org by fxf
    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • archive
    archive over 17 years ago

    You should make sure you do not execute any AXL APIs during allegro.ilinit except for axlCmdRegister.
    Neither the Allegro database nor the user interface is active when allegro.ilinit is parsed, so you need to stay away
    from having any AXL code execute.

    For example the following is not legal because an AXL function is executed during:
    p = axlDBGetDesign()

    But the following will work since the AXL API is inside a function that is not excecuted
    procedure( testme()
    p = axlDBGetDesign()
    printf("%L" p)
    )
    axlCmdRegister("test" 'testme)


    Contents of allegro.ilinit:
    1) Define new functions (procedures)
    2) axlCmdRegister allowed
    3) minimize the number of global scope variables. If you need to them keep it as simple as possible (e.g initialize to nil)


    Originally posted in cdnusers.org by fxf
    • 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