User Language Programming (ULP) is arguably the most powerful feature in EAGLE, yet few users really leverage it. This feature allows users to write c-like programs that can manipulate every aspect of their design. User Language Programming gives you the user, the power to implement your own specialized functions. Bill of materials (BOM) exporting, dxf files importing, creating components arrays, part creation wizards (Fig 1), are all tools created through ULP writing. It empowers you to create niche functions specific to your workflow and area of expertise.
Those who write code will especially like having this ability. Ok, to get started you will find in EAGLE’s help system, the fully documented C-like syntax with examples clearly explaining each of the language functions. There are specialized functions for calling other programs on your computer, for navigating online to retrieve information, and to create your own dialogs. ULPs can access almost every object in EAGLE.
In addition to the built-in help, EAGLE ships with eight example ULPs:
|
|
|
|
|
|
|
|
They illustrate some commonly used functions and are great to follow. So now you have resources and inspiration, there is no excuse to keep you from writing your own!
Figure 1. Make-symbol-device-package-bsdl.ulp in the Library editor. Useful for automatically creating library components.
Ready to invent a new ULP!? Start your ULP writing in any text editor including the one built into EAGLE. We currently have ULP language files for Notepad++ and Geany, so you may want to consider these two popular and free text editors, which coupled with the language files, allow for sophisticated editor functionality (syntax highlight, function collapse, autocomplete, etc.) (Fig 2).
Figure 2. ULP editing on Notepad++
We hope that this brief intro encourages you in learning and writing your own ULPs. This will enable you to wield EAGLE to its greatest potential performing operations that no one has seen before.
Till next time!
EAGLE Support Team
Please let us know your thoughts and question!
Support@cadsoftusa.com