C8051F32x firmware infrastructure

Sign in or create your account | Project List | Help

C8051F32x firmware infrastructure Git Source Tree

Root/c2ben/cam/pcb.pl

1#!/usr/bin/perl
2
3$d = 25.4/1000*35;
4$r = $d/2-0.1; # compensate deflection of board
5
6
7sub orig
8{
9    $x0 = $_[0];
10    $y0 = $_[1];
11}
12
13
14sub mil
15{
16    return $_[0]/1000*25.4;
17}
18
19
20sub cut
21{
22    if (defined $x) {
23    if ($x == $_[0]+$x0 && $y == $_[1]+$y0) {
24        shift @_;
25        shift @_;
26    } else {
27        print "\n";
28    }
29    }
30    while (@_) {
31    $x = shift @_;
32    $y = shift @_;
33# ($x, $y) = (-$y, $x);
34    $x += $x0;
35    $y += $y0;
36    print "$x $y $z\n";
37    }
38}
39
40
41sub card
42{
43    &cut(
44      &mil( 0)-$r, &mil( 0)-$r,
45      &mil( 0)-$r, &mil( 570)+$r,
46      &mil( 30)-$r, &mil( 600)+$r,
47      &mil( 30)-$r, &mil( 650)-$r,
48      &mil( 0)-$r, &mil( 650)-$r,
49      &mil( 0)-$r, &mil( 705)+$r,
50      &mil( 55)-$r, &mil( 760)+$r,
51      &mil( 55)-$r, &mil( 960)+$r,
52      &mil( 435)+$r, &mil( 960)+$r,
53      &mil( 435)+$r, &mil( 0)-$r,
54      &mil( 0)-$r, &mil( 0)-$r);
55}
56
57
58sub conn
59{
60    &cut(
61      &mil( 0)-$r, &mil( 0)-$r,
62      &mil( 0)-$r, &mil( 500)+$r,
63      &mil( 490)+$r, &mil( 500)+$r,
64      &mil( 490)+$r, &mil( 0)-$r,
65      &mil( 0)-$r, &mil( 0)-$r);
66}
67
68
69$z = -0.8; # full thickness of board
70# x: corner offset, compensation for rotation, array position
71# y: corner offet
72&orig(13.5*4, 0)
73&card;
74&orig($x0, $y0+26)
75&conn;
76

Archive Download this file

Branches:
master



interactive