EAGLEのPNG画像生成を自動化するスクリプト

Homebrewでimagemagickをインストールしておく。

$ brew install imagemagick

以下を用意する。
makepng.scr

#Create folder for output
RUN mkdir-desktop

#Make top side png image
DISPLAY ALL 
RATSNEST
DISPLAY None 
DISPLAY Top Pads Vias
EXPORT IMAGE ~/Desktop/eagle_png/top.png MONOCHROME 2000
DISPLAY Bottom Unrouted Dimension tPlace bPlace 

#Make bottom side png image
DISPLAY ALL 
RATSNEST
DISPLAY None
DISPLAY Bottom Pads Vias
EXPORT IMAGE ~/Desktop/eagle_png/bottom.png MONOCHROME 2000
DISPLAY Top Unrouted Dimension tPlace bPlace

#Invert PNG image for etching (no need for fab modules)
RUN invert-png

#Flip PNG image horizontally for etching (if necessary)
RUN flip-png

mkdir-desktop.ulp

system("mkdir ~/Desktop/eagle_png");

invert-png.ulp

int res1 = system("/usr/local/bin/convert ~/Desktop/eagle_png/top.png -negate ~/Desktop/eagle_png/top-invert.png");
int res2 = system("/usr/local/bin/convert ~/Desktop/eagle_png/bottom.png -negate ~/Desktop/eagle_png/bottom-invert.png");
string errorMsg;
sprintf(errorMsg,"An error occured when inverting image. %d %d",res1,res2);
if (res1 == 0 && res2 == 0){
  dlgMessageBox("Image successfully inverted.");
} else {
  dlgMessageBox(errorMsg);
}

flip-png.ulp

int res1 = system("/usr/local/bin/convert ~/Desktop/eagle_png/top-invert.png -flop ~/Desktop/eagle_png/top-invert-flop.png");
int res2 = system("/usr/local/bin/convert ~/Desktop/eagle_png/bottom-invert.png -flop ~/Desktop/eagle_png/bottom-invert-flop.png");
string errorMsg;
sprintf(errorMsg,"An error occured when flipping image. %d %d",res1,res2);
if(res1 == 0 && res2 == 0){ 
  dlgMessageBox("Image successfully flipped.");
} else {
  dlgMessageBox(errorMsg);
}

以上をscr, ulpフォルダに入れた後、
script makepng;
で走る。