Fix zero suppression handling and remove more old files

This commit is contained in:
jaseg 2022-01-29 21:19:11 +01:00
parent 1d0336056f
commit 6edc1bf606
36 changed files with 32 additions and 12823 deletions

View file

@ -150,6 +150,7 @@ class FileSettings:
return float(sign + value[:-decimal_digits] + '.' + value[-decimal_digits:])
else: # no or trailing zero suppression
value = value + '0'*integer_digits
return float(sign + value[:integer_digits] + '.' + value[integer_digits:])
def write_gerber_value(self, value, unit=None):

View file

@ -1,41 +0,0 @@
M48
FMAT,2
ICI,OFF
INCH,TZ
T01C0.0236
T02C0.0275
T03C0.0314
T04C0.0393
%
G90
M72
T01
X1815Y960
X1815Y1344
X1421Y2402G85X827Y2402
T02
X1421Y1535
X1421Y768
X843Y768
X807Y1535
T03
G00X1421Y1152
M15
G01X843Y1152
M16
G05
X1417Y2795
T04
G00X236Y669
M15
G02X630Y276I0J-394
G03X1024Y-118A394
G03X1417Y276A394
G01X2598Y276
G01X2598Y1024
G03X1614Y2008I-984J0
G01X236Y2008
G01X236Y669
M16
G05
M30

View file

@ -1,47 +0,0 @@
M48
FMAT,2
ICI,OFF
METRIC,TZ,000.000
T01C0.600
T02C0.700
T03C0.800
T04C1.000
%
G90
M71
T01
X4610Y2438
X4610Y3413
X3610Y6100G85X2100Y6100
T02
X3610Y3900
X3610Y1950
X2140Y1950
X2050Y3900
T03
G00X3610Y2925
M15
G01X2140Y2925
M16
G05
X3600Y7100
T04
G00
X600Y1700
M15
I0J-1000
G02X1600Y700
G03
A1000
I-2000J0
X2600Y-300
X3600Y700
G01X6600
Y2600
G03X4100Y5100I-2500J0
G01
X600
Y1700
M16
G05
M30

File diff suppressed because it is too large Load diff

View file

@ -1,654 +0,0 @@
0
SECTION
2
HEADER
9
$INSUNITS
70
4
9
$ACADVER
1
AC1014
9
$HANDSEED
5
FFFF
0
ENDSEC
0
SECTION
2
TABLES
0
TABLE
2
VPORT
5
8
100
AcDbSymbolTable
0
ENDTAB
0
TABLE
2
LTYPE
5
5
100
AcDbSymbolTable
0
LTYPE
5
14
100
AcDbSymbolTableRecord
100
AcDbLinetypeTableRecord
2
BYBLOCK
70
0
0
LTYPE
5
15
100
AcDbSymbolTableRecord
100
AcDbLinetypeTableRecord
2
BYLAYER
70
0
0
ENDTAB
0
TABLE
2
LAYER
5
2
100
AcDbSymbolTable
70
2
0
LAYER
5
50
100
AcDbSymbolTableRecord
100
AcDbLayerTableRecord
2
0
70
0
6
CONTINUOUS
0
ENDTAB
0
TABLE
2
STYLE
5
3
100
AcDbSymbolTable
70
1
0
STYLE
5
11
100
AcDbSymbolTableRecord
100
AcDbTextStyleTableRecord
2
STANDARD
70
0
0
ENDTAB
0
TABLE
2
VIEW
5
6
100
AcDbSymbolTable
70
0
0
ENDTAB
0
TABLE
2
UCS
5
7
100
AcDbSymbolTable
70
0
0
ENDTAB
0
TABLE
2
APPID
5
9
100
AcDbSymbolTable
70
2
0
APPID
5
12
100
AcDbSymbolTableRecord
100
AcDbRegAppTableRecord
2
ACAD
70
0
0
ENDTAB
0
TABLE
2
DIMSTYLE
5
A
100
AcDbSymbolTable
70
1
0
ENDTAB
0
TABLE
2
BLOCK_RECORD
5
1
100
AcDbSymbolTable
70
1
0
BLOCK_RECORD
5
1F
100
AcDbSymbolTableRecord
100
AcDbBlockTableRecord
2
*MODEL_SPACE
0
BLOCK_RECORD
5
1B
100
AcDbSymbolTableRecord
100
AcDbBlockTableRecord
2
*PAPER_SPACE
0
ENDTAB
0
ENDSEC
0
SECTION
2
BLOCKS
0
BLOCK
5
20
100
AcDbEntity
100
AcDbBlockBegin
2
*MODEL_SPACE
0
ENDBLK
5
21
100
AcDbEntity
100
AcDbBlockEnd
0
BLOCK
5
1C
100
AcDbEntity
100
AcDbBlockBegin
2
*PAPER_SPACE
0
ENDBLK
5
1D
100
AcDbEntity
100
AcDbBlockEnd
0
ENDSEC
0
SECTION
2
ENTITIES
0
LWPOLYLINE
5
100
100
AcDbEntity
8
0
100
AcDbPolyline
90
8
70
1
43
0.0
10
40
20
0
10
9.9999999999999982
20
1.1102230246251565e-15
42
-0.41421356237309565
10
1.1102230246251565e-15
20
10
10
1.1102230246251565e-15
20
40
42
-0.41421356237309553
10
10
20
50
10
40
20
50
42
-0.41421356237309603
10
50
20
40
10
50
20
9.9999999999999982
42
-0.41421356237309548
0
LWPOLYLINE
5
101
100
AcDbEntity
8
0
100
AcDbPolyline
90
8
70
1
43
0.0
10
74.270404858697972
20
75.039392445007664
10
74.270404858697972
20
45.039392445007664
42
-0.41421356237309553
10
64.270404858697972
20
35.039392445007664
10
34.270404858697965
20
35.039392445007664
42
-0.41421356237309553
10
24.270404858697965
20
45.039392445007664
10
24.270404858697958
20
75.039392445007664
42
-0.41421356237309553
10
34.270404858697965
20
85.039392445007678
10
64.270404858697972
20
85.039392445007678
42
-0.41421356237309603
0
CIRCLE
5
102
100
AcDbEntity
8
0
100
AcDbCircle
10
80.154604804025013
20
12.631646043929035
30
0
40
12.546259950593821
210
0
220
0
230
1
0
CIRCLE
5
103
100
AcDbEntity
8
0
100
AcDbCircle
10
50
20
65
30
0
40
10.277260744660863
210
0
220
0
230
1
0
ARC
5
104
100
AcDbEntity
8
0
100
AcDbCircle
10
50
20
65
30
0
40
6.4592498736207826
210
0
220
-0
230
1
100
AcDbArc
50
90
51
345.73898023603914
0
LINE
5
105
100
AcDbEntity
8
0
100
AcDbLine
10
50
20
65
30
0
11
56.26019871530297
21
63.408830312383643
31
0
0
LINE
5
106
100
AcDbEntity
8
0
100
AcDbLine
10
50
20
65
30
0
11
50
21
71.459249873620777
31
0
0
LWPOLYLINE
5
107
100
AcDbEntity
8
0
100
AcDbPolyline
90
4
70
1
43
0.0
10
38.203772564818578
20
42.206179116779516
10
13.451174232106741
20
42.206179116779516
10
13.451174232106741
20
13.596032991956758
10
38.203772564818578
20
13.596032991956758
0
LINE
5
108
100
AcDbEntity
8
0
100
AcDbLine
10
80
20
85
30
0
11
80
21
35
31
0
0
LINE
5
109
100
AcDbEntity
8
0
100
AcDbLine
10
90
20
85
30
0
11
90
21
35
31
0
0
LINE
5
110
100
AcDbEntity
8
0
100
AcDbLine
10
20
20
32.938987371135568
30
0
11
32.582672402541192
21
32.938987371135568
31
0
0
LINE
5
111
100
AcDbEntity
8
0
100
AcDbLine
10
32.582672402541192
20
32.938987371135568
30
0
11
32.582672402541192
21
17.844276543429842
31
0
0
ENDSEC
0
SECTION
2
OBJECTS
0
DICTIONARY
5
C
100
AcDbDictionary
3
ACAD_GROUP
350
D
3
ACAD_MLINESTYLE
350
17
0
DICTIONARY
5
D
100
AcDbDictionary
0
DICTIONARY
5
1A
330
C
100
AcDbDictionary
0
DICTIONARY
5
17
100
AcDbDictionary
0
ENDSEC
0
EOF

View file

@ -1,78 +0,0 @@
%MOIN*%
%FSLAX25Y25*%
%INTop Layer*%
%IPPOS*%
%AMCOMP*
20,1,0.00787402,0,0.00393701,0.015748,0.00393701,$1*
21,1,0.015748,0.00787402,-0.00787402,-0.00393701,$1*
1,1,0.015748,-0.0472441,0,$1*
4,1,4,0.0472441,0,0.0551181,-0.00787402,0.0472441,-0.015748,0.0393701,-0.00787402,0.0472441,0,$1*
5,1,6,0.0472441,0.00787402,0.015748,$1*
7,0.0275591,0,0.023622,0.019685,0.00590551,$1*%
%ADD10C,0.0003937*%
%ADD11C,0.03937X0.01575*%
%ADD12R,0.03937X0.01969X0.007874*%
%ADD13O,0.03937X0.01969X0.007874*%
%ADD14O,0.01969X0.03937X0.007874*%
%ADD15P,0.03937X5X90X0.007874*%
%ADD16COMP,0*%
%ADD17COMP,45*%
%ADD18COMP,-45*%
G75*
%LPD*%
D10*
G01*
X3937Y0D02*
X35433Y0D01*
G03*
X39370Y3937I0J3937D01*
G01*
X39370Y35433D01*
G03*
X35433Y39370I-3937J0D01*
G01*
X3937Y39370D01*
G03*
X0Y35433I0J-3937D01*
G01*
X0Y3937D01*
G03*
X3937Y0I3937J0D01*
G01*
G36*
G01*
X17717Y3937D02*
X19685Y3937D01*
G03*
X21654Y5906I0J1969D01*
G01*
X21654Y33465D01*
G03*
X19685Y35433I-1969J0D01*
G01*
X17717Y35433D01*
G03*
X15748Y33465I0J-1969D01*
G01*
X15748Y5906D01*
G03*
X17717Y3937I1969J0D01*
G01*
G37*
D11*
X9843Y3937D03*
D12*
X9843Y11811D03*
D13*
X9843Y19685D03*
D14*
X9843Y27559D03*
D15*
X9843Y35433D03*
D16*
X29528Y19685D03*
D17*
X29528Y29528D03*
D18*
X29528Y9843D03*
M02*

View file

@ -1,83 +0,0 @@
%MOMM*%
%FSLAX34Y34*%
%INTop Layer*%
%IPPOS*%
%AMCOMP*
20,1,0.2,0,0.1,0.4,0.1,$1*
21,1,0.4,0.2,-0.2,-0.1,$1*
1,1,0.4,-1.2,0,$1*
4,1,4,1.2,0,1.4,-0.2,1.2,-0.4,1,-0.2,1.2,0,$1*
5,1,6,1.2,0.2,0.4,$1*
7,0.7,0,0.6,0.5,0.15,$1*%
%ADD10C,0.01*%
%ADD11C,1X0.4*%
%ADD12R,1X0.5X0.2*%
%ADD13O,1X0.5X0.2*%
%ADD14O,0.5X1X0.2*%
%ADD15P,1X5X90X0.2*%
%ADD16COMP,0*%
%ADD17COMP,45*%
%ADD18COMP,-45*%
G75*
%LPD*%
D10*
G01*
X10000Y0D02*
X90000Y0D01*
G03*
X100000Y10000I0J10000D01*
G01*
X100000Y90000D01*
G03*
X90000Y100000I-10000J0D01*
G01*
X10000Y100000D01*
G03*
X0Y90000I0J-10000D01*
G01*
X0Y10000D01*
G03*
X10000Y0I10000J0D01*
G01*
G36*
G01*
X45000Y10000D02*
X50000Y10000D01*
G03*
X55000Y15000I0J5000D01*
G01*
X55000Y85000D01*
G03*
X50000Y90000I-5000J0D01*
G01*
X45000Y90000D01*
G03*
X40000Y85000I0J-5000D01*
G01*
X40000Y15000D01*
G03*
X45000Y10000I5000J0D01*
G01*
G37*
D11*
X25000Y10000D03*
D12*
X25000Y30000D03*
D13*
X25000Y50000D03*
D14*
X25000Y70000D03*
D15*
X25000Y90000D03*
D16*
X75000Y50000D03*
D17*
X75000Y75000D03*
D18*
X75000Y25000D03*
M02*

View file

@ -1,77 +0,0 @@
%MOMM*%
%FSLAX34Y34*%
%IPPOS*%
%AMCOMP*
20,1,0.2,0,0.1,0.4,0.1,$1*
21,1,0.4,0.2,-0.2,-0.1,$1*
1,1,0.4,-1.2,0,$1*
4,1,4,1.2,0,1.4,-0.2,1.2,-0.4,1,-0.2,1.2,0,$1*
5,1,6,1.2,0.2,0.4,$1*
7,0.7,0,0.6,0.5,0.15,$1*%
%ADD10C,0.01*%
%ADD11C,1X0.4*%
%ADD12R,1X0.5X0.2*%
%ADD13O,1X0.5X0.2*%
%ADD14O,0.5X1X0.2*%
%ADD15P,1X5X90X0.2*%
%ADD16COMP,0*%
%ADD17COMP,45*%
%ADD18COMP,-45*%
G75*
%LPD*%
D10*
G01*
X120000Y50000D02*
X200000Y50000D01*
G03*
X210000Y60000I0J10000D01*
G01*
X210000Y140000D01*
G03*
X200000Y150000I-10000J0D01*
G01*
X120000Y150000D01*
G03*
X110000Y140000I0J-10000D01*
G01*
X110000Y60000D01*
G03*
X120000Y50000I10000J0D01*
G01*
G36*
G01*
X155000Y60000D02*
X160000Y60000D01*
G03*
X165000Y65000I0J5000D01*
G01*
X165000Y135000D01*
G03*
X160000Y140000I-5000J0D01*
G01*
X155000Y140000D01*
G03*
X150000Y135000I0J-5000D01*
G01*
X150000Y65000D01*
G03*
X155000Y60000I5000J0D01*
G01*
G37*
D11*
X135000Y60000D03*
D12*
X135000Y80000D03*
D13*
X135000Y100000D03*
D14*
X135000Y120000D03*
D15*
X135000Y140000D03*
D16*
X185000Y100000D03*
D17*
X185000Y125000D03*
D18*
X185000Y75000D03*
M02*

View file

