diff --git a/labsw/mech/Makefile b/labsw/mech/Makefile new file mode 100644 index 0000000..c458b84 --- /dev/null +++ b/labsw/mech/Makefile @@ -0,0 +1,29 @@ +SPOOL=/home/moko/svn.openmoko.org/developers/werner/cncmap/spool/spool +CNGT=/home/qi/cae-tools/cngt/cngt + +.PHONY: all mill cng plot clean + +all: mill.rml + +front.gp: front.fpd + fped -g -1 front-cut $< - | ./filter !logo >$@ || \ + { rm -f $@; exit 1; } + +logo.gp: front.fpd + fped -g -1 front-cut $< - | ./filter logo >$@ || \ + { rm -f $@; exit 1; } + +mill.rml mill.gp: front.gp logo.gp + ./doit BOARD_Z=1.6mm CLEARANCE=3mm || { rm -rf $@; exit 1; } + +mill: mill.tmp + PORT=/dev/ttyUSB0 $(SPOOL) mill.rml + +cng: mill.gp + $(CNGT) -57.4 20 mill.gp + +plot: + echo 'splot "mill.gp" with lines' | gnuplot -persist + +clean: + rm -f front.gp mill.gp mill.rml diff --git a/labsw/mech/doit b/labsw/mech/doit new file mode 100755 index 0000000..f5b5bfd --- /dev/null +++ b/labsw/mech/doit @@ -0,0 +1,67 @@ +#!/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 + + cameo <mill.rml || exit diff --git a/labsw/mech/filter b/labsw/mech/filter new file mode 100755 index 0000000..34bf968 --- /dev/null +++ b/labsw/mech/filter @@ -0,0 +1,17 @@ +#!/usr/bin/perl +$on = 1; +while () { + $line = $_; + if (/^#%id=/) { + chop($id = $'); + $on = 1; + for (@ARGV) { + if ($_ =~ /^!/) { + $on = 0 if $id =~ $'; + } else { + $on = 0 unless $id =~ $_; + } + } + } + print $line if $on; +}