# pcb-rnd devlog

## scripting

Most of the infrastructure for a scriptable pcb had been there in pcb-gpmi. I had also finished some gpmi cleanup and pcb (menu and events ) subprojects last week. These made it easier to get to reach the current status after a weekend coding marathon:

- dialog boxes for managing (loading/unloading) scripts -- check out the videos: list scripts and get details or load a new script
- import, test, extend the glue layer; scripts can:
  - 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
  - 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)

My example scripts are written in awk, lua and tcl at this point, but gpmi supports 7 other languages (scheme, stutter (lisp), pascal, perl php, python, ruby) which are also available in pcb-rnd.