@ -1,97 +0,0 @@
%MOMM*%
%FSLAX34Y34*%
%IPPOS*%
%AMCOMP*
20,1,0.2,0,0.1,0.4,0.1,($1)+(20)*
21,1,0.4,0.2,-0.2,-0.1,($1)+(20)*
1,1,0.4,-1.2,0,($1)+(20)*
4,1,4,1.2,0,1.4,-0.2,1.2,-0.4,1,-0.2,1.2,0,($1)+(20)*
5,1,6,1.2,0.2,0.4,($1)+(20)*
7,0.7,0,0.6,0.5,0.15,($1)+(20)*%
%AMMACR*
21,1,$1,$2,0,0,20*
1,0,$3,0,0,20*%
%AMMACLO*
$4=($1)-($2)*
$5=($1)-($4)*
21,1,$5,$2,0,0,20*
1,1,$4,($4)/(2),0,20*
1,1,$4,($4)/(-2),0,20*
1,0,$3,0,0,20*%
%AMMACPO*
$4=($2)-($1)*
$5=($2)-($4)*
21,1,$1,$5,0,0,20*
1,1,$4,0,($4)/(2),20*
1,1,$4,0,($4)/(-2),20*
1,0,$3,0,0,20*%
%AMMACP*
5,1,$2,0,0,$1,($3)+(20)*
1,0,$4,0,0,20*%
%ADD10C,0.01*%
%ADD11C,1X0.4*%
%ADD12MACR,1X0.5X0.2*%
%ADD13MACLO,1X0.5X0.2*%
%ADD14MACPO,0.5X1X0.2*%
%ADD15MACP,1X5X90X0.2*%
%ADD16COMP,0*%
%ADD17COMP,45*%
%ADD18COMP,-45*%
G75*
%LPD*%
D10*
G01*
X49630Y-24751D02*
X124805Y2611D01*
G03*
X130782Y15428I-3420J9397D01*
G01*
X103420Y90603D01*
G03*
X90603Y96580I-9397J-3420D01*
G01*
X15428Y69218D01*
G03*
X9451Y56401I3420J-9397D01*
G01*
X36813Y-18774D01*
G03*
X49630Y-24751I9397J3420D01*
G01*
G36*
G01*
X79099Y-3383D02*
X83797Y-1673D01*
G03*
X86786Y4735I-1710J4698D01*
G01*
X62844Y70514D01*
G03*
X56436Y73502I-4698J-1710D01*
G01*
X51737Y71792D01*
G03*
X48749Y65383I1710J-4698D01*
G01*
X72690Y-395D01*
G03*
X79099Y-3383I4698J1710D01*
G01*
G37*
D11*
X60305Y-10224D03*
D12*
X53464Y8570D03*
D13*
X46624Y27364D03*
D14*
X39784Y46158D03*
D15*
X32943Y64952D03*
D16*
X93609Y44465D03*
D17*
X85058Y67957D03*
D18*
X102159Y20973D03*
M02*

View file

@ -1,77 +0,0 @@
%MOMM*%
%FSLAX34Y34*%
%IPPOS*%
%AMCOMP*
20,1,0.2,0,0.1,0.4,0.1,$1*
21,1,0.4,0.2,-0.2,-0.1,$1*
1,1,0.4,-1.2,0,$1*
4,1,4,1.2,0,1.4,-0.2,1.2,-0.4,1,-0.2,1.2,0,$1*
5,1,6,1.2,0.2,0.4,$1*
7,0.7,0,0.6,0.5,0.15,$1*%
%ADD10C,0.01*%
%ADD11C,1X0.4*%
%ADD12R,1X0.5X0.2*%
%ADD13O,1X0.5X0.2*%
%ADD14O,0.5X1X0.2*%
%ADD15P,1X5X90X0.2*%
%ADD16COMP,0*%
%ADD17COMP,45*%
%ADD18COMP,-45*%
G75*
%LPD*%
D10*
G01*
X10000Y0D02*
X90000Y0D01*
G03*
X100000Y10000I0J10000D01*
G01*
X100000Y90000D01*
G03*
X90000Y100000I-10000J0D01*
G01*
X10000Y100000D01*
G03*
X0Y90000I0J-10000D01*
G01*
X0Y10000D01*
G03*
X10000Y0I10000J0D01*
G01*
G36*
G01*
X45000Y10000D02*
X50000Y10000D01*
G03*
X55000Y15000I0J5000D01*
G01*
X55000Y85000D01*
G03*
X50000Y90000I-5000J0D01*
G01*
X45000Y90000D01*
G03*
X40000Y85000I0J-5000D01*
G01*
X40000Y15000D01*
G03*
X45000Y10000I5000J0D01*
G01*
G37*
D11*
X25000Y10000D03*
D12*
X25000Y30000D03*
D13*
X25000Y50000D03*
D14*
X25000Y70000D03*
D15*
X25000Y90000D03*
D16*
X75000Y50000D03*
D17*
X75000Y75000D03*
D18*
X75000Y25000D03*
M02*

View file

@ -1,77 +0,0 @@
%MOIN*%
%FSLAX25Y25*%
%IPPOS*%
%AMCOMP*
20,1,0.00787402,0,0.00393701,0.015748,0.00393701,$1*
21,1,0.015748,0.00787402,-0.00787402,-0.00393701,$1*
1,1,0.015748,-0.0472441,0,$1*
4,1,4,0.0472441,0,0.0551181,-0.00787402,0.0472441,-0.015748,0.0393701,-0.00787402,0.0472441,0,$1*
5,1,6,0.0472441,0.00787402,0.015748,$1*
7,0.0275591,0,0.023622,0.019685,0.00590551,$1*%
%ADD10C,0.0003937*%
%ADD11C,0.03937X0.01575*%
%ADD12R,0.03937X0.01969X0.007874*%
%ADD13O,0.03937X0.01969X0.007874*%
%ADD14O,0.01969X0.03937X0.007874*%
%ADD15P,0.03937X5X90X0.007874*%
%ADD16COMP,0*%
%ADD17COMP,45*%
%ADD18COMP,-45*%
G75*
%LPD*%
D10*
G01*
X3937Y0D02*
X35433Y0D01*
G03*
X39370Y3937I0J3937D01*
G01*
X39370Y35433D01*
G03*
X35433Y39370I-3937J0D01*
G01*
X3937Y39370D01*
G03*
X0Y35433I0J-3937D01*
G01*
X0Y3937D01*
G03*
X3937Y0I3937J0D01*
G01*
G36*
G01*
X17717Y3937D02*
X19685Y3937D01*
G03*
X21654Y5906I0J1969D01*
G01*
X21654Y33465D01*
G03*
X19685Y35433I-1969J0D01*
G01*
X17717Y35433D01*
G03*
X15748Y33465I0J-1969D01*
G01*
X15748Y5906D01*
G03*
X17717Y3937I1969J0D01*
G01*
G37*
D11*
X9843Y3937D03*
D12*
X9843Y11811D03*
D13*
X9843Y19685D03*
D14*
X9843Y27559D03*
D15*
X9843Y35433D03*
D16*
X29528Y19685D03*
D17*
X29528Y29528D03*
D18*
X29528Y9843D03*
M02*

View file

@ -1,77 +0,0 @@
%MOMM*%
%FSLAX34Y34*%
%IPPOS*%
%AMCOMP*
20,1,0.2,0,0.1,0.399999,0.1,$1*
21,1,0.399999,0.2,-0.2,-0.1,$1*
1,1,0.399999,-1.2,0,$1*
4,1,4,1.2,0,1.4,-0.2,1.2,-0.399999,1,-0.2,1.2,0,$1*
5,1,6,1.2,0.2,0.399999,$1*
7,0.700001,0,0.599999,0.499999,0.15,$1*%
%ADD10C,0.01*%
%ADD11C,1X0.4*%
%ADD12R,1X0.5001X0.2*%
%ADD13O,1X0.5001X0.2*%
%ADD14O,0.5001X1X0.2*%
%ADD15P,1X5X90X0.2*%
%ADD16COMP,0*%
%ADD17COMP,45*%
%ADD18COMP,-45*%
G75*
%LPD*%
D10*
G01*
X10000Y0D02*
X90000Y0D01*
G03*
X100000Y10000I0J10000D01*
G01*
X100000Y90000D01*
G03*
X90000Y100000I-10000J0D01*
G01*
X10000Y100000D01*
G03*
X0Y90000I0J-10000D01*
G01*
X0Y10000D01*
G03*
X10000Y0I10000J0D01*
G01*
G36*
G01*
X45001Y10000D02*
X50000Y10000D01*
G03*
X55001Y15001I0J5001D01*
G01*
X55001Y85001D01*
G03*
X50000Y90000I-5001J0D01*
G01*
X45001Y90000D01*
G03*
X40000Y85001I0J-5001D01*
G01*
X40000Y15001D01*
G03*
X45001Y10000I5001J0D01*
G01*
G37*
D11*
X25001Y10000D03*
D12*
X25001Y30000D03*
D13*
X25001Y50000D03*
D14*
X25001Y70000D03*
D15*
X25001Y90000D03*
D16*
X75001Y50000D03*
D17*
X75001Y75001D03*
D18*
X75001Y25001D03*
M02*

View file

