Now I come to the way to add my own buttons for functions I often use. These button runs a ULP script.
The icons for the button must be placed in the bin folder of the eagle installation path. The button itself are part of the eagle.scr. This is the default eagle script file, which is used when eagle starts.
Since a while, when Cadsoft was sold and sold again, Eagle get some very unuseful buttons. These are added via the eagle.scr too. So there is a easy way to delete them, since we edit this file.
The eagle.scr is located in the scr directory in the eagle program path.
Here are my custom icons bom.png, dxf_import.png and dxf_export.png
BRD: Grid mm 0.25 on; Grid alt MM 0.1; Set WIRE_BEND 1; #Route with 45 degree angles Set Drill 0.3; #Make vias 0,3mm Change Shape Round; #Make vias round Change Width 0.3; #Routing width default to 3mm Change Font Vector; #Make text on board in vector font Change Ratio 15; MENU '[snapGrid.png] Snap to Grid : Run cmd-snap-board.ulp;'\ '[dxf_export.png] Export DXF : Run dxf.ulp;'\ '[dxf_import.png] Import DXF : Run import-dxf.ulp;'; SCH: Grid Default; Change Width 0.006in; MENU '[bom.png] Bills of Material: Run bom_w_attr_v2.ulp;'; LBR: Grid mm 1 on; Grid alt mm 0.1; DEV: Grid Default; SYM: Grid Default On; Change Width 0.010in; PAC: Grid Default On; Grid mm 0,25 on; Grid alt mm 0.1; Change Width 0.005in; Change Size 0.050in;This script sets the default values for the grid and units too. Because we are living in a world with metric units, we don't use inch!