Root/ubb/cam/mkmk

1#!/bin/sh
2PATH=$PATH:/home/qi/cae-tools/cameo
3PATH=$PATH:/home/moko/svn.openmoko.org/developers/werner/cncmap/gp2rml
4
5while [ "$1" ]; do
6    eval "$1"
7    shift
8done
9
10if ! [ "$NAME" ]; then
11    echo "NAME is required" 1>&2
12    exit 1
13fi
14: ${X0:=0} ${Y0:=0}
15: ${X:=0} ${Y:=0}
16: ${XN:=1} ${YN:=1}
17
18
19
20write=write
21yi=0
22while [ $yi -lt $YN ]; do
23    xi=0
24    while [ $xi -lt $XN ]; do
25
26    cameo <<EOF
27mm
28
29gerber 35mil ../$NAME-PCB_Edges.gbr
30align 1 $X0 $Y0 # align relative to board corner
31translate 4mm 4mm # move to PCB zone assigned to project
32array +3mm +3mm `expr $X + $xi` `expr $Y + $yi`
33z 0 -58.9mm # board surface (tool fully retracted)
34z 1.5mm # slack for extending the tool
35z -0.8mm # board thickness
36z -0.5mm # tool extra depth
37clear
38
39excellon ../$NAME.drl
40drill 7mil 15mil # 12.5-13.5 mil drill
41optimize
42$write drill.gp
43
44remainder
45mill 25mil 0.01mm # 35 mil endmill; pretend it is a little smaller,
46            # to compensate for tool/board deflections
47$write mill.gp
48
49remainder
50empty
51
52gerber 45mil ../$NAME-PCB_Edges.gbr # 35 mil endmill, -10 mil deflection
53offset
54append mill.gp
55EOF
56
57    write=append
58    xi=`expr $xi + 1`
59    done
60    yi=`expr $yi + 1`
61done
62
63gp2rml 2 0.5 0.5 mill.gp >mill.rml
64gp2rml 2 0.1 0.5 drill.gp >drill.rml
65
66
67cat <<EOF >Makefile.mkmk
68SPOOL=/home/moko/svn.openmoko.org/developers/werner/cncmap/spool/spool
69CNGT=/home/qi/cae-tools/cngt/cngt
70
71.PHONY: mill drill cng plot dplot
72
73mill:
74        PORT=/dev/ttyUSB0 \$(SPOOL) mill.rml
75
76drill:
77        PORT=/dev/ttyUSB0 \$(SPOOL) drill.rml
78
79cng:
80        \$(CNGT) -57.4 20 mill.gp
81
82plot:
83        echo 'plot "drill.gp" with points, "mill.gp" with lines' | \\
84          gnuplot -persist
85
86dplot:
87        echo 'plot "< sed /^\$\$/d drill.gp" with linespoints' | \\
88          gnuplot -persist
89
90clean::
91        rm -f mill.gp mill.rml drill.gp drill.rml
92EOF
93

Archive Download this file

Branches:
master



interactive