@ -1,729 +0,0 @@
%MOMM*%
%FSLAX34Y34*%
%IPPOS*%
%ADD10C,0*%
G75*
%LPD*%
D10*
G36*
G01*
X800000Y150000D02*
G75*
G03*
X780000Y170000I-20000J0D01*
G01*
X774000Y170000D01*
G03*
X754000Y150000I0J-20000D01*
G01*
X754000Y50000D01*
G01*
X600000Y50000D01*
G01*
X600000Y150000D01*
G03*
X580000Y170000I-20000J0D01*
G01*
X574000Y170000D01*
G03*
X554000Y150000I0J-20000D01*
G01*
X554000Y50000D01*
G01*
X400000Y50000D01*
G01*
X400000Y150000D01*
G03*
X380000Y170000I-20000J0D01*
G01*
X374000Y170000D01*
G03*
X354000Y150000I0J-20000D01*
G01*
X354000Y50000D01*
G01*
X200000Y50000D01*
G01*
X200000Y150000D01*
G03*
X180000Y170000I-20000J0D01*
G01*
X174000Y170000D01*
G03*
X154000Y150000I0J-20000D01*
G01*
X154000Y50000D01*
G01*
X0Y50000D01*
G01*
X0Y450000D01*
G01*
X17000Y450000D01*
G03*
X37000Y470000I0J20000D01*
G03*
X17000Y490000I-20000J0D01*
G01*
X0Y490000D01*
G01*
X0Y560000D01*
G01*
X17000Y560000D01*
G03*
X37000Y580000I0J20000D01*
G03*
X17000Y600000I-20000J0D01*
G01*
X0Y600000D01*
G01*
X0Y1000000D01*
G01*
X154000Y1000000D01*
G01*
X154000Y900000D01*
G03*
X174000Y880000I20000J0D01*
G01*
X180000Y880000D01*
G03*
X200000Y900000I0J20000D01*
G01*
X200000Y1000000D01*
G01*
X354000Y1000000D01*
G01*
X354000Y900000D01*
G03*
X374000Y880000I20000J0D01*
G01*
X380000Y880000D01*
G03*
X400000Y900000I0J20000D01*
G01*
X400000Y1000000D01*
G01*
X554000Y1000000D01*
G01*
X554000Y900000D01*
G03*
X574000Y880000I20000J0D01*
G01*
X580000Y880000D01*
G03*
X600000Y900000I0J20000D01*
G01*
X600000Y1000000D01*
G01*
X754000Y1000000D01*
G01*
X754000Y900000D01*
G03*
X774000Y880000I20000J0D01*
G01*
X780000Y880000D01*
G03*
X800000Y900000I0J20000D01*
G01*
X800000Y1000000D01*
G01*
X954000Y1000000D01*
G01*
X954000Y600000D01*
G01*
X937000Y600000D01*
G03*
X917000Y580000I0J-20000D01*
G03*
X937000Y560000I20000J0D01*
G01*
X954000Y560000D01*
G01*
X954000Y490000D01*
G01*
X937000Y490000D01*
G03*
X917000Y470000I0J-20000D01*
G03*
X937000Y450000I20000J0D01*
G01*
X954000Y450000D01*
G01*
X954000Y50000D01*
G01*
X800000Y50000D01*
G01*
X800000Y150000D01*
G37*
%LPC*%
G36*
G01*
X624500Y620350D02*
G75*
G01*
X624500Y633350D01*
G03*
X612500Y633350I-6000J0D01*
G01*
X612500Y620350D01*
G03*
X624500Y620350I6000J0D01*
G01*
X824500Y620350D02*
G75*
G02*
X812500Y620350I-6000J0D01*
G01*
X812500Y633350D01*
G02*
X824500Y633350I6000J0D01*
G01*
X824500Y620350D01*
G01*
X729500Y633350D02*
G75*
G02*
X741500Y633350I6000J0D01*
G01*
X741500Y620350D01*
G02*
X729500Y620350I-6000J0D01*
G01*
X729500Y633350D01*
G01*
X141500Y620350D02*
G75*
G01*
X141500Y633350D01*
G03*
X129500Y633350I-6000J0D01*
G01*
X129500Y620350D01*
G03*
X141500Y620350I6000J0D01*
G01*
X212500Y429650D02*
G75*
G01*
X212500Y416650D01*
G03*
X224500Y416650I6000J0D01*
G01*
X224500Y429650D01*
G03*
X212500Y429650I-6000J0D01*
G01*
X341500Y416650D02*
G75*
G01*
X341500Y429650D01*
G03*
X329500Y429650I-6000J0D01*
G01*
X329500Y416650D01*
G03*
X341500Y416650I6000J0D01*
G01*
X341500Y620350D02*
G75*
G01*
X341500Y633350D01*
G03*
X329500Y633350I-6000J0D01*
G01*
X329500Y620350D01*
G03*
X341500Y620350I6000J0D01*
G01*
X624500Y416650D02*
G75*
G01*
X624500Y429650D01*
G03*
X612500Y429650I-6000J0D01*
G01*
X612500Y416650D01*
G03*
X624500Y416650I6000J0D01*
G01*
X729500Y429650D02*
G75*
G01*
X729500Y416650D01*
G03*
X741500Y416650I6000J0D01*
G01*
X741500Y429650D01*
G03*
X729500Y429650I-6000J0D01*
G01*
X541500Y620350D02*
G75*
G02*
X529500Y620350I-6000J0D01*
G01*
X529500Y633350D01*
G02*
X541500Y633350I6000J0D01*
G01*
X541500Y620350D01*
G01*
X929500Y633350D02*
G75*
G02*
X941500Y633350I6000J0D01*
G01*
X941500Y620350D01*
G02*
X929500Y620350I-6000J0D01*
G01*
X929500Y633350D01*
G01*
X412500Y429650D02*
G75*
G01*
X412500Y416650D01*
G03*
X424500Y416650I6000J0D01*
G01*
X424500Y429650D01*
G03*
X412500Y429650I-6000J0D01*
G01*
X224500Y620350D02*
G75*
G01*
X224500Y633350D01*
G03*
X212500Y633350I-6000J0D01*
G01*
X212500Y620350D01*
G03*
X224500Y620350I6000J0D01*
G01*
X541500Y416650D02*
G75*
G02*
X529500Y416650I-6000J0D01*
G01*
X529500Y429650D01*
G02*
X541500Y429650I6000J0D01*
G01*
X541500Y416650D01*
G01*
X129500Y429650D02*
G75*
G02*
X141500Y429650I6000J0D01*
G01*
X141500Y416650D01*
G02*
X129500Y416650I-6000J0D01*
G01*
X129500Y429650D01*
G01*
X24500Y416650D02*
G75*
G02*
X12500Y416650I-6000J0D01*
G01*
X12500Y429650D01*
G02*
X24500Y429650I6000J0D01*
G01*
X24500Y416650D01*
G01*
X941500Y416650D02*
G75*
G02*
X929500Y416650I-6000J0D01*
G01*
X929500Y429650D01*
G02*
X941500Y429650I6000J0D01*
G01*
X941500Y416650D01*
G01*
X424500Y620350D02*
G75*
G01*
X424500Y633350D01*
G03*
X412500Y633350I-6000J0D01*
G01*
X412500Y620350D01*
G03*
X424500Y620350I6000J0D01*
G01*
X824500Y416650D02*
G75*
G02*
X812500Y416650I-6000J0D01*
G01*
X812500Y429650D01*
G02*
X824500Y429650I6000J0D01*
G01*
X824500Y416650D01*
G01*
X12500Y633350D02*
G75*
G01*
X12500Y620350D01*
G03*
X24500Y620350I6000J0D01*
G01*
X24500Y633350D01*
G03*
X12500Y633350I-6000J0D01*
G01*
X660500Y626850D02*
G75*
G03*
X660500Y626850I-6000J0D01*
G01*
X905500Y626850D02*
G75*
G03*
X905500Y626850I-6000J0D01*
G01*
X505500Y626850D02*
G75*
G03*
X505500Y626850I-6000J0D01*
G01*
X860500Y626850D02*
G75*
G03*
X860500Y626850I-6000J0D01*
G01*
X705500Y626850D02*
G75*
G03*
X705500Y626850I-6000J0D01*
G01*
X705500Y423150D02*
G75*
G03*
X705500Y423150I-6000J0D01*
G01*
X660500Y423150D02*
G75*
G03*
X660500Y423150I-6000J0D01*
G01*
X505500Y423150D02*
G75*
G03*
X505500Y423150I-6000J0D01*
G01*
X260500Y626850D02*
G75*
G03*
X260500Y626850I-6000J0D01*
G01*
X905500Y423150D02*
G75*
G03*
X905500Y423150I-6000J0D01*
G01*
X460500Y423150D02*
G75*
G03*
X460500Y423150I-6000J0D01*
G01*
X460500Y626850D02*
G75*
G03*
X460500Y626850I-6000J0D01*
G01*
X60500Y626850D02*
G75*
G03*
X60500Y626850I-6000J0D01*
G01*
X105500Y626850D02*
G75*
G03*
X105500Y626850I-6000J0D01*
G01*
X60500Y423150D02*
G75*
G03*
X60500Y423150I-6000J0D01*
G01*
X305500Y626850D02*
G75*
G03*
X305500Y626850I-6000J0D01*
G01*
X860500Y423150D02*
G75*
G03*
X860500Y423150I-6000J0D01*
G01*
X541500Y633350D02*
G75*
G01*
X541500Y620350D01*
G02*
X529500Y620350I-6000J0D01*
G01*
X529500Y633350D01*
G02*
X541500Y633350I6000J0D01*
G01*
X941500Y429650D02*
G75*
G01*
X941500Y416650D01*
G02*
X929500Y416650I-6000J0D01*
G01*
X929500Y429650D01*
G02*
X941500Y429650I6000J0D01*
G01*
X260500Y423150D02*
G75*
G03*
X260500Y423150I-6000J0D01*
G01*
X305500Y423150D02*
G75*
G03*
X305500Y423150I-6000J0D01*
G01*
X824500Y633350D02*
G75*
G03*
X812500Y633350I-6000J0D01*
G01*
X812500Y620350D01*
G03*
X824500Y620350I6000J0D01*
G01*
X824500Y633350D01*
G01*
X105500Y423150D02*
G75*
G03*
X105500Y423150I-6000J0D01*
G01*
X217000Y560000D02*
G75*
G03*
X237000Y580000I0J20000D01*
G03*
X217000Y600000I-20000J0D01*
G01*
X200000Y600000D01*
G01*
X200000Y700000D01*
G03*
X180000Y720000I-20000J0D01*
G01*
X174000Y720000D01*
G03*
X154000Y700000I0J-20000D01*
G01*
X154000Y600000D01*
G01*
X137000Y600000D01*
G03*
X117000Y580000I0J-20000D01*
G03*
X137000Y560000I20000J0D01*
G01*
X217000Y560000D01*
G01*
X417000Y560000D02*
G75*
G03*
X437000Y580000I0J20000D01*
G03*
X417000Y600000I-20000J0D01*
G01*
X400000Y600000D01*
G01*
X400000Y700000D01*
G03*
X380000Y720000I-20000J0D01*
G01*
X374000Y720000D01*
G03*
X354000Y700000I0J-20000D01*
G01*
X354000Y600000D01*
G01*
X337000Y600000D01*
G03*
X317000Y580000I0J-20000D01*
G03*
X337000Y560000I20000J0D01*
G01*
X417000Y560000D01*
G01*
X617000Y560000D02*
G75*
G03*
X637000Y580000I0J20000D01*
G03*
X617000Y600000I-20000J0D01*
G01*
X600000Y600000D01*
G01*
X600000Y700000D01*
G03*
X580000Y720000I-20000J0D01*
G01*
X574000Y720000D01*
G03*
X554000Y700000I0J-20000D01*
G01*
X554000Y600000D01*
G01*
X537000Y600000D01*
G03*
X517000Y580000I0J-20000D01*
G03*
X537000Y560000I20000J0D01*
G01*
X617000Y560000D01*
G01*
X817000Y560000D02*
G75*
G03*
X837000Y580000I0J20000D01*
G03*
X817000Y600000I-20000J0D01*
G01*
X800000Y600000D01*
G01*
X800000Y700000D01*
G03*
X780000Y720000I-20000J0D01*
G01*
X774000Y720000D01*
G03*
X754000Y700000I0J-20000D01*
G01*
X754000Y600000D01*
G01*
X737000Y600000D01*
G03*
X717000Y580000I0J-20000D01*
G03*
X737000Y560000I20000J0D01*
G01*
X817000Y560000D01*
G01*
X180000Y330000D02*
G75*
G03*
X200000Y350000I0J20000D01*
G01*
X200000Y450000D01*
G01*
X217000Y450000D01*
G03*
X237000Y470000I0J20000D01*
G03*
X217000Y490000I-20000J0D01*
G01*
X137000Y490000D01*
G03*
X117000Y470000I0J-20000D01*
G03*
X137000Y450000I20000J0D01*
G01*
X154000Y450000D01*
G01*
X154000Y350000D01*
G03*
X174000Y330000I20000J0D01*
G01*
X180000Y330000D01*
G01*
X380000Y330000D02*
G75*
G03*
X400000Y350000I0J20000D01*
G01*
X400000Y450000D01*
G01*
X417000Y450000D01*
G03*
X437000Y470000I0J20000D01*
G03*
X417000Y490000I-20000J0D01*
G01*
X337000Y490000D01*
G03*
X317000Y470000I0J-20000D01*
G03*
X337000Y450000I20000J0D01*
G01*
X354000Y450000D01*
G01*
X354000Y350000D01*
G03*
X374000Y330000I20000J0D01*
G01*
X380000Y330000D01*
G01*
X580000Y330000D02*
G75*
G03*
X600000Y350000I0J20000D01*
G01*
X600000Y450000D01*
G01*
X617000Y450000D01*
G03*
X637000Y470000I0J20000D01*
G03*
X617000Y490000I-20000J0D01*
G01*
X537000Y490000D01*
G03*
X517000Y470000I0J-20000D01*
G03*
X537000Y450000I20000J0D01*
G01*
X554000Y450000D01*
G01*
X554000Y350000D01*
G03*
X574000Y330000I20000J0D01*
G01*
X580000Y330000D01*
G01*
X780000Y330000D02*
G75*
G03*
X800000Y350000I0J20000D01*
G01*
X800000Y450000D01*
G01*
X817000Y450000D01*
G03*
X837000Y470000I0J20000D01*
G03*
X817000Y490000I-20000J0D01*
G01*
X737000Y490000D01*
G03*
X717000Y470000I0J-20000D01*
G03*
X737000Y450000I20000J0D01*
G01*
X754000Y450000D01*
G01*
X754000Y350000D01*
G03*
X774000Y330000I20000J0D01*
G01*
X780000Y330000D01*
G37*
M02*

View file

