IEEE 802.15.4 subsystem
Sign in or create your account | Project List | Help
IEEE 802.15.4 subsystem Commit Details
Date: | 2010-11-02 00:14:43 (13 years 4 months ago) |
---|---|
Author: | Werner Almesberger |
Commit: | 9103ae0aec52dd2d72ae1bcc6ed70c2b72b8d912 |
Message: | Make toolpath cameo-friendly and use cameo for tool size
compensation. - cntr/cam/doit: use cameo - cntr/cam/pcb.pl (cut): use exact value of pi, to make sure arcs meet with lines connecting to them - cntr/cam/pcb.pl (hhole): force cut to be continuous - cntr/cam/pcb.pl (arc, hhole, pcb): don't compensate for the tool size. Cameo now does this for us. - cntr/cam/pcb.pl: switch to 2nd piece position |
Files: |
cntr/cam/doit (2 diffs) cntr/cam/pcb.pl (5 diffs) |
Change Details
cntr/cam/doit | ||
---|---|---|
4 | 4 | ALIGN=$DIR/align/align |
5 | 5 | ZMAP=$DIR/zmap/zmap |
6 | 6 | GP2RML=$DIR/gp2rml/gp2rml |
7 | CAMEO=../../../cae-tools/cameo/cameo | |
7 | 8 | |
8 | 9 | GEN=${1:-./pcb.pl} |
9 | 10 | |
... | ... | |
16 | 17 | |
17 | 18 | $GEN | |
18 | 19 | awk '{ if ($3 != "") $3 += '$Z'; print $0; }' | |
20 | $CAMEO -d 0.4445 | | |
19 | 21 | $ALIGN 0 1 $rect | |
20 | 22 | # angle, reference (lower left corner), rect |
21 | 23 | $GP2RML 2 0.5 0.5 |
cntr/cam/pcb.pl | ||
---|---|---|
1 | 1 | #!/usr/bin/perl |
2 | 2 | |
3 | $PI = atan2(1, 1)*4; | |
4 | ||
3 | 5 | $d = 25.4/1000*35; |
4 | 6 | $r = $d/2-0.1; # compensate deflection of board |
5 | 7 | $steps = 24; |
... | ... | |
44 | 46 | sub arc |
45 | 47 | { |
46 | 48 | local ($xc, $yc, $d, $a0, $a1) = @_; |
47 | local ($rr) = $d/2-$r; | |
49 | local ($rr) = $d/2; | |
48 | 50 | local $n = int(abs($a1-$a0)/360*$steps+0.5); |
49 | 51 | |
50 | 52 | $rr = 0 if $rr < 0; |
51 | 53 | for ($i = 0; $i <= $n; $i++) { |
52 | my $a = ($a0+($a1-$a0)/$n*$i)*3.1415926/180; | |
54 | my $a = ($a0+($a1-$a0)/$n*$i)*$PI/180; | |
53 | 55 | $x = $x0+$xc-$rr*sin($a); |
54 | 56 | $y = $y0+$yc+$rr*cos($a); |
55 | 57 | print "$x $y $z\n"; |
... | ... | |
70 | 72 | sub hhole |
71 | 73 | { |
72 | 74 | local ($xc0, $xc1, $yc, $d) = @_; |
73 | local ($rr) = $d/2-$r; | |
75 | local ($rr) = $d/2; | |
74 | 76 | |
75 | 77 | &cut($xc0, $yc+$rr, $xc1, $yc+$rr); |
76 | 78 | &arc($xc1, $yc, $d, 0, -180); |
79 | undef $x; | |
77 | 80 | &cut($xc1, $yc-$rr, $xc0, $yc-$rr); |
78 | 81 | &arc($xc0, $yc, $d, 180, 0); |
79 | 82 | } |
... | ... | |
82 | 85 | sub pcb |
83 | 86 | { |
84 | 87 | &cut( |
85 | &mil( 0)-$r, &mil( 0)-$r, | |
86 | &mil(1180)+$r, &mil( 0)-$r, | |
87 | &mil(1180)+$r, &mil( 240)+$r, | |
88 | &mil(1000)+$r, &mil( 240)+$r, | |
89 | &mil(1000)+$r, &mil( 380)-$r, | |
90 | &mil(1180)+$r, &mil( 380)-$r, | |
91 | &mil(1180)+$r, &mil( 620)+$r, | |
92 | &mil( 0)-$r, &mil( 620)+$r, | |
93 | &mil( 0)-$r, &mil( 0)-$r); | |
88 | &mil( 0), &mil( 0), | |
89 | &mil(1180), &mil( 0), | |
90 | &mil(1180), &mil( 240), | |
91 | &mil(1000), &mil( 240), | |
92 | &mil(1000), &mil( 380), | |
93 | &mil(1180), &mil( 380), | |
94 | &mil(1180), &mil( 620), | |
95 | &mil( 0), &mil( 620), | |
96 | &mil( 0), &mil( 0)); | |
94 | 97 | } |
95 | 98 | |
96 | 99 | |
... | ... | |
111 | 114 | # x: corner offset, compensation for rotation, array position |
112 | 115 | # y: corner offet |
113 | 116 | |
114 | &orig(35*0, 45); | |
117 | &orig(35*1, 45); | |
115 | 118 | |
116 | 119 | $r = $d/2; # no compensation. don't wanna risk making holes too big. |
117 | 120 | &holes; |