#!/bin/sh
PATH=$PATH:/home/qi/cae-tools/cameo
PATH=$PATH:/home/qi/cae-tools/gp2rml

#
# Parameters:
#
# X0, Y0	lower left corner of raw board, default: 0mm 0mm
# X, Y		position in array, default: 0 0
# XN, YN	number of boards in X/Y direction, default: 1 1
# MILL		diameter of mill, default: 35mil
# BOARD_Z	board tickness, default: 0.8 mm
# ENGRAVE_Z	engraving depth, default: 0.2 mm
# CLEARANCE	tool clearance above PCB surface, default: 2mm
#

while [ "$1" ]; do
    eval "$1"
    shift
done

: ${X0:=0} ${Y0:=0}
: ${X:=0} ${Y:=0}
: ${XN:=1} ${YN:=1}
: ${MILL:=35mil}
: ${BOARD_Z:=0.8mm}
: ${ENGRAVE_Z:=0.2mm}
: ${CLEARANCE:=2mm}

write=write
yi=0
while [ $yi -lt $YN ]; do
    xi=0
    while [ $xi -lt $XN ]; do

	cat <<EOF >_job
mm
gnuplot $MILL front.gp

align 1 $X0 $Y0		# align relative to board corner
translate 4mm 4mm	# move to PCB zone assigned to project
array +3mm +3mm `expr $X + $xi` `expr $Y + $yi`
z 0 -57.4mm		# board surface (tool fully retracted)
z $ENGRAVE_Z		# correct for reference level picked by gp2rml
clear

z -$ENGRAVE_Z		# engraving depth
gnuplot $MILL logo.gp
mill any $MILL 0.01mm
$write mill.gp
clear
z $ENGRAVE_Z

z -$BOARD_Z		# board thickness
z -0.5mm		# tool extra depth
gnuplot $MILL front.gp
offset
append mill.gp
EOF

	cameo _job || exit
	rm -f _job

	write=append
	xi=`expr $xi + 1`
    done
    yi=`expr $yi + 1`
done

gp2rml $CLEARANCE 0.5 0.5 mill.gp >mill.rml || exit