@ -1,746 +0,0 @@
%MOMM*%
%FSLAX34Y34*%
%IPPOS*%
%ADD10C,0*%
%ADD11C,0*%
G75*
%LPD*%
D10*
G36*
G01*
X0Y1000000D02*
G75*
G01*
X0Y0D01*
G01*
X1000000Y0D01*
G01*
X1000000Y1000000D01*
G01*
X0Y1000000D01*
G37*
G75*
%LPC*%
D11*
G36*
G01*
X800000Y150000D02*
G75*
G03*
X780000Y170000I-20000J0D01*
G01*
X774000Y170000D01*
G03*
X754000Y150000I0J-20000D01*
G01*
X754000Y50000D01*
G01*
X600000Y50000D01*
G01*
X600000Y150000D01*
G03*
X580000Y170000I-20000J0D01*
G01*
X574000Y170000D01*
G03*
X554000Y150000I0J-20000D01*
G01*
X554000Y50000D01*
G01*
X400000Y50000D01*
G01*
X400000Y150000D01*
G03*
X380000Y170000I-20000J0D01*
G01*
X374000Y170000D01*
G03*
X354000Y150000I0J-20000D01*
G01*
X354000Y50000D01*
G01*
X200000Y50000D01*
G01*
X200000Y150000D01*
G03*
X180000Y170000I-20000J0D01*
G01*
X174000Y170000D01*
G03*
X154000Y150000I0J-20000D01*
G01*
X154000Y50000D01*
G01*
X0Y50000D01*
G01*
X0Y450000D01*
G01*
X17000Y450000D01*
G03*
X37000Y470000I0J20000D01*
G03*
X17000Y490000I-20000J0D01*
G01*
X0Y490000D01*
G01*
X0Y560000D01*
G01*
X17000Y560000D01*
G03*
X37000Y580000I0J20000D01*
G03*
X17000Y600000I-20000J0D01*
G01*
X0Y600000D01*
G01*
X0Y1000000D01*
G01*
X154000Y1000000D01*
G01*
X154000Y900000D01*
G03*
X174000Y880000I20000J0D01*
G01*
X180000Y880000D01*
G03*
X200000Y900000I0J20000D01*
G01*
X200000Y1000000D01*
G01*
X354000Y1000000D01*
G01*
X354000Y900000D01*
G03*
X374000Y880000I20000J0D01*
G01*
X380000Y880000D01*
G03*
X400000Y900000I0J20000D01*
G01*
X400000Y1000000D01*
G01*
X554000Y1000000D01*
G01*
X554000Y900000D01*
G03*
X574000Y880000I20000J0D01*
G01*
X580000Y880000D01*
G03*
X600000Y900000I0J20000D01*
G01*
X600000Y1000000D01*
G01*
X754000Y1000000D01*
G01*
X754000Y900000D01*
G03*
X774000Y880000I20000J0D01*
G01*
X780000Y880000D01*
G03*
X800000Y900000I0J20000D01*
G01*
X800000Y1000000D01*
G01*
X954000Y1000000D01*
G01*
X954000Y600000D01*
G01*
X937000Y600000D01*
G03*
X917000Y580000I0J-20000D01*
G03*
X937000Y560000I20000J0D01*
G01*
X954000Y560000D01*
G01*
X954000Y490000D01*
G01*
X937000Y490000D01*
G03*
X917000Y470000I0J-20000D01*
G03*
X937000Y450000I20000J0D01*
G01*
X954000Y450000D01*
G01*
X954000Y50000D01*
G01*
X800000Y50000D01*
G01*
X800000Y150000D01*
G37*
%LPD*%
G36*
G01*
X624500Y620350D02*
G75*
G01*
X624500Y633350D01*
G03*
X612500Y633350I-6000J0D01*
G01*
X612500Y620350D01*
G03*
X624500Y620350I6000J0D01*
G01*
X824500Y620350D02*
G75*
G02*
X812500Y620350I-6000J0D01*
G01*
X812500Y633350D01*
G02*
X824500Y633350I6000J0D01*
G01*
X824500Y620350D01*
G01*
X729500Y633350D02*
G75*
G02*
X741500Y633350I6000J0D01*
G01*
X741500Y620350D01*
G02*
X729500Y620350I-6000J0D01*
G01*
X729500Y633350D01*
G01*
X141500Y620350D02*
G75*
G01*
X141500Y633350D01*
G03*
X129500Y633350I-6000J0D01*
G01*
X129500Y620350D01*
G03*
X141500Y620350I6000J0D01*
G01*
X212500Y429650D02*
G75*
G01*
X212500Y416650D01*
G03*
X224500Y416650I6000J0D01*
G01*
X224500Y429650D01*
G03*
X212500Y429650I-6000J0D01*
G01*
X341500Y416650D02*
G75*
G01*
X341500Y429650D01*
G03*
X329500Y429650I-6000J0D01*
G01*
X329500Y416650D01*
G03*
X341500Y416650I6000J0D01*
G01*
X341500Y620350D02*
G75*
G01*
X341500Y633350D01*
G03*
X329500Y633350I-6000J0D01*
G01*
X329500Y620350D01*
G03*
X341500Y620350I6000J0D01*
G01*
X624500Y416650D02*
G75*
G01*
X624500Y429650D01*
G03*
X612500Y429650I-6000J0D01*
G01*
X612500Y416650D01*
G03*
X624500Y416650I6000J0D01*
G01*
X729500Y429650D02*
G75*
G01*
X729500Y416650D01*
G03*
X741500Y416650I6000J0D01*
G01*
X741500Y429650D01*
G03*
X729500Y429650I-6000J0D01*
G01*
X541500Y620350D02*
G75*
G02*
X529500Y620350I-6000J0D01*
G01*
X529500Y633350D01*
G02*
X541500Y633350I6000J0D01*
G01*
X541500Y620350D01*
G01*
X929500Y633350D02*
G75*
G02*
X941500Y633350I6000J0D01*
G01*
X941500Y620350D01*
G02*
X929500Y620350I-6000J0D01*
G01*
X929500Y633350D01*
G01*
X412500Y429650D02*
G75*
G01*
X412500Y416650D01*
G03*
X424500Y416650I6000J0D01*
G01*
X424500Y429650D01*
G03*
X412500Y429650I-6000J0D01*
G01*
X224500Y620350D02*
G75*
G01*
X224500Y633350D01*
G03*
X212500Y633350I-6000J0D01*
G01*
X212500Y620350D01*
G03*
X224500Y620350I6000J0D01*
G01*
X541500Y416650D02*
G75*
G02*
X529500Y416650I-6000J0D01*
G01*
X529500Y429650D01*
G02*
X541500Y429650I6000J0D01*
G01*
X541500Y416650D01*
G01*
X129500Y429650D02*
G75*
G02*
X141500Y429650I6000J0D01*
G01*
X141500Y416650D01*
G02*
X129500Y416650I-6000J0D01*
G01*
X129500Y429650D01*
G01*
X24500Y416650D02*
G75*
G02*
X12500Y416650I-6000J0D01*
G01*
X12500Y429650D01*
G02*
X24500Y429650I6000J0D01*
G01*
X24500Y416650D01*
G01*
X941500Y416650D02*
G75*
G02*
X929500Y416650I-6000J0D01*
G01*
X929500Y429650D01*
G02*
X941500Y429650I6000J0D01*
G01*
X941500Y416650D01*
G01*
X424500Y620350D02*
G75*
G01*
X424500Y633350D01*
G03*
X412500Y633350I-6000J0D01*
G01*
X412500Y620350D01*
G03*
X424500Y620350I6000J0D01*
G01*
X824500Y416650D02*
G75*
G02*
X812500Y416650I-6000J0D01*
G01*
X812500Y429650D01*
G02*
X824500Y429650I6000J0D01*
G01*
X824500Y416650D01*
G01*
X12500Y633350D02*
G75*
G01*
X12500Y620350D01*
G03*
X24500Y620350I6000J0D01*
G01*
X24500Y633350D01*
G03*
X12500Y633350I-6000J0D01*
G01*
X660500Y626850D02*
G75*
G03*
X660500Y626850I-6000J0D01*
G01*
X905500Y626850D02*
G75*
G03*
X905500Y626850I-6000J0D01*
G01*
X505500Y626850D02*
G75*
G03*
X505500Y626850I-6000J0D01*
G01*
X860500Y626850D02*
G75*
G03*
X860500Y626850I-6000J0D01*
G01*
X705500Y626850D02*
G75*
G03*
X705500Y626850I-6000J0D01*
G01*
X705500Y423150D02*
G75*
G03*
X705500Y423150I-6000J0D01*
G01*
X660500Y423150D02*
G75*
G03*
X660500Y423150I-6000J0D01*
G01*
X505500Y423150D02*
G75*
G03*
X505500Y423150I-6000J0D01*
G01*
X260500Y626850D02*
G75*
G03*
X260500Y626850I-6000J0D01*
G01*
X905500Y423150D02*
G75*
G03*
X905500Y423150I-6000J0D01*
G01*
X460500Y423150D02*
G75*
G03*
X460500Y423150I-6000J0D01*
G01*
X460500Y626850D02*
G75*
G03*
X460500Y626850I-6000J0D01*
G01*
X60500Y626850D02*
G75*
G03*
X60500Y626850I-6000J0D01*
G01*
X105500Y626850D02*
G75*
G03*
X105500Y626850I-6000J0D01*
G01*
X60500Y423150D02*
G75*
G03*
X60500Y423150I-6000J0D01*
G01*
X305500Y626850D02*
G75*
G03*
X305500Y626850I-6000J0D01*
G01*
X860500Y423150D02*
G75*
G03*
X860500Y423150I-6000J0D01*
G01*
X541500Y633350D02*
G75*
G01*
X541500Y620350D01*
G02*
X529500Y620350I-6000J0D01*
G01*
X529500Y633350D01*
G02*
X541500Y633350I6000J0D01*
G01*
X941500Y429650D02*
G75*
G01*
X941500Y416650D01*
G02*
X929500Y416650I-6000J0D01*
G01*
X929500Y429650D01*
G02*
X941500Y429650I6000J0D01*
G01*
X260500Y423150D02*
G75*
G03*
X260500Y423150I-6000J0D01*
G01*
X305500Y423150D02*
G75*
G03*
X305500Y423150I-6000J0D01*
G01*
X824500Y633350D02*
G75*
G03*
X812500Y633350I-6000J0D01*
G01*
X812500Y620350D01*
G03*
X824500Y620350I6000J0D01*
G01*
X824500Y633350D01*
G01*
X105500Y423150D02*
G75*
G03*
X105500Y423150I-6000J0D01*
G01*
X217000Y560000D02*
G75*
G03*
X237000Y580000I0J20000D01*
G03*
X217000Y600000I-20000J0D01*
G01*
X200000Y600000D01*
G01*
X200000Y700000D01*
G03*
X180000Y720000I-20000J0D01*
G01*
X174000Y720000D01*
G03*
X154000Y700000I0J-20000D01*
G01*
X154000Y600000D01*
G01*
X137000Y600000D01*
G03*
X117000Y580000I0J-20000D01*
G03*
X137000Y560000I20000J0D01*
G01*
X217000Y560000D01*
G01*
X417000Y560000D02*
G75*
G03*
X437000Y580000I0J20000D01*
G03*
X417000Y600000I-20000J0D01*
G01*
X400000Y600000D01*
G01*
X400000Y700000D01*
G03*
X380000Y720000I-20000J0D01*
G01*
X374000Y720000D01*
G03*
X354000Y700000I0J-20000D01*
G01*
X354000Y600000D01*
G01*
X337000Y600000D01*
G03*
X317000Y580000I0J-20000D01*
G03*
X337000Y560000I20000J0D01*
G01*
X417000Y560000D01*
G01*
X617000Y560000D02*
G75*
G03*
X637000Y580000I0J20000D01*
G03*
X617000Y600000I-20000J0D01*
G01*
X600000Y600000D01*
G01*
X600000Y700000D01*
G03*
X580000Y720000I-20000J0D01*
G01*
X574000Y720000D01*
G03*
X554000Y700000I0J-20000D01*
G01*
X554000Y600000D01*
G01*
X537000Y600000D01*
G03*
X517000Y580000I0J-20000D01*
G03*
X537000Y560000I20000J0D01*
G01*
X617000Y560000D01*
G01*
X817000Y560000D02*
G75*
G03*
X837000Y580000I0J20000D01*
G03*
X817000Y600000I-20000J0D01*
G01*
X800000Y600000D01*
G01*
X800000Y700000D01*
G03*
X780000Y720000I-20000J0D01*
G01*
X774000Y720000D01*
G03*
X754000Y700000I0J-20000D01*
G01*
X754000Y600000D01*
G01*
X737000Y600000D01*
G03*
X717000Y580000I0J-20000D01*
G03*
X737000Y560000I20000J0D01*
G01*
X817000Y560000D01*
G01*
X180000Y330000D02*
G75*
G03*
X200000Y350000I0J20000D01*
G01*
X200000Y450000D01*
G01*
X217000Y450000D01*
G03*
X237000Y470000I0J20000D01*
G03*
X217000Y490000I-20000J0D01*
G01*
X137000Y490000D01*
G03*
X117000Y470000I0J-20000D01*
G03*
X137000Y450000I20000J0D01*
G01*
X154000Y450000D01*
G01*
X154000Y350000D01*
G03*
X174000Y330000I20000J0D01*
G01*
X180000Y330000D01*
G01*
X380000Y330000D02*
G75*
G03*
X400000Y350000I0J20000D01*
G01*
X400000Y450000D01*
G01*
X417000Y450000D01*
G03*
X437000Y470000I0J20000D01*
G03*
X417000Y490000I-20000J0D01*
G01*
X337000Y490000D01*
G03*
X317000Y470000I0J-20000D01*
G03*
X337000Y450000I20000J0D01*
G01*
X354000Y450000D01*
G01*
X354000Y350000D01*
G03*
X374000Y330000I20000J0D01*
G01*
X380000Y330000D01*
G01*
X580000Y330000D02*
G75*
G03*
X600000Y350000I0J20000D01*
G01*
X600000Y450000D01*
G01*
X617000Y450000D01*
G03*
X637000Y470000I0J20000D01*
G03*
X617000Y490000I-20000J0D01*
G01*
X537000Y490000D01*
G03*
X517000Y470000I0J-20000D01*
G03*
X537000Y450000I20000J0D01*
G01*
X554000Y450000D01*
G01*
X554000Y350000D01*
G03*
X574000Y330000I20000J0D01*
G01*
X580000Y330000D01*
G01*
X780000Y330000D02*
G75*
G03*
X800000Y350000I0J20000D01*
G01*
X800000Y450000D01*
G01*
X817000Y450000D01*
G03*
X837000Y470000I0J20000D01*
G03*
X817000Y490000I-20000J0D01*
G01*
X737000Y490000D01*
G03*
X717000Y470000I0J-20000D01*
G03*
X737000Y450000I20000J0D01*
G01*
X754000Y450000D01*
G01*
X754000Y350000D01*
G03*
X774000Y330000I20000J0D01*
G01*
X780000Y330000D01*
G37*
M02*

View file

@ -1,93 +0,0 @@
%MOMM*%
%FSLAX34Y34*%
%IPPOS*%
%ADD10C,0*%
G75*
%LPD*%
D10*
G01*
X910000Y900000D02*
G75*
G01*
X910000Y400000D01*
G01*
X1010000Y900000D02*
G75*
G01*
X1010000Y400000D01*
G01*
X310000Y379390D02*
G75*
G01*
X435827Y379390D01*
G01*
X435827Y228443D01*
G01*
X510000Y50000D02*
G75*
G01*
X210000Y50000D01*
G02*
X110000Y150000I0J100000D01*
G01*
X110000Y450000D01*
G02*
X210000Y550000I100000J0D01*
G01*
X510000Y550000D01*
G02*
X610000Y450000I0J-100000D01*
G01*
X610000Y150000D01*
G02*
X510000Y50000I-100000J0D01*
G01*
X852704Y800394D02*
G75*
G01*
X852704Y500394D01*
G02*
X752704Y400394I-100000J0D01*
G01*
X452704Y400394D01*
G02*
X352704Y500394I0J100000D01*
G01*
X352704Y800394D01*
G02*
X452704Y900394I100000J0D01*
G01*
X752704Y900394D01*
G02*
X852704Y800394I0J-100000D01*
G01*
X492038Y472062D02*
G75*
G01*
X244512Y472062D01*
G01*
X244512Y185960D01*
G01*
X492038Y185960D01*
G01*
X492038Y472062D01*
G01*
X1037009Y176316D02*
G75*
G03*
X1037009Y176316I-125463J0D01*
G01*
X712773Y700000D02*
G75*
G03*
X712773Y700000I-102773J0D01*
G01*
X610000Y700000D02*
G75*
G01*
X610000Y764592D01*
G03*
X672602Y684088I0J-64592D01*
G01*
X610000Y700000D01*
M02*

View file

@ -1,19 +0,0 @@
%MOIN*%
%FSLAX25Y25*%
%IPPOS*%
%ADD10C,0*%
G75*
%LPD*%
D10*
G01*
X0Y39370D02*
G75*
G01*
X0Y0D01*
G01*
X39370Y0D01*
G01*
X39370Y39370D01*
G01*
X0Y39370D01*
M02*

View file

@ -1,19 +0,0 @@
%MOMM*%
%FSLAX34Y34*%
%IPPOS*%
%ADD10C,0*%
G75*
%LPD*%
D10*
G01*
X0Y100000D02*
G75*
G01*
X0Y0D01*
G01*
X100000Y0D01*
G01*
X100000Y100000D01*
G01*
X0Y100000D01*
M02*

View file

@ -1,93 +0,0 @@
%MOMM*%
%FSLAX34Y34*%
%IPPOS*%
%ADD10C,0*%
G75*
%LPD*%
D10*
G01*
X501270Y1044184D02*
G75*
G01*
X672280Y574337D01*
G01*
X595239Y1078386D02*
G75*
G01*
X766249Y608539D01*
G01*
X115513Y349758D02*
G75*
G01*
X233752Y392793D01*
G01*
X285379Y250949D01*
G01*
X416110Y108637D02*
G75*
G01*
X134202Y6031D01*
G02*
X6031Y65798I-34202J93969D01*
G01*
X-96575Y347706D01*
G02*
X-36808Y475877I93969J34202D01*
G01*
X245100Y578483D01*
G02*
X373271Y518716I34202J-93969D01*
G01*
X475877Y236808D01*
G02*
X416110Y108637I-93969J-34202D01*
G01*
X481496Y930988D02*
G75*
G01*
X584102Y649080D01*
G02*
X524335Y520909I-93969J-34202D01*
G01*
X242427Y418303D01*
G02*
X114256Y478070I-34202J93969D01*
G01*
X11650Y759978D01*
G02*
X71417Y888149I93969J34202D01*
G01*
X353325Y990755D01*
G02*
X481496Y930988I34202J-93969D01*
G01*
X254877Y499102D02*
G75*
G01*
X22279Y414443D01*
G01*
X120131Y145595D01*
G01*
X352730Y230254D01*
G01*
X254877Y499102D01*
G01*
X868133Y407583D02*
G75*
G03*
X868133Y407583I-117896J-42911D01*
G01*
X384341Y788789D02*
G75*
G03*
X384341Y788789I-96575J-35150D01*
G01*
X287766Y753639D02*
G75*
G01*
X265674Y814336D01*
G03*
X352035Y760098I22092J-60697D01*
G01*
X287766Y753639D01*
M02*

View file

@ -1,84 +0,0 @@
%MOMM*%
%FSLAX34Y34*%
%IPPOS*%
%ADD10C,0*%
G75*
%LPD*%
D10*
G36*
G01*
X400000Y0D02*
G75*
G01*
X100000Y0D01*
G02*
X0Y100000I0J100000D01*
G01*
X0Y400000D01*
G02*
X100000Y500000I100000J0D01*
G01*
X400000Y500000D01*
G02*
X500000Y400000I0J-100000D01*
G01*
X500000Y100000D01*
G02*
X400000Y0I-100000J0D01*
G01*
X742704Y750394D02*
G75*
G01*
X742704Y450394D01*
G02*
X642704Y350394I-100000J0D01*
G01*
X342704Y350394D01*
G02*
X242704Y450394I0J100000D01*
G01*
X242704Y750394D01*
G02*
X342704Y850394I100000J0D01*
G01*
X642704Y850394D01*
G02*
X742704Y750394I0J-100000D01*
G01*
X927009Y126316D02*
G75*
G03*
X927009Y126316I-125463J0D01*
G37*
%LPC*%
G36*
G01*
X382038Y422062D02*
G75*
G01*
X134512Y422062D01*
G01*
X134512Y135960D01*
G01*
X382038Y135960D01*
G01*
X382038Y422062D01*
G01*
X602773Y650000D02*
G75*
G03*
X602773Y650000I-102773J0D01*
G37*
%LPD*%
G36*
G01*
X500000Y650000D02*
G75*
G01*
X500000Y714592D01*
G03*
X562602Y634088I0J-64592D01*
G01*
X500000Y650000D01*
G37*
M02*

