Continue to Site

Welcome to

Welcome to our site! is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Why does Eagle have distinction between script and ULP, both have unique functions?

Not open for further replies.


Advanced Member level 2
Apr 17, 2011
Reaction score
Trophy points
Activity points
Why does Eagle PCB not have a single language that contains the features of the scripting language as well as the so called ULP? I mean the existing setup complicates matters when the ULP wants to do things that are assigned to scripts only e.g adding components into the schematic or (directly into) the board window.

Maybe because its so easy:

19. User Language Program (ULP) – What is This and How to Use it?
EAGLE can execute programs that are written in a C-like program language, the so-called EAGLE User Language. These programs are always availabel as readable text files. ULPs are highly flexible tools in order to modify internal EAGLE data or to produce data for other purposes. The EAGLE installation comes with various ULPs, that can be found in the Control Panel’s tree view User Language Programbranch. Click onto one of the entries there and the description for the selected ULP will be shown on the right.
Don’t care! You don’t need programming skills to work with ULPs. You simply have to use the RUN command which is available in the Action Toolbar or by the File/Run… menu. Depending on the program you will be asked for further details or it will silently process its job. How it works can be found in the ULP’s description.
Somebody who has some skills in programming can use a simple text editor to check an ULP or even modify it according to his own preferences. Or write a totally new program.
A detailed description of the User language can be found in the help function (keyword: User Language) of EAGLE.
The Download area of CadSoft’s web server offers lots of User Language Programs for free.

Various useful ULP-based functions (Selection, January 2007):

Measurement tool for boards — adimv4_0mm.ulp
Duplicate schematic and layout —
Aid to panelize boards — panelize.ulp
Changing library elements — change*.ulp
Defining parts from BSDL files — make-symbol-device-package-bsdl.ulp
Calculate the length of tracks — length-ri.ulp
Change wire widths — cmd-change-wire-width.ulp
Change and swap layers — cmd-change-swap-layer.ulp
Move parts into a certain grid — snap*.ulp
Simple placement aid for layouts — autoplace_v3.ulp
Generating a drill legend — drillplan*.ulp
Reduce drill diameter for manual drilling — drill-aid.ulp
Extract project libraries — exp-project-lbr.ulp
Update aid to keep brd and sch consistent — updateman*.ulp
And much more….

Data Export (Selection):

Partlist with database connection, as HTML, RTF, spreadsheet file… — bom*.ulp, part*.ulp
Board statistics (number of drills, parts, signals…) — statistic-brd.ulp
Data for a glue mask — glue*.ulp
Milling outlines, prototypes — outline.ulp, mill-outlines.ulp
CNC data for drilling and board outline — b_cnc.ulp
Gcode data for mechanical etching / trace engraving — ,
DIF4.0 format from Digitaltest for testing equipment — dif40.ulp
UNIDAT format for testing and mounting — unidat.ulp
Data for Polar GRS500 Flying Probe test system —
IPC-D-356 for testing — ipc-d-356.ulp
Fabmaster format for testing — fabmst.ulp
ASCII data for mounting parts — mount.ulp, mountsmd.ulp
4qd format for mounting SMT — 4quad.ulp
GenCAD format for testing — gencad.ulp
Data for KiCAD PCB suite — eagle2kicad*.ulp
3D data for a MCAD system (Ideas, SolidWorks…) — generate_3d_data.ulp
Data for Optical Inspection system VISCOM — viscomnew.ulp
Excellon2 format — excellon_2.ulp
Drill data for LPKF drilling machines — lpkf_drl.ulp
Drill data in PRO-PAL format for ISEL machines — paldrill.ulp
Schematics in in Windows Meta File (WMF) format — sch2wmf.ulp
DXF — dxf.ulp
EPS format — epsdraw*.ulp
EAGLE Schematic to Postscript — eagle2ps*.ulp
PIC format for docu in Troff or LaTeX — pic.ulp

Data Import (Selection):

Netlist in “Protel default” format — netlist_protel.ulp
Protel Netlist in EAGLE-Script for layouts —
Orcad netlist — orcad_netlist.ulp
Tango netlist — import-tango.ulp
Orcad schematics —
Electronic Workbench data in EAGLE Script for layouts —
DDF from Ultiboard PCB, version 4.80 and 5.50 — import-ultiboard-DDF.ulp
BMP — import-bmp.ulp

Interfaces to other programs (3rd party, not by CadSoft):

B2Spice – Simulation software
ELECTRA – Autorouter



Maybe because its so easy:
19. User Language Program (ULP) – What is This and How to Use it?

You did not answer to the question.
You just listed some of the ULP's goodies...
You did not give any useful information.

Why ULP vs SCR?

You did not give any useful information.
Wondering about a possibly too rude comment, I realized out that Korogan is simply copying the FAQ text without referring to the question or adding anything on his own. That kind of posts is in fact considered as useless by Edaboard rules and would be regularly deleted. Now it's a bit late to do so. Thanks for reporting.

I have only limited experience with Eagle. According to my knowledge:

SCR is nothing but a linear sequence of Eagle commands. ULP is a real programming language with read access to the design data structure, and very limited write access to a few design parameters. Due to limited write access, most changes to design data by ULP are performed by issuing command sequences (in other words writing SCR). Means everything that can be done with SCR can be achieved by ULP as well.

Peerhaps Korogan simply stated the facts, if the ULP is easy.

Why ULP vs scr - thats not really a fair question for users.
If you want to know that ask CADSOFT and not here.

Does Eagle allow you to use ULP for some functions and Scripting? Perhaps it does - both methods of programming allow the user to do different things in different ways.
Why allow different things different ways - ask CADSOFT, they decide why.
Someone may not be able to write a script but can run a ULP & visa versa.

Why use Eagle and not Altium, CADSTAR, PAds or tape or a pen?
Similar sort of question - things are different.

Not open for further replies.

Part and Inventory Search

Welcome to