Main | News | Doc | People | Events & timeline | pcb-rnd

# pcb-rnd - the [gpmi] patch

Thanks to gpmi, pcb-rnd is scriptable in about 10 scripting languages (e.g. lua, awk, ruby, python, scheme, tcl). Scripts are integrated in pcb-rnd and have access to most of the internals. Scripts are able to:

- register new actions
- create new menus and submenus
- execute existing actions
- pop up simple dialog boxes (message, report, progress bar, file selection) -- check out the video
- build and pop up custom dialog boxes (so called attribute dialogs)
- search for objects (lines, arc, polys, vias, etc.) on the layout
- change and move existing objects on the layout
- create new objects on the layout
- change "page" properties (dimensions of the board)
- debug draw on the gui (slightly broken on gtk due to some gtk hid bugs)

This feature has three options:

- disabled: not compiled at all - when gpmi is not installed (no gpmi scripting in PCB)
- buildin: compiled and linked in the executable - pcb-rnd always can load and run scripts
- plugin: compiled as a loadable plugin - pcb-rnd can load and run scripts if the plugin is installed

### Example

Check out the Rosetta stone of pcb-rnd.

## save/load and compatibility

Save/load files are not affected.

## plans

Expose more internals, write more example scripts and documentation.