View file

@ -1,78 +0,0 @@
%MOMM*%
%FSLAX34Y34*%
%IPPOS*%
%ADD10C,0*%
G75*
%LPD*%
D10*
G36*
G01*
X400000Y0D02*
G75*
G01*
X100000Y0D01*
G02*
X0Y100000I0J100000D01*
G01*
X0Y400000D01*
G02*
X100000Y500000I100000J0D01*
G01*
X400000Y500000D01*
G02*
X500000Y400000I0J-100000D01*
G01*
X500000Y100000D01*
G02*
X400000Y0I-100000J0D01*
G01*
X742704Y750394D02*
G75*
G01*
X742704Y450394D01*
G02*
X642704Y350394I-100000J0D01*
G01*
X342704Y350394D01*
G02*
X242704Y450394I0J100000D01*
G01*
X242704Y750394D01*
G02*
X342704Y850394I100000J0D01*
G01*
X642704Y850394D01*
G02*
X742704Y750394I0J-100000D01*
G01*
X382038Y422062D02*
G75*
G01*
X134512Y422062D01*
G01*
X134512Y135960D01*
G01*
X382038Y135960D01*
G01*
X382038Y422062D01*
G01*
X927009Y126316D02*
G75*
G03*
X927009Y126316I-125463J0D01*
G01*
X602773Y650000D02*
G75*
G03*
X602773Y650000I-102773J0D01*
G01*
X500000Y650000D02*
G75*
G01*
X500000Y714592D01*
G03*
X562602Y634088I0J-64592D01*
G01*
X500000Y650000D01*
G37*
M02*

View file

@ -1,93 +0,0 @@
%MOMM*%
%FSLAX34Y34*%
%IPPOS*%
%ADD10C,0.2*%
G75*
%LPD*%
D10*
G01*
X800000Y850000D02*
G75*
G01*
X800000Y350000D01*
G01*
X900000Y850000D02*
G75*
G01*
X900000Y350000D01*
G01*
X200000Y329390D02*
G75*
G01*
X325827Y329390D01*
G01*
X325827Y178443D01*
G01*
X400000Y0D02*
G75*
G01*
X100000Y0D01*
G02*
X0Y100000I0J100000D01*
G01*
X0Y400000D01*
G02*
X100000Y500000I100000J0D01*
G01*
X400000Y500000D01*
G02*
X500000Y400000I0J-100000D01*
G01*
X500000Y100000D01*
G02*
X400000Y0I-100000J0D01*
G01*
X742704Y750394D02*
G75*
G01*
X742704Y450394D01*
G02*
X642704Y350394I-100000J0D01*
G01*
X342704Y350394D01*
G02*
X242704Y450394I0J100000D01*
G01*
X242704Y750394D01*
G02*
X342704Y850394I100000J0D01*
G01*
X642704Y850394D01*
G02*
X742704Y750394I0J-100000D01*
G01*
X382038Y422062D02*
G75*
G01*
X134512Y422062D01*
G01*
X134512Y135960D01*
G01*
X382038Y135960D01*
G01*
X382038Y422062D01*
G01*
X927009Y126316D02*
G75*
G03*
X927009Y126316I-125463J0D01*
G01*
X602773Y650000D02*
G75*
G03*
X602773Y650000I-102773J0D01*
G01*
X500000Y650000D02*
G75*
G01*
X500000Y714592D01*
G03*
X562602Y634088I0J-64592D01*
G01*
X500000Y650000D01*
M02*

View file

@ -1,84 +0,0 @@
M48
FMAT,2
ICI,OFF
METRIC,TZ,000.000
T01C0.200
%
G90
M71
T01
G00X80000Y85000
M15
G01X80000Y35000
M16
G05
G00X90000Y85000
M15
G01X90000Y35000
M16
G05
G00X20000Y32939
M15
G01X32583Y32939
G01X32583Y17844
M16
G05
G00X40000Y0
M15
G01X10000Y0
G02X0Y10000I0J10000
G01X0Y40000
G02X10000Y50000I10000J0
G01X40000Y50000
G02X50000Y40000I0J-10000
G01X50000Y10000
G02X40000Y0I-10000J0
M16
G05
G00X74270Y75039
M15
G01X74270Y45039
G02X64270Y35039I-10000J0
G01X34270Y35039
G02X24270Y45039I0J10000
G01X24270Y75039
G02X34270Y85039I10000J0
G01X64270Y85039
G02X74270Y75039I0J-10000
M16
G05
G00X38204Y42206
M15
G01X13451Y42206
G01X13451Y13596
G01X38204Y13596
G01X38204Y42206
M16
G05
G00X92701Y12632
M15
G03X92701Y12632I-12546J0
M16
G05
G00X60277Y65000
M15
G03X60277Y65000I-10277J0
M16
G05
G00X50000Y65000
M15
G01X50000Y71459
G03X56260Y63409I0J-6459
G01X50000Y65000
M16
G05
M30

View file

@ -1,582 +0,0 @@
%MOMM*%
%FSLAX34Y34*%
%IPPOS*%
%ADD10C,0.5*%
G75*
%LPD*%
D10*
X800000Y850000D03*
X800000Y836000D03*
X800000Y822000D03*
X800000Y808000D03*
X800000Y794000D03*
X800000Y780000D03*
X800000Y766000D03*
X800000Y752000D03*
X800000Y738000D03*
X800000Y724000D03*
X800000Y710000D03*
X800000Y696000D03*
X800000Y682000D03*
X800000Y668000D03*
X800000Y654000D03*
X800000Y640000D03*
X800000Y626000D03*
X800000Y612000D03*
X800000Y598000D03*
X800000Y584000D03*
X800000Y570000D03*
X800000Y556000D03*
X800000Y542000D03*
X800000Y528000D03*
X800000Y514000D03*
X800000Y500000D03*
X800000Y486000D03*
X800000Y472000D03*
X800000Y458000D03*
X800000Y444000D03*
X800000Y430000D03*
X800000Y416000D03*
X800000Y402000D03*
X800000Y388000D03*
X800000Y374000D03*
X800000Y360000D03*
X900000Y850000D03*
X900000Y836000D03*
X900000Y822000D03*
X900000Y808000D03*
X900000Y794000D03*
X900000Y780000D03*
X900000Y766000D03*
X900000Y752000D03*
X900000Y738000D03*
X900000Y724000D03*
X900000Y710000D03*
X900000Y696000D03*
X900000Y682000D03*
X900000Y668000D03*
X900000Y654000D03*
X900000Y640000D03*
X900000Y626000D03*
X900000Y612000D03*
X900000Y598000D03*
X900000Y584000D03*
X900000Y570000D03*
X900000Y556000D03*
X900000Y542000D03*
X900000Y528000D03*
X900000Y514000D03*
X900000Y500000D03*
X900000Y486000D03*
X900000Y472000D03*
X900000Y458000D03*
X900000Y444000D03*
X900000Y430000D03*
X900000Y416000D03*
X900000Y402000D03*
X900000Y388000D03*
X900000Y374000D03*
X900000Y360000D03*
X200000Y329390D03*
X214000Y329390D03*
X228000Y329390D03*
X242000Y329390D03*
X256000Y329390D03*
X270000Y329390D03*
X284000Y329390D03*
X298000Y329390D03*
X312000Y329390D03*
X325827Y329217D03*
X325827Y315217D03*
X325827Y301217D03*
X325827Y287217D03*
X325827Y273217D03*
X325827Y259217D03*
X325827Y245217D03*
X325827Y231217D03*
X325827Y217217D03*
X325827Y203217D03*
X325827Y189217D03*
X400000Y0D03*
X386000Y0D03*
X372000Y0D03*
X358000Y0D03*
X344000Y0D03*
X330000Y0D03*
X316000Y0D03*
X302000Y0D03*
X288000Y0D03*
X274000Y0D03*
X260000Y0D03*
X246000Y0D03*
X232000Y0D03*
X218000Y0D03*
X204000Y0D03*
X190000Y0D03*
X176000Y0D03*
X162000Y0D03*
X148000Y0D03*
X134000Y0D03*
X120000Y0D03*
X106000Y0D03*
X92009Y320D03*
X78177Y2410D03*
X64773Y6410D03*
X52057Y12242D03*
X40280Y19790D03*
X29672Y28909D03*
X20440Y39418D03*
X12764Y51113D03*
X6796Y63764D03*
X2652Y77125D03*
X412Y90933D03*
X0Y104920D03*
X0Y118920D03*
X0Y132920D03*
X0Y146920D03*
X0Y160920D03*
X0Y174920D03*
X0Y188920D03*
X0Y202920D03*
X0Y216920D03*
X0Y230920D03*
X0Y244920D03*
X0Y258920D03*
X0Y272920D03*
X0Y286920D03*
X0Y300920D03*
X0Y314920D03*
X0Y328920D03*
X0Y342920D03*
X0Y356920D03*
X0Y370920D03*
X0Y384920D03*
X0Y398920D03*
X834Y412884D03*
X3602Y426596D03*
X8256Y439788D03*
X14706Y452201D03*
X22825Y463592D03*
X32454Y473739D03*
X43404Y482444D03*
X55463Y489534D03*
X68392Y494873D03*
X81940Y498356D03*
X95842Y499914D03*
X109841Y500000D03*
X123841Y500000D03*
X137841Y500000D03*
X151841Y500000D03*
X165841Y500000D03*
X179841Y500000D03*
X193841Y500000D03*
X207841Y500000D03*
X221841Y500000D03*
X235841Y500000D03*
X249841Y500000D03*
X263841Y500000D03*
X277841Y500000D03*
X291841Y500000D03*
X305841Y500000D03*
X319841Y500000D03*
X333841Y500000D03*
X347841Y500000D03*
X361841Y500000D03*
X375841Y500000D03*
X389841Y500000D03*
X403840Y499926D03*
X417746Y498413D03*
X431305Y494974D03*
X444252Y489676D03*
X456333Y482623D03*
X467311Y473954D03*
X476972Y463838D03*
X485127Y452472D03*
X491617Y440080D03*
X496313Y426903D03*
X499125Y413200D03*
X500000Y399239D03*
X500000Y385239D03*
X500000Y371239D03*
X500000Y357239D03*
X500000Y343239D03*
X500000Y329239D03*
X500000Y315239D03*
X500000Y301239D03*
X500000Y287239D03*
X500000Y273239D03*
X500000Y259239D03*
X500000Y245239D03*
X500000Y231239D03*
X500000Y217239D03*
X500000Y203239D03*
X500000Y189239D03*
X500000Y175239D03*
X500000Y161239D03*
X500000Y147239D03*
X500000Y133239D03*
X500000Y119239D03*
X500000Y105239D03*
X499616Y91250D03*
X497421Y77435D03*
X493319Y64061D03*
X487391Y51391D03*
X479753Y39672D03*
X470554Y29133D03*
X459975Y19981D03*
X448222Y12395D03*
X435525Y6523D03*
X422134Y2480D03*
X408309Y346D03*
X742704Y750394D03*
X742704Y736394D03*
X742704Y722394D03*
X742704Y708394D03*
X742704Y694394D03*
X742704Y680394D03*
X742704Y666394D03*
X742704Y652394D03*
X742704Y638394D03*
X742704Y624394D03*
X742704Y610394D03*
X742704Y596394D03*
X742704Y582394D03*
X742704Y568394D03*
X742704Y554394D03*
X742704Y540394D03*
X742704Y526394D03*
X742704Y512394D03*
X742704Y498394D03*
X742704Y484394D03*
X742704Y470394D03*
X742704Y456394D03*
X742384Y442402D03*
X740294Y428571D03*
X736294Y415167D03*
X730462Y402451D03*
X722914Y390674D03*
X713795Y380066D03*
X703286Y370834D03*
X691591Y363158D03*
X678940Y357190D03*
X665579Y353045D03*
X651771Y350806D03*
X637784Y350394D03*
X623784Y350394D03*
X609784Y350394D03*
X595784Y350394D03*
X581784Y350394D03*
X567784Y350394D03*
X553784Y350394D03*
X539784Y350394D03*
X525784Y350394D03*
X511784Y350394D03*
X497784Y350394D03*
X483784Y350394D03*
X469784Y350394D03*
X455784Y350394D03*
X441784Y350394D03*
X427784Y350394D03*
X413784Y350394D03*
X399784Y350394D03*
X385784Y350394D03*
X371784Y350394D03*
X357784Y350394D03*
X343784Y350394D03*
X329820Y351227D03*
X316108Y353996D03*
X302916Y358650D03*
X290503Y365100D03*
X279112Y373219D03*
X268965Y382848D03*
X260261Y393798D03*
X253170Y405856D03*
X247831Y418786D03*
X244348Y432334D03*
X242791Y446236D03*
X242704Y460235D03*
X242704Y474235D03*
X242704Y488235D03*
X242704Y502235D03*
X242704Y516235D03*
X242704Y530235D03*
X242704Y544235D03*
X242704Y558235D03*
X242704Y572235D03*
X242704Y586235D03*
X242704Y600235D03*
X242704Y614235D03*
X242704Y628235D03*
X242704Y642235D03*
X242704Y656235D03*
X242704Y670235D03*
X242704Y684235D03*
X242704Y698235D03*
X242704Y712235D03*
X242704Y726235D03*
X242704Y740235D03*
X242778Y754234D03*
X244291Y768140D03*
X247731Y781699D03*
X253028Y794646D03*
X260081Y806727D03*
X268750Y817705D03*
X278866Y827366D03*
X290232Y835521D03*
X302624Y842011D03*
X315801Y846707D03*
X329504Y849519D03*
X343465Y850394D03*
X357465Y850394D03*
X371465Y850394D03*
X385465Y850394D03*
X399465Y850394D03*
X413465Y850394D03*
X427465Y850394D03*
X441465Y850394D03*
X455465Y850394D03*
X469465Y850394D03*
X483465Y850394D03*
X497465Y850394D03*
X511465Y850394D03*
X525465Y850394D03*
X539465Y850394D03*
X553465Y850394D03*
X567465Y850394D03*
X581465Y850394D03*
X595465Y850394D03*
X609465Y850394D03*
X623465Y850394D03*
X637465Y850394D03*
X651454Y850010D03*
X665269Y847815D03*
X678643Y843713D03*
X691313Y837785D03*
X703032Y830147D03*
X713571Y820948D03*
X722723Y810369D03*
X730309Y798616D03*
X736181Y785919D03*
X740224Y772528D03*
X742358Y758703D03*
X382038Y422062D03*
X368038Y422062D03*
X354038Y422062D03*
X340038Y422062D03*
X326038Y422062D03*
X312038Y422062D03*
X298038Y422062D03*
X284038Y422062D03*
X270038Y422062D03*
X256038Y422062D03*
X242038Y422062D03*
X228038Y422062D03*
X214038Y422062D03*
X200038Y422062D03*
X186038Y422062D03*
X172038Y422062D03*
X158038Y422062D03*
X144038Y422062D03*
X134512Y417588D03*
X134512Y403588D03*
X134512Y389588D03*
X134512Y375588D03*
X134512Y361588D03*
X134512Y347588D03*
X134512Y333588D03*
X134512Y319588D03*
X134512Y305588D03*
X134512Y291588D03*
X134512Y277588D03*
X134512Y263588D03*
X134512Y249588D03*
X134512Y235588D03*
X134512Y221588D03*
X134512Y207588D03*
X134512Y193588D03*
X134512Y179588D03*
X134512Y165588D03*
X134512Y151588D03*
X134512Y137588D03*
X146884Y135960D03*
X160884Y135960D03*
X174884Y135960D03*
X188884Y135960D03*
X202884Y135960D03*
X216884Y135960D03*
X230884Y135960D03*
X244884Y135960D03*
X258884Y135960D03*
X272884Y135960D03*
X286884Y135960D03*
X300884Y135960D03*
X314884Y135960D03*
X328884Y135960D03*
X342884Y135960D03*
X356884Y135960D03*
X370884Y135960D03*
X382038Y138807D03*
X382038Y152807D03*
X382038Y166807D03*
X382038Y180807D03*
X382038Y194807D03*
X382038Y208807D03*
X382038Y222807D03*
X382038Y236807D03*
X382038Y250807D03*
X382038Y264807D03*
X382038Y278807D03*
X382038Y292807D03*
X382038Y306807D03*
X382038Y320807D03*
X382038Y334807D03*
X382038Y348807D03*
X382038Y362807D03*
X382038Y376807D03*
X382038Y390807D03*
X382038Y404807D03*
X382038Y418807D03*
X927009Y126316D03*
X926228Y140287D03*
X923897Y154085D03*
X920044Y167536D03*
X914717Y180475D03*
X907982Y192741D03*
X899924Y204180D03*
X890641Y214651D03*
X880251Y224022D03*
X868881Y232179D03*
X856674Y239019D03*
X843781Y244457D03*
X830363Y248425D03*
X816586Y250874D03*
X802622Y251774D03*
X788645Y251114D03*
X774828Y248901D03*
X761344Y245164D03*
X748360Y239948D03*
X736037Y233319D03*
X724529Y225358D03*
X713979Y216166D03*
X704519Y205856D03*
X696265Y194557D03*
X689321Y182409D03*
X683773Y169563D03*
X679689Y156179D03*
X677122Y142424D03*
X676102Y128469D03*
X676642Y114486D03*
X678737Y100651D03*
X682358Y87135D03*
X687463Y74107D03*
X693986Y61728D03*
X701847Y50152D03*
X710949Y39524D03*
X721177Y29975D03*
X732405Y21625D03*
X744493Y14576D03*
X757291Y8918D03*
X770639Y4720D03*
X784372Y2035D03*
X798318Y895D03*
X812304Y1316D03*
X826157Y3291D03*
X839703Y6797D03*
X852775Y11789D03*
X865210Y18206D03*
X876852Y25968D03*
X887558Y34978D03*
X897195Y45124D03*
X905641Y56280D03*
X912793Y68307D03*
X918560Y81056D03*
X922873Y94367D03*
X925676Y108077D03*
X926935Y122013D03*
X602773Y650000D03*
X601821Y663957D03*
X598982Y677655D03*
X594309Y690841D03*
X587889Y703270D03*
X579841Y714712D03*
X570313Y724955D03*
X559483Y733809D03*
X547550Y741111D03*
X534737Y746724D03*
X521280Y750545D03*
X507428Y752504D03*
X493439Y752563D03*
X479572Y750722D03*
X466083Y747015D03*
X453222Y741510D03*
X441228Y734310D03*
X430323Y725547D03*
X420709Y715385D03*
X412565Y704012D03*
X406040Y691637D03*
X401256Y678491D03*
X398301Y664818D03*
X397231Y650870D03*
X398065Y636905D03*
X400788Y623184D03*
X405348Y609959D03*
X411663Y597476D03*
X419614Y585966D03*
X429055Y575643D03*
X439810Y566697D03*
X451680Y559295D03*
X464446Y553573D03*
X477870Y549638D03*
X491705Y547563D03*
X505693Y547385D03*
X519575Y549109D03*
X533095Y552702D03*
X546002Y558098D03*
X558056Y565196D03*
X569035Y573866D03*
X578734Y583946D03*
X586975Y595251D03*
X593605Y607569D03*
X598500Y620674D03*
X601570Y634322D03*
X602758Y648261D03*
X500000Y650000D03*
X500000Y664000D03*
X500000Y678000D03*
X500000Y692000D03*
X500000Y706000D03*
X494599Y714366D03*
X480883Y711699D03*
X468062Y706144D03*
X456736Y697962D03*
X447434Y687536D03*
X440591Y675353D03*
X436529Y661984D03*
X435437Y648054D03*
X437366Y634216D03*
X442226Y621115D03*
X449789Y609367D03*
X459702Y599520D03*
X471501Y592035D03*
X484633Y587262D03*
X498484Y585425D03*
X512407Y586610D03*
X525748Y590761D03*
X537885Y597685D03*
X548249Y607056D03*
X556356Y618437D03*
X561825Y631294D03*
X551844Y636823D03*
X538276Y640271D03*
X524707Y643720D03*
X511139Y647169D03*
M02*

View file

@ -1,584 +0,0 @@
M48
FMAT,2
ICI,OFF
METRIC,TZ,000.000
T01C0.500
%
G90
M71
T01
X80000Y85000
X80000Y83600
X80000Y82200
X80000Y80800
X80000Y79400
X80000Y78000
X80000Y76600
X80000Y75200
X80000Y73800
X80000Y72400
X80000Y71000
X80000Y69600
X80000Y68200
X80000Y66800
X80000Y65400
X80000Y64000
X80000Y62600
X80000Y61200
X80000Y59800
X80000Y58400
X80000Y57000
X80000Y55600
X80000Y54200
X80000Y52800
X80000Y51400
X80000Y50000
X80000Y48600
X80000Y47200
X80000Y45800
X80000Y44400
X80000Y43000
X80000Y41600
X80000Y40200
X80000Y38800
X80000Y37400
X80000Y36000
X90000Y85000
X90000Y83600
X90000Y82200
X90000Y80800
X90000Y79400
X90000Y78000
X90000Y76600
X90000Y75200
X90000Y73800
X90000Y72400
X90000Y71000
X90000Y69600
X90000Y68200
X90000Y66800
X90000Y65400
X90000Y64000
X90000Y62600
X90000Y61200
X90000Y59800
X90000Y58400
X90000Y57000
X90000Y55600
X90000Y54200
X90000Y52800
X90000Y51400
X90000Y50000
X90000Y48600
X90000Y47200
X90000Y45800
X90000Y44400
X90000Y43000
X90000Y41600
X90000Y40200
X90000Y38800
X90000Y37400
X90000Y36000
X20000Y32939
X21400Y32939
X22800Y32939
X24200Y32939
X25600Y32939
X27000Y32939
X28400Y32939
X29800Y32939
X31200Y32939
X32583Y32922
X32583Y31522
X32583Y30122
X32583Y28722
X32583Y27322
X32583Y25922
X32583Y24522
X32583Y23122
X32583Y21722
X32583Y20322
X32583Y18922
X40000Y0
X38600Y0
X37200Y0
X35800Y0
X34400Y0
X33000Y0
X31600Y0
X30200Y0
X28800Y0
X27400Y0
X26000Y0
X24600Y0
X23200Y0
X21800Y0
X20400Y0
X19000Y0
X17600Y0
X16200Y0
X14800Y0
X13400Y0
X12000Y0
X10600Y0
X9201Y32
X7818Y241
X6477Y641
X5206Y1224
X4028Y1979
X2967Y2891
X2044Y3942
X1276Y5111
X680Y6376
X265Y7712
X41Y9093
X0Y10492
X0Y11892
X0Y13292
X0Y14692
X0Y16092
X0Y17492
X0Y18892
X0Y20292
X0Y21692
X0Y23092
X0Y24492
X0Y25892
X0Y27292
X0Y28692
X0Y30092
X0Y31492
X0Y32892
X0Y34292
X0Y35692
X0Y37092
X0Y38492
X0Y39892
X83Y41288
X360Y42660
X826Y43979
X1471Y45220
X2282Y46359
X3245Y47374
X4340Y48244
X5546Y48953
X6839Y49487
X8194Y49836
X9584Y49991
X10984Y50000
X12384Y50000
X13784Y50000
X15184Y50000
X16584Y50000
X17984Y50000
X19384Y50000
X20784Y50000
X22184Y50000
X23584Y50000
X24984Y50000
X26384Y50000
X27784Y50000
X29184Y50000
X30584Y50000
X31984Y50000
X33384Y50000
X34784Y50000
X36184Y50000
X37584Y50000
X38984Y50000
X40384Y49993
X41775Y49841
X43131Y49497
X44425Y48968
X45633Y48262
X46731Y47395
X47697Y46384
X48513Y45247
X49162Y44008
X49631Y42690
X49912Y41320
X50000Y39924
X50000Y38524
X50000Y37124
X50000Y35724
X50000Y34324
X50000Y32924
X50000Y31524
X50000Y30124
X50000Y28724
X50000Y27324
X50000Y25924
X50000Y24524
X50000Y23124
X50000Y21724
X50000Y20324
X50000Y18924
X50000Y17524
X50000Y16124
X50000Y14724
X50000Y13324
X50000Y11924
X50000Y10524
X49962Y9125
X49742Y7743
X49332Y6406
X48739Y5139
X47975Y3967
X47055Y2913
X45997Y1998
X44822Y1239
X43553Y652
X42213Y248
X40831Y35
X74270Y75039
X74270Y73639
X74270Y72239
X74270Y70839
X74270Y69439
X74270Y68039
X74270Y66639
X74270Y65239
X74270Y63839
X74270Y62439
X74270Y61039
X74270Y59639
X74270Y58239
X74270Y56839
X74270Y55439
X74270Y54039
X74270Y52639
X74270Y51239
X74270Y49839
X74270Y48439
X74270Y47039
X74270Y45639
X74238Y44240
X74029Y42857
X73629Y41517
X73046Y40245
X72291Y39067
X71380Y38007
X70329Y37083
X69159Y36316
X67894Y35719
X66558Y35305
X65177Y35081
X63778Y35039
X62378Y35039
X60978Y35039
X59578Y35039
X58178Y35039
X56778Y35039
X55378Y35039
X53978Y35039
X52578Y35039
X51178Y35039
X49778Y35039
X48378Y35039
X46978Y35039
X45578Y35039
X44178Y35039
X42778Y35039
X41378Y35039
X39978Y35039
X38578Y35039
X37178Y35039
X35778Y35039
X34378Y35039
X32982Y35123
X31611Y35400
X30292Y35865
X29050Y36510
X27911Y37322
X26896Y38285
X26026Y39380
X25317Y40586
X24783Y41879
X24435Y43233
X24279Y44624
X24270Y46023
X24270Y47423
X24270Y48823
X24270Y50223
X24270Y51623
X24270Y53023
X24270Y54423
X24270Y55823
X24270Y57223
X24270Y58623
X24270Y60023
X24270Y61423
X24270Y62823
X24270Y64223
X24270Y65623
X24270Y67023
X24270Y68423
X24270Y69823
X24270Y71223
X24270Y72623
X24270Y74023
X24278Y75423
X24429Y76814
X24773Y78170
X25303Y79465
X26008Y80673
X26875Y81771
X27887Y82737
X29023Y83552
X30262Y84201
X31580Y84671
X32950Y84952
X34347Y85039
X35747Y85039
X37147Y85039
X38547Y85039
X39947Y85039
X41347Y85039
X42747Y85039
X44147Y85039
X45547Y85039
X46947Y85039
X48347Y85039
X49747Y85039
X51147Y85039
X52547Y85039
X53947Y85039
X55347Y85039
X56747Y85039
X58147Y85039
X59547Y85039
X60947Y85039
X62347Y85039
X63747Y85039
X65145Y85001
X66527Y84781
X67864Y84371
X69131Y83778
X70303Y83015
X71357Y82095
X72272Y81037
X73031Y79862
X73618Y78592
X74022Y77253
X74236Y75870
X38204Y42206
X36804Y42206
X35404Y42206
X34004Y42206
X32604Y42206
X31204Y42206
X29804Y42206
X28404Y42206
X27004Y42206
X25604Y42206
X24204Y42206
X22804Y42206
X21404Y42206
X20004Y42206
X18604Y42206
X17204Y42206
X15804Y42206
X14404Y42206
X13451Y41759
X13451Y40359
X13451Y38959
X13451Y37559
X13451Y36159
X13451Y34759
X13451Y33359
X13451Y31959
X13451Y30559
X13451Y29159
X13451Y27759
X13451Y26359
X13451Y24959
X13451Y23559
X13451Y22159
X13451Y20759
X13451Y19359
X13451Y17959
X13451Y16559
X13451Y15159
X13451Y13759
X14688Y13596
X16088Y13596
X17488Y13596
X18888Y13596
X20288Y13596
X21688Y13596
X23088Y13596
X24488Y13596
X25888Y13596
X27288Y13596
X28688Y13596
X30088Y13596
X31488Y13596
X32888Y13596
X34288Y13596
X35688Y13596
X37088Y13596
X38204Y13881
X38204Y15281
X38204Y16681
X38204Y18081
X38204Y19481
X38204Y20881
X38204Y22281
X38204Y23681
X38204Y25081
X38204Y26481
X38204Y27881
X38204Y29281
X38204Y30681
X38204Y32081
X38204Y33481
X38204Y34881
X38204Y36281
X38204Y37681
X38204Y39081
X38204Y40481
X38204Y41881
X92701Y12632
X92623Y14029
X92390Y15408
X92004Y16754
X91472Y18048
X90798Y19274
X89992Y20418
X89064Y21465
X88025Y22402
X86888Y23218
X85667Y23902
X84378Y24446
X83036Y24842
X81659Y25087
X80262Y25177
X78865Y25111
X77483Y24890
X76134Y24516
X74836Y23995
X73604Y23332
X72453Y22536
X71398Y21617
X70452Y20586
X69626Y19456
X68932Y18241
X68377Y16956
X67969Y15618
X67712Y14242
X67610Y12847
X67664Y11449
X67874Y10065
X68236Y8714
X68746Y7411
X69399Y6173
X70185Y5015
X71095Y3952
X72118Y2997
X73241Y2162
X74449Y1458
X75729Y892
X77064Y472
X78437Y203
X79832Y90
X81230Y132
X82616Y329
X83970Y680
X85278Y1179
X86521Y1821
X87685Y2597
X88756Y3498
X89719Y4512
X90564Y5628
X91279Y6831
X91856Y8106
X92287Y9437
X92568Y10808
X92693Y12201
X60277Y65000
X60182Y66396
X59898Y67765
X59431Y69084
X58789Y70327
X57984Y71471
X57031Y72495
X55948Y73381
X54755Y74111
X53474Y74672
X52128Y75055
X50743Y75250
X49344Y75256
X47957Y75072
X46608Y74701
X45322Y74151
X44123Y73431
X43032Y72555
X42071Y71539
X41256Y70401
X40604Y69164
X40126Y67849
X39830Y66482
X39723Y65087
X39807Y63691
X40079Y62318
X40535Y60996
X41166Y59748
X41961Y58597
X42905Y57564
X43981Y56670
X45168Y55929
X46445Y55357
X47787Y54964
X49170Y54756
X50569Y54739
X51958Y54911
X53310Y55270
X54600Y55810
X55806Y56520
X56903Y57387
X57873Y58395
X58698Y59525
X59360Y60757
X59850Y62067
X60157Y63432
X60276Y64826
X50000Y65000
X50000Y66400
X50000Y67800
X50000Y69200
X50000Y70600
X49460Y71437
X48088Y71170
X46806Y70614
X45674Y69796
X44743Y68754
X44059Y67535
X43653Y66198
X43544Y64805
X43737Y63422
X44223Y62112
X44979Y60937
X45970Y59952
X47150Y59203
X48463Y58726
X49848Y58543
X51241Y58661
X52575Y59076
X53789Y59768
X54825Y60706
X55636Y61844
X56182Y63129
X55184Y63682
X53828Y64027
X52471Y64372
X51114Y64717
M30

View file

@ -1,93 +0,0 @@
%MOIN*%
%FSLAX25Y25*%
%IPPOS*%
%ADD10C,0*%
G75*
%LPD*%
D10*
G01*
X314961Y334646D02*
G75*
G01*
X314961Y137795D01*
G01*
X354331Y334646D02*
G75*
G01*
X354331Y137795D01*
G01*
X78740Y129681D02*
G75*
G01*
X128278Y129681D01*
G01*
X128278Y70253D01*
G01*
X157480Y0D02*
G75*
G01*
X39370Y0D01*
G02*
X0Y39370I0J39370D01*
G01*
X0Y157480D01*
G02*
X39370Y196850I39370J0D01*
G01*
X157480Y196850D01*
G02*
X196850Y157480I0J-39370D01*
G01*
X196850Y39370D01*
G02*
X157480Y0I-39370J0D01*
G01*
X292403Y295431D02*
G75*
G01*
X292403Y177320D01*
G02*
X253033Y137950I-39370J0D01*
G01*
X134923Y137950D01*
G02*
X95553Y177320I0J39370D01*
G01*
X95553Y295431D01*
G02*
X134923Y334801I39370J0D01*
G01*
X253033Y334801D01*
G02*
X292403Y295431I0J-39370D01*
G01*
X150409Y166166D02*
G75*
G01*
X52957Y166166D01*
G01*
X52957Y53528D01*
G01*
X150409Y53528D01*
G01*
X150409Y166166D01*
G01*
X364964Y49731D02*
G75*
G03*
X364964Y49731I-49395J0D01*
G01*
X237312Y255906D02*
G75*
G03*
X237312Y255906I-40462J0D01*
G01*
X196850Y255906D02*
G75*
G01*
X196850Y281336D01*
G03*
X221497Y249641I0J-25430D01*
G01*
X196850Y255906D01*
M02*

View file

@ -1,41 +0,0 @@
M48
FMAT,2
ICI,OFF
METRIC,TZ,000.000
T01C0.600
T02C0.700
T03C0.800
T04C1.000
%
G90
M71
T01
X15610Y7438
X15610Y8413
X14610Y11100G85X13100Y11100
T02
X14610Y8900
X14610Y6950
X13140Y6950
X13050Y8900
T03
G00X14610Y7925
M15
G01X13140Y7925
M16
G05
X14600Y12100
T04
G00X11600Y6700
M15
G02X12600Y5700I0J-1000
G03X13600Y4700A1000
G03X14600Y5700A1000
G01X17600Y5700
G01X17600Y7600
G03X15100Y10100I-2500J0
G01X11600Y10100
G01X11600Y6700
M16
G05
M30

View file

@ -1,41 +0,0 @@
M48
FMAT,2
ICI,OFF
METRIC,TZ,000.000
T01C0.600
T02C0.700
T03C0.800
T04C1.000
%
G90
M71
T01
X7521Y1051
X7188Y1967
X5329Y4150G85X3910Y3633
T02
X6082Y2082
X6749Y250
X5367Y-253
X4616Y1549
T03
G00X6415Y1166
M15
G01X5034Y663
M16
G05
X4978Y5086
T04
G00X4006Y-1014
M15
G02X5287Y-1612I342J-940
G03X6569Y-2210A1000
G03X7167Y-928A1000
G01X9986Y98
G01X9336Y1883
G03X6132Y3378I-2349J-855
G01X2843Y2181
G01X4006Y-1014
M16
G05
M30

View file

@ -1,41 +0,0 @@
M48
FMAT,2
ICI,OFF
METRIC,TZ,000.000
T01C0.600
T02C0.700
T03C0.800
T04C1.000
%
G90
M71
T01
X4610Y2438
X4610Y3413
X3610Y6100G85X2100Y6100
T02
X3610Y3900
X3610Y1950
X2140Y1950
X2050Y3900
T03
G00X3610Y2925
M15
G01X2140Y2925
M16
G05
X3600Y7100
T04
G00X600Y1700
M15
G02X1600Y700I0J-1000
G03X2600Y-300A1000
G03X3600Y700A1000
G01X6600Y700
G01X6600Y2600
G03X4100Y5100I-2500J0
G01X600Y5100
G01X600Y1700
M16
G05
M30

View file

@ -1,41 +0,0 @@
M48
FMAT,2
ICI,OFF
INCH,TZ
T01C0.0236
T02C0.0275
T03C0.0314
T04C0.0393
%
G90
M72
T01
X1815Y960
X1815Y1344
X1421Y2402G85X827Y2402
T02
X1421Y1535
X1421Y768
X843Y768
X807Y1535
T03
G00X1421Y1152
M15
G01X843Y1152
M16
G05
X1417Y2795
T04
G00X236Y669
M15
G02X630Y276I0J-394
G03X1024Y-118A394
G03X1417Y276A394
G01X2598Y276
G01X2598Y1024
G03X1614Y2008I-984J0
G01X236Y2008
G01X236Y669
M16
G05
M30

View file

@ -1,41 +0,0 @@
M48
FMAT,2
ICI,OFF
METRIC,TZ,000.000
T01C0.599
T02C0.698
T03C0.797
T04C0.998
%
G90
M71
T01
X4610Y2438
X4610Y3414
X3609Y6101G85X2101Y6101
T02
X3609Y3899
X3609Y1951
X2141Y1951
X2050Y3899
T03
G00X3609Y2926
M15
G01X2141Y2926
M16
G05
X3599Y7099
T04
G00X599Y1699
M15
G02X1600Y701I0J-1001
G03X2601Y-300A1001
G03X3599Y701A1001
G01X6599Y701
G01X6599Y2601
G03X4100Y5100I-2499J0
G01X599Y5100
G01X599Y1699
M16
G05
M30

View file

@ -1,193 +0,0 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Copyright 2019 Hiroshi Murayama <opiopan@gmail.com>
import unittest
from ...am_expression import *
from ...am_expression import AMOperatorExpression as Op
from ...utils import inch, metric
from ...am_read import read_macro
class TestAMConstantExpression(unittest.TestCase):
def setUp(self):
self.const_int_value = 7
self.const_int = AMConstantExpression(self.const_int_value)
self.const_float_value = 1.2345
self.const_float = AMConstantExpression(self.const_float_value)
def test_contruct(self):
self.assertEqual(self.const_int.value, self.const_int_value)
self.assertEqual(self.const_float.value, self.const_float_value)
def test_optimize(self):
ov = self.const_int.optimize()
self.assertEqual(ov.value, self.const_int_value)
ov = self.const_float.optimize()
self.assertEqual(ov.value, self.const_float_value)
def test_to_gerber(self):
self.assertEqual(self.const_int.to_gerber(), '7')
self.assertEqual(self.const_float.to_gerber(), '1.2345')
class TestAMVariableExpression(unittest.TestCase):
def setUp(self):
self.var1_num = 1
self.var1 = AMVariableExpression(self.var1_num)
self.var2_num = 512
self.var2 = AMVariableExpression(self.var2_num)
def test_construction(self):
self.assertEqual(self.var1.number, self.var1_num)
self.assertEqual(self.var2.number, self.var2_num)
def test_optimize(self):
ov = self.var1.optimize()
self.assertTrue(isinstance(ov, AMVariableExpression))
self.assertEqual(ov.number, self.var1_num)
ov = self.var2.optimize()
self.assertTrue(isinstance(ov, AMVariableExpression))
self.assertEqual(ov.number, self.var2_num)
def test_to_gerber(self):
self.assertEqual(self.var1.to_gerber(), '$1')
self.assertEqual(self.var2.to_gerber(), '$512')
class TestAMOperatorExpression(unittest.TestCase):
def setUp(self):
self.c1 = 10
self.c2 = 20
self.v1 = 5
self.v2 = 9
c1 = AMConstantExpression(self.c1)
c2 = AMConstantExpression(self.c2)
v1 = AMVariableExpression(self.v1)
v2 = AMVariableExpression(self.v2)
self.cc_exps = [
(Op.ADD, AMOperatorExpression(Op.ADD, c1, c2)),
(Op.SUB, AMOperatorExpression(Op.SUB, c1, c2)),
(Op.MUL, AMOperatorExpression(Op.MUL, c1, c2)),
(Op.DIV, AMOperatorExpression(Op.DIV, c1, c2)),
]
self.cv_exps = [
(Op.ADD, AMOperatorExpression(Op.ADD, c1, v2)),
(Op.SUB, AMOperatorExpression(Op.SUB, c1, v2)),
(Op.MUL, AMOperatorExpression(Op.MUL, c1, v2)),
(Op.DIV, AMOperatorExpression(Op.DIV, c1, v2)),
]
self.vc_exps = [
(Op.ADD, AMOperatorExpression(Op.ADD, v1, c2)),
(Op.SUB, AMOperatorExpression(Op.SUB, v1, c2)),
(Op.MUL, AMOperatorExpression(Op.MUL, v1, c2)),
(Op.DIV, AMOperatorExpression(Op.DIV, v1, c2)),
]
self.composition = AMOperatorExpression(Op.ADD,
self.cc_exps[0][1], self.cc_exps[0][1])
def test_optimize(self):
self.assertEqual(self.cc_exps[0][1].optimize().value, self.c1 + self.c2)
self.assertEqual(self.cc_exps[1][1].optimize().value, self.c1 - self.c2)
self.assertEqual(self.cc_exps[2][1].optimize().value, self.c1 * self.c2)
self.assertEqual(self.cc_exps[3][1].optimize().value, self.c1 / self.c2)
for op, expression in self.cv_exps:
o = expression.optimize()
self.assertTrue(isinstance(o, AMOperatorExpression))
self.assertEqual(o.op, op)
self.assertEqual(o.lvalue.value, self.c1)
self.assertEqual(o.rvalue.number, self.v2)
for op, expression in self.vc_exps:
o = expression.optimize()
self.assertTrue(isinstance(o, AMOperatorExpression))
self.assertEqual(o.op, op)
self.assertEqual(o.lvalue.number, self.v1)
self.assertEqual(o.rvalue.value, self.c2)
self.assertEqual(self.composition.optimize().value, (self.c1 + self.c2) * 2)
def test_to_gerber(self):
for op, expression in self.cc_exps:
self.assertEqual(expression.to_gerber(),
'({0}){1}({2})'.format(self.c1, op, self.c2))
for op, expression in self.cv_exps:
self.assertEqual(expression.to_gerber(),
'({0}){1}(${2})'.format(self.c1, op, self.v2))
for op, expression in self.vc_exps:
self.assertEqual(expression.to_gerber(),
'(${0}){1}({2})'.format(self.v1, op, self.c2))
self.assertEqual(self.composition.to_gerber(),
'(({0})+({1}))+(({2})+({3}))'.format(
self.c1, self.c2, self.c1, self.c2
))
class TestAMExpression(unittest.TestCase):
def setUp(self):
self.c1 = 10
self.c1_exp = AMConstantExpression(self.c1)
self.v1 = 5
self.v1_exp = AMVariableExpression(self.v1)
self.op_exp = AMOperatorExpression(Op.ADD, self.c1_exp, self.v1_exp)
def test_to_inch(self):
o = self.c1_exp.to_inch().optimize()
self.assertEqual(o.value, inch(self.c1))
o = self.v1_exp.to_inch().optimize()
self.assertTrue(isinstance(o, AMOperatorExpression))
self.assertEqual(o.op, Op.DIV)
o = self.op_exp.to_inch().optimize()
self.assertTrue(isinstance(o, AMOperatorExpression))
self.assertEqual(o.op, Op.DIV)
def test_to_metric(self):
o = self.c1_exp.to_metric().optimize()
self.assertEqual(o.value, metric(self.c1))
o = self.v1_exp.to_metric().optimize()
self.assertTrue(isinstance(o, AMOperatorExpression))
self.assertEqual(o.op, Op.MUL)
o = self.op_exp.to_metric().optimize()
self.assertTrue(isinstance(o, AMOperatorExpression))
self.assertEqual(o.op, Op.MUL)
class TestEvalMacro(unittest.TestCase):
def test_eval_macro(self):
macros = [
'$1=5.5*',
'$1=0.000001*'
'$2=$3*',
'$3=(1.23)+(4.56)*',
'$3=(1.23)-(4.56)*',
'$3=(1.23)X(4.56)*',
'$3=(1.23)/(4.56)*',
'$3=(10.2)X($2)*',
'1,1.2*',
'1,$2*',
'1,($2)+($3)*',
#'1,(2.0)-($3)*', # This doesn't pass due to pcb-tools bug
'1,($2)X($3)*',
'1,($2)/($3)*',
'1,2.1,3.2*2,(3.1)/($1),$2*'
]
for macro in macros:
self._eval_macro_string(macro)
def _eval_macro_string(self, macro):
expressions = eval_macro(read_macro(macro))
gerber = self._to_gerber(expressions)
self.assertEqual(macro, gerber)
def _to_gerber(self, expressions_list):
gerber = ''
for number, expressions in expressions_list:
self.assertTrue(isinstance(number, int))
if number > 0:
egerbers = [exp.to_gerber() for exp in expressions]
gerber += '{0},{1}*'.format(number, ','.join(egerbers))
else:
self.assertEqual(len(expressions), 1)
gerber += '${0}={1}*'.format(-number, expressions[0].to_gerber())
return gerber

View file

@ -1,134 +0,0 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Copyright 2019 Hiroshi Murayama <opiopan@gmail.com>
import os
import tempfile
from pathlib import Path
from contextlib import contextmanager
import unittest
from ... import panelize
from ...utils import inch, metric
@unittest.skip
class TestExcellon(unittest.TestCase):
@classmethod
def setUpClass(cls):
here = Path(__file__).parent
cls.EXPECTSDIR = here / 'expects'
cls.METRIC_FILE = here / 'data' / 'ref_dxf_metric.dxf'
cls.INCH_FILE = here / 'data' / 'ref_dxf_inch.dxf'
cls.COMPLEX_FILE = here / 'data' / 'ref_dxf_complex.dxf'
@contextmanager
def _check_result(self, reference_fn):
with tempfile.NamedTemporaryFile('rb') as tmp_out:
yield tmp_out.name
actual = tmp_out.read()
expected = (self.EXPECTSDIR / reference_fn).read_bytes()
self.assertEqual(actual, expected)
def test_save_line(self):
with self._check_result('dxf_save_line.gtl') as outfile:
dxf = panelize.read(self.METRIC_FILE)
dxf.draw_mode = dxf.DM_LINE
dxf.width = 0.2
dxf.write(outfile)
def test_save_fill(self):
with self._check_result('dxf_save_fill.gtl') as outfile:
dxf = panelize.read(self.METRIC_FILE)
dxf.draw_mode = dxf.DM_FILL
dxf.write(outfile)
def test_save_fill_simple(self):
with self._check_result('dxf_save_fill_simple.gtl') as outfile:
dxf = panelize.read(self.METRIC_FILE)
dxf.draw_mode = dxf.DM_FILL
dxf.fill_mode = dxf.FM_SIMPLE
dxf.write(outfile)
def test_save_mousebites(self):
with self._check_result('dxf_save_mousebites.gtl') as outfile:
dxf = panelize.read(self.METRIC_FILE)
dxf.draw_mode = dxf.DM_MOUSE_BITES
dxf.width = 0.5
dxf.pitch = 1.4
dxf.write(outfile)
def test_save_excellon(self):
with self._check_result('dxf_save_line.txt') as outfile:
dxf = panelize.read(self.METRIC_FILE)
dxf.draw_mode = dxf.DM_LINE
dxf.format = (3,3)
dxf.width = 0.2
dxf.write(outfile, filetype=dxf.FT_EXCELLON)
def test_save_excellon_mousebites(self):
with self._check_result('dxf_save_mousebites.txt') as outfile:
dxf = panelize.read(self.METRIC_FILE)
dxf.draw_mode = dxf.DM_MOUSE_BITES
dxf.format = (3, 3)
dxf.width = 0.5
dxf.pitch = 1.4
dxf.write(outfile, filetype=dxf.FT_EXCELLON)
def test_to_inch(self):
with self._check_result('dxf_to_inch.gtl') as outfile:
dxf = panelize.read(self.METRIC_FILE)
dxf.to_inch()
dxf.format = (2, 5)
dxf.write(outfile)
def _test_to_metric(self):
with self._check_result('dxf_to_metric.gtl') as outfile:
dxf = panelize.read(self.INCH_FILE)
dxf.to_metric()
dxf.format = (3, 5)
dxf.write(outfile)
def test_offset(self):
with self._check_result('dxf_offset.gtl') as outfile:
dxf = panelize.read(self.METRIC_FILE)
dxf.offset(11, 5)
dxf.write(outfile)
def test_rotate(self):
with self._check_result('dxf_rotate.gtl') as outfile:
dxf = panelize.read(self.METRIC_FILE)
dxf.rotate(20, (10, 10))
dxf.write(outfile)
def test_rectangle_metric(self):
with self._check_result('dxf_rectangle_metric.gtl') as outfile:
dxf = panelize.DxfFile.rectangle(width=10, height=10, units='metric')
dxf.write(outfile)
def test_rectangle_inch(self):
with self._check_result('dxf_rectangle_inch.gtl') as outfile:
dxf = panelize.DxfFile.rectangle(width=inch(10), height=inch(10), units='inch')
dxf.write(outfile)
def test_complex_fill(self):
with self._check_result('dxf_complex_fill.gtl') as outfile:
dxf = panelize.read(self.COMPLEX_FILE)
dxf.draw_mode = dxf.DM_FILL
dxf.write(outfile)
def test_complex_fill_flip(self):
with self._check_result('dxf_complex_fill_flip.gtl') as outfile:
ctx = panelize.GerberComposition()
base = panelize.rectangle(width=100, height=100, left=0, bottom=0, units='metric')
base.draw_mode = base.DM_FILL
ctx.merge(base)
dxf = panelize.read(self.COMPLEX_FILE)
dxf.negate_polarity()
dxf.draw_mode = dxf.DM_FILL
ctx.merge(dxf)
ctx.dump(outfile)

View file

@ -1,60 +0,0 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Copyright 2019 Hiroshi Murayama <opiopan@gmail.com>
import os
import tempfile
from pathlib import Path
from contextlib import contextmanager
import unittest
from ... import panelize
class TestExcellon(unittest.TestCase):
@classmethod
def setUpClass(cls):
here = Path(__file__).parent
cls.EXPECTSDIR = here / 'expects'
cls.METRIC_FILE = here / 'data' / 'ref_drill_metric.txt'
cls.INCH_FILE = here / 'data' / 'ref_drill_inch.txt'
@contextmanager
def _check_result(self, reference_fn):
with tempfile.NamedTemporaryFile('rb') as tmp_out:
yield tmp_out.name
actual = tmp_out.read()
expected = (self.EXPECTSDIR / reference_fn).read_bytes()
self.assertEqual(actual, expected)
def test_save(self):
with self._check_result('excellon_save.txt') as outfile:
drill = panelize.read(self.METRIC_FILE)
drill.write(outfile)
def test_to_inch(self):
with self._check_result('excellon_to_inch.txt') as outfile:
drill = panelize.read(self.METRIC_FILE)
drill.to_inch()
drill.format = (2, 4)
drill.write(outfile)
def test_to_metric(self):
with self._check_result('excellon_to_metric.txt') as outfile:
drill = panelize.read(self.INCH_FILE)
drill.to_metric()
drill.format = (3, 3)
drill.write(outfile)
def test_offset(self):
with self._check_result('excellon_offset.txt') as outfile:
drill = panelize.read(self.METRIC_FILE)
drill.offset(11, 5)
drill.write(outfile)
def test_rotate(self):
with self._check_result('excellon_rotate.txt') as outfile:
drill = panelize.read(self.METRIC_FILE)
drill.rotate(20, (10, 10))
drill.write(outfile)

View file

@ -1,48 +0,0 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Copyright 2019 Hiroshi Murayama <opiopan@gmail.com>
import unittest
from ...panelize.utility import *
from math import sqrt
class TestUtility(unittest.TestCase):
def test_is_equal_value(self):
a = 10.0001
b = 10.01
self.assertTrue(is_equal_value(a, b, 0.1))
self.assertTrue(is_equal_value(a, b, 0.01))
self.assertFalse(is_equal_value(a, b, 0.001))
self.assertFalse(is_equal_value(a, b))
self.assertTrue(is_equal_value(b, a, 0.1))
self.assertTrue(is_equal_value(b, a, 0.01))
self.assertFalse(is_equal_value(b, a, 0.001))
self.assertFalse(is_equal_value(b, a))
def test_is_equal_point(self):
p0 = (10.01, 5.001)
p1 = (10.0001, 5)
self.assertTrue(is_equal_point(p0, p1, 0.1))
self.assertTrue(is_equal_point(p0, p1, 0.01))
self.assertFalse(is_equal_point(p0, p1, 0.001))
self.assertFalse(is_equal_point(p0, p1))
self.assertTrue(is_equal_point(p1, p0, 0.1))
self.assertTrue(is_equal_point(p1, p0, 0.01))
self.assertFalse(is_equal_point(p1, p0, 0.001))
self.assertFalse(is_equal_point(p1, p0))
p0 = (5.001, 10.01)
p1 = (5, 10.0001)
self.assertTrue(is_equal_point(p0, p1, 0.1))
self.assertTrue(is_equal_point(p0, p1, 0.01))
self.assertFalse(is_equal_point(p0, p1, 0.001))
self.assertFalse(is_equal_point(p0, p1))
self.assertTrue(is_equal_point(p1, p0, 0.1))
self.assertTrue(is_equal_point(p1, p0, 0.01))
self.assertFalse(is_equal_point(p1, p0, 0.001))
self.assertFalse(is_equal_point(p1, p0))

View file

@ -1,20 +1,17 @@
#! /usr/bin/env python
# -*- coding: utf-8 -*-
#
# Author: Hamilton Kibbe <ham@hamiltonkib.be>
# Author: Jan Götte <code@jaseg.de>
#
import pytest
from ..utils import *
from ..cam import FileSettings
def test_zero_suppression():
""" Test gerber value parser and writer handle zero suppression correctly.
"""
# Default format
fmt = (2, 5)
# Test leading zero suppression
zero_suppression = "leading"
settings = FileSettings(number_format=(2,5), zeros='leading')
test_cases = [
("1", 0.00001),
("10", 0.0001),
@ -32,12 +29,14 @@ def test_zero_suppression():
("-1000000", -10.0),
("0", 0.0),
]
for string, value in test_cases:
assert value == parse_gerber_value(string, fmt, zero_suppression)
assert string == write_gerber_value(value, fmt, zero_suppression)
# Test trailing zero suppression
zero_suppression = "trailing"
assert settings.write_gerber_value(0.000000001) == "0"
for string, value in test_cases:
assert value == settings.parse_gerber_value(string)
assert string == settings.write_gerber_value(value)
settings = FileSettings(number_format=(2,5), zeros='trailing')
test_cases = [
("1", 10.0),
("01", 1.0),
@ -55,18 +54,15 @@ def test_zero_suppression():
("-0000001", -0.00001),
("0", 0.0),
]
for string, value in test_cases:
assert value == parse_gerber_value(string, fmt, zero_suppression)
assert string == write_gerber_value(value, fmt, zero_suppression)
assert write_gerber_value(0.000000001, fmt, "leading") == "0"
assert write_gerber_value(0.000000001, fmt, "trailing") == "0"
assert settings.write_gerber_value(0.000000001) == "0"
for string, value in test_cases:
assert value == settings.parse_gerber_value(string)
assert string == settings.write_gerber_value(value)
def test_format():
""" Test gerber value parser and writer handle format correctly
"""
zero_suppression = "leading"
test_cases = [
((2, 7), "1", 0.0000001),
((2, 6), "1", 0.000001),
@ -85,10 +81,10 @@ def test_format():
((2, 6), "0", 0),
]
for fmt, string, value in test_cases:
assert value == parse_gerber_value(string, fmt, zero_suppression)
assert string == write_gerber_value(value, fmt, zero_suppression)
settings = FileSettings(number_format=fmt, zeros='leading')
assert value == settings.parse_gerber_value(string)
assert string == settings.write_gerber_value(value)
zero_suppression = "trailing"
test_cases = [
((6, 5), "1", 100000.0),
((5, 5), "1", 10000.0),
@ -105,63 +101,20 @@ def test_format():
((2, 5), "0", 0),
]
for fmt, string, value in test_cases:
assert value == parse_gerber_value(string, fmt, zero_suppression)
assert string == write_gerber_value(value, fmt, zero_suppression)
def test_decimal_truncation():
""" Test decimal_string truncates value to the correct precision
"""
value = 1.123456789
for x in range(10):
result = decimal_string(value, precision=x)
calculated = "1." + "".join(str(y) for y in range(1, x + 1))
assert result == calculated
def test_decimal_padding():
""" Test decimal_string padding
"""
value = 1.123
assert decimal_string(value, precision=3, padding=True) == "1.123"
assert decimal_string(value, precision=4, padding=True) == "1.1230"
assert decimal_string(value, precision=5, padding=True) == "1.12300"
assert decimal_string(value, precision=6, padding=True) == "1.123000"
assert decimal_string(0, precision=6, padding=True) == "0.000000"
settings = FileSettings(number_format=fmt, zeros='trailing')
assert value == settings.parse_gerber_value(string)
assert string == settings.write_gerber_value(value)
def test_parse_format_validation():
""" Test parse_gerber_value() format validation
"""
pytest.raises(ValueError, parse_gerber_value, "00001111", (7, 5))
pytest.raises(ValueError, parse_gerber_value, "00001111", (5, 8))
pytest.raises(ValueError, parse_gerber_value, "00001111", (13, 1))
for fmt in (7,5), (5,8), (13,1):
with pytest.raises(ValueError):
settings = FileSettings(number_format=fmt)
settings.parse_gerber_value('00001111')
def test_write_format_validation():
""" Test write_gerber_value() format validation
"""
pytest.raises(ValueError, write_gerber_value, 69.0, (7, 5))
pytest.raises(ValueError, write_gerber_value, 69.0, (5, 8))
pytest.raises(ValueError, write_gerber_value, 69.0, (13, 1))
for fmt in (7,5), (5,8), (13,1):
with pytest.raises(ValueError):
settings = FileSettings(number_format=fmt)
settings.write_gerber_value(69.0)
def test_detect_format_with_short_file():
""" Verify file format detection works with short files
"""
assert "unknown" == detect_file_format("gerber/tests/__init__.py")
def test_validate_coordinates():
pytest.raises(TypeError, validate_coordinates, 3)
pytest.raises(TypeError, validate_coordinates, 3.1)
pytest.raises(TypeError, validate_coordinates, "14")
pytest.raises(TypeError, validate_coordinates, (0,))
pytest.raises(TypeError, validate_coordinates, (0, 1, 2))
pytest.raises(TypeError, validate_coordinates, (0, "string"))
def test_convex_hull():
points = [(0, 0), (1, 0), (1, 1), (0.5, 0.5), (0, 1), (0, 0)]
expected = [(0, 0), (1, 0), (1, 1), (0, 1), (0, 0)]
assert set(convex_hull(points)) == set(expected)