fix a bug that unit traslation of excellon fail
This commit is contained in:
parent
22f4c8a3f5
commit
0225820279
8 changed files with 250 additions and 262 deletions
|
|
@ -124,13 +124,19 @@ class ExcellonFileEx(ExcellonFile):
|
|||
|
||||
def to_inch(self):
|
||||
if self.units == 'metric':
|
||||
super(ExcellonFileEx, self).to_inch()
|
||||
for stmt in self.statements:
|
||||
stmt.to_inch()
|
||||
for tool in self.tools:
|
||||
self.tools[tool].to_inch()
|
||||
for hit in self.hits:
|
||||
hit.to_inch()
|
||||
|
||||
def to_metric(self):
|
||||
if self.units == 'inch':
|
||||
super(ExcellonFileEx, self).to_metric()
|
||||
for stmt in self.statements:
|
||||
stmt.to_metric()
|
||||
for tool in self.tools:
|
||||
self.tools[tool].to_metric()
|
||||
for hit in self.hits:
|
||||
hit.to_metric()
|
||||
|
||||
|
|
@ -153,13 +159,27 @@ class ExcellonFileEx(ExcellonFile):
|
|||
f.write(EndOfProgramStmt().to_excellon() + '\n')
|
||||
|
||||
class DrillHitEx(DrillHit):
|
||||
def rotate(self, angle, center=(0,0)):
|
||||
def to_inch(self):
|
||||
self.position = tuple(map(inch, self.position))
|
||||
|
||||
def to_metric(self):
|
||||
self.position = tuple(map(metric, self.position))
|
||||
|
||||
def rotate(self, angle, center=(0, 0)):
|
||||
self.position = rotate(*self.position, angle, center)
|
||||
|
||||
def to_excellon(self, settings):
|
||||
return CoordinateStmtEx(*self.position).to_excellon(settings)
|
||||
|
||||
class DrillSlotEx(DrillSlot):
|
||||
def to_inch(self):
|
||||
self.start = tuple(map(inch, self.start))
|
||||
self.end = tuple(map(inch, self.end))
|
||||
|
||||
def to_metric(self):
|
||||
self.start = tuple(map(metric, self.start))
|
||||
self.end = tuple(map(metric, self.end))
|
||||
|
||||
def rotate(self, angle, center=(0,0)):
|
||||
self.start = rotate(*self.start, angle, center)
|
||||
self.end = rotate(*self.end, angle, center)
|
||||
|
|
@ -190,24 +210,20 @@ class DrillRout(object):
|
|||
for node in self.nodes[1:]:
|
||||
excellon += CoordinateStmtEx(*node.position, node.radius,
|
||||
node.mode).to_excellon(settings) + '\n'
|
||||
excellon += 'M16\nG05\n'
|
||||
excellon += 'M16\nG05'
|
||||
return excellon
|
||||
|
||||
def to_inch(self):
|
||||
if self.tool.settings.units == 'metric':
|
||||
self.tool.to_inch()
|
||||
for node in self.nodes:
|
||||
node.position = tuple(map(inch, node.position))
|
||||
node.radius = inch(
|
||||
node.radius) if node.radius is not None else None
|
||||
for node in self.nodes:
|
||||
node.position = tuple(map(inch, node.position))
|
||||
node.radius = inch(
|
||||
node.radius) if node.radius is not None else None
|
||||
|
||||
def to_metric(self):
|
||||
if self.tool.settings.units == 'inch':
|
||||
self.tool.to_metric()
|
||||
for node in self.nodes:
|
||||
node.position = tuple(map(metric, node.position))
|
||||
node.radius = metric(
|
||||
node.radius) if node.radius is not None else None
|
||||
for node in self.nodes:
|
||||
node.position = tuple(map(metric, node.position))
|
||||
node.radius = metric(
|
||||
node.radius) if node.radius is not None else None
|
||||
|
||||
def offset(self, x_offset=0, y_offset=0):
|
||||
for node in self.nodes:
|
||||
|
|
|
|||
|
|
@ -2,42 +2,38 @@ M48
|
|||
FMAT,2
|
||||
ICI,OFF
|
||||
INCH,TZ,00.0000
|
||||
M72
|
||||
T01C0.0039
|
||||
T02C0.0078
|
||||
T01C0.0236
|
||||
T02C0.0275
|
||||
T03C0.0314
|
||||
T04C0.0393
|
||||
%
|
||||
G90
|
||||
M72
|
||||
T01
|
||||
X1969Y3740
|
||||
X2047Y3740
|
||||
X2126Y3740
|
||||
X2205Y3740
|
||||
X2283Y3740
|
||||
X2362Y3740
|
||||
X2441Y3740
|
||||
X2520Y3740
|
||||
X2598Y3740
|
||||
X2677Y3740
|
||||
X2756Y3740
|
||||
X2835Y3740
|
||||
X2913Y3740
|
||||
X2992Y3740
|
||||
X3071Y3740
|
||||
X3150Y3740
|
||||
X3228Y3740
|
||||
X3307Y3740
|
||||
X3386Y3740
|
||||
X3465Y3740
|
||||
X3543Y3740
|
||||
X1815Y960
|
||||
X1815Y1344
|
||||
X1421Y2402G85X827Y2402
|
||||
T02
|
||||
X1969Y197
|
||||
X2126Y197
|
||||
X2283Y197
|
||||
X2441Y197
|
||||
X2598Y197
|
||||
X2756Y197
|
||||
X2913Y197
|
||||
X3071Y197
|
||||
X3228Y197
|
||||
X3386Y197
|
||||
X3543Y197
|
||||
X1421Y1535
|
||||
X1421Y768
|
||||
X843Y768
|
||||
X807Y1535
|
||||
T03
|
||||
G00X1421Y1152
|
||||
M15
|
||||
G01X843Y1152
|
||||
M16
|
||||
G05
|
||||
X1417Y2795
|
||||
T04
|
||||
G00X236Y669
|
||||
M15
|
||||
G03X630Y276A394
|
||||
G01X2598Y276
|
||||
G01X2598Y1614
|
||||
G03X2205Y2008A394
|
||||
G01X236Y2008
|
||||
G01X236Y669
|
||||
M16
|
||||
G05
|
||||
M30
|
||||
|
|
|
|||
|
|
@ -2,44 +2,40 @@ M48
|
|||
FMAT,2
|
||||
ICI,OFF
|
||||
METRIC,TZ,000.000
|
||||
M71
|
||||
T01C0.100
|
||||
T02C0.200
|
||||
T01C0.600
|
||||
T02C0.700
|
||||
T03C0.800
|
||||
T04C1.000
|
||||
%
|
||||
G90
|
||||
M71
|
||||
T01
|
||||
X5000Y9500
|
||||
X5200Y9500
|
||||
X5400Y9500
|
||||
X5600Y9500
|
||||
X5800Y9500
|
||||
X6000Y9500
|
||||
X6200Y9500
|
||||
X6400Y9500
|
||||
X6600Y9500
|
||||
X6800Y9500
|
||||
X7000Y9500
|
||||
X7200Y9500
|
||||
X7400Y9500
|
||||
X7600Y9500
|
||||
X7800Y9500
|
||||
X8000Y9500
|
||||
X8200Y9500
|
||||
X8400Y9500
|
||||
X8600Y9500
|
||||
X8800Y9500
|
||||
X9000Y9500
|
||||
|
||||
X4610Y2438
|
||||
X4610Y3413
|
||||
X3610Y6100G85X2100Y6100
|
||||
T02
|
||||
X5000Y500
|
||||
X5400Y500
|
||||
X5800Y500
|
||||
X6200Y500
|
||||
X6600Y500
|
||||
X7000Y500
|
||||
X7400Y500
|
||||
X7800Y500
|
||||
X8200Y500
|
||||
X8600Y500
|
||||
X9000Y500
|
||||
X3610Y3900
|
||||
X3610Y1950
|
||||
X2140Y1950
|
||||
X2050Y3900
|
||||
T03
|
||||
G00X3610Y2925
|
||||
M15
|
||||
G01X2140Y2925
|
||||
M16
|
||||
G05
|
||||
|
||||
X3600Y7100
|
||||
T04
|
||||
G00X600Y1700
|
||||
M15
|
||||
G03X1600Y700A1000
|
||||
G01X6600Y700
|
||||
G01X6600Y4100
|
||||
G03X5600Y5100A1000
|
||||
G01X600Y5100
|
||||
G01X600Y1700
|
||||
M16
|
||||
G05
|
||||
|
||||
M30
|
||||
|
|
|
|||
|
|
@ -2,42 +2,38 @@ M48
|
|||
FMAT,2
|
||||
ICI,OFF
|
||||
METRIC,TZ,000.000
|
||||
M71
|
||||
T01C0.100
|
||||
T02C0.200
|
||||
T01C0.600
|
||||
T02C0.700
|
||||
T03C0.800
|
||||
T04C1.000
|
||||
%
|
||||
G90
|
||||
M71
|
||||
T01
|
||||
X16000Y14500
|
||||
X16200Y14500
|
||||
X16400Y14500
|
||||
X16600Y14500
|
||||
X16800Y14500
|
||||
X17000Y14500
|
||||
X17200Y14500
|
||||
X17400Y14500
|
||||
X17600Y14500
|
||||
X17800Y14500
|
||||
X18000Y14500
|
||||
X18200Y14500
|
||||
X18400Y14500
|
||||
X18600Y14500
|
||||
X18800Y14500
|
||||
X19000Y14500
|
||||
X19200Y14500
|
||||
X19400Y14500
|
||||
X19600Y14500
|
||||
X19800Y14500
|
||||
X20000Y14500
|
||||
X15610Y7438
|
||||
X15610Y8413
|
||||
X14610Y11100G85X13100Y11100
|
||||
T02
|
||||
X16000Y5500
|
||||
X16400Y5500
|
||||
X16800Y5500
|
||||
X17200Y5500
|
||||
X17600Y5500
|
||||
X18000Y5500
|
||||
X18400Y5500
|
||||
X18800Y5500
|
||||
X19200Y5500
|
||||
X19600Y5500
|
||||
X20000Y5500
|
||||
X14610Y8900
|
||||
X14610Y6950
|
||||
X13140Y6950
|
||||
X13050Y8900
|
||||
T03
|
||||
G00X14610Y7925
|
||||
M15
|
||||
G01X13140Y7925
|
||||
M16
|
||||
G05
|
||||
X14600Y12100
|
||||
T04
|
||||
G00X11600Y6700
|
||||
M15
|
||||
G03X12600Y5700A1000
|
||||
G01X17600Y5700
|
||||
G01X17600Y9100
|
||||
G03X16600Y10100A1000
|
||||
G01X11600Y10100
|
||||
G01X11600Y6700
|
||||
M16
|
||||
G05
|
||||
M30
|
||||
|
|
|
|||
|
|
@ -2,42 +2,38 @@ M48
|
|||
FMAT,2
|
||||
ICI,OFF
|
||||
METRIC,TZ,000.000
|
||||
M71
|
||||
T01C0.100
|
||||
T02C0.200
|
||||
T01C0.600
|
||||
T02C0.700
|
||||
T03C0.800
|
||||
T04C1.000
|
||||
%
|
||||
G90
|
||||
M71
|
||||
T01
|
||||
X5473Y7820
|
||||
X5660Y7888
|
||||
X5848Y7957
|
||||
X6036Y8025
|
||||
X6224Y8094
|
||||
X6412Y8162
|
||||
X6600Y8230
|
||||
X6788Y8299
|
||||
X6976Y8367
|
||||
X7164Y8436
|
||||
X7352Y8504
|
||||
X7540Y8572
|
||||
X7728Y8641
|
||||
X7916Y8709
|
||||
X8104Y8778
|
||||
X8292Y8846
|
||||
X8480Y8915
|
||||
X8668Y8983
|
||||
X8855Y9051
|
||||
X9043Y9120
|
||||
X9231Y9188
|
||||
X7521Y1051
|
||||
X7188Y1967
|
||||
X5329Y4150G85X3910Y3633
|
||||
T02
|
||||
X8551Y-637
|
||||
X8927Y-500
|
||||
X9302Y-364
|
||||
X9678Y-227
|
||||
X10054Y-90
|
||||
X10430Y47
|
||||
X10806Y184
|
||||
X11182Y320
|
||||
X11558Y457
|
||||
X11934Y594
|
||||
X12309Y731
|
||||
X6082Y2082
|
||||
X6749Y250
|
||||
X5367Y-253
|
||||
X4616Y1549
|
||||
T03
|
||||
G00X6415Y1166
|
||||
M15
|
||||
G01X5034Y663
|
||||
M16
|
||||
G05
|
||||
X4978Y5086
|
||||
T04
|
||||
G00X4006Y-1014
|
||||
M15
|
||||
G03X5287Y-1612A1000
|
||||
G01X9986Y98
|
||||
G01X8823Y3293
|
||||
G03X7541Y3891A1000
|
||||
G01X2843Y2181
|
||||
G01X4006Y-1014
|
||||
M16
|
||||
G05
|
||||
M30
|
||||
|
|
|
|||
|
|
@ -2,42 +2,38 @@ M48
|
|||
FMAT,2
|
||||
ICI,OFF
|
||||
METRIC,TZ,000.000
|
||||
M71
|
||||
T01C0.100
|
||||
T02C0.200
|
||||
T01C0.600
|
||||
T02C0.700
|
||||
T03C0.800
|
||||
T04C1.000
|
||||
%
|
||||
G90
|
||||
M71
|
||||
T01
|
||||
X5000Y9500
|
||||
X5200Y9500
|
||||
X5400Y9500
|
||||
X5600Y9500
|
||||
X5800Y9500
|
||||
X6000Y9500
|
||||
X6200Y9500
|
||||
X6400Y9500
|
||||
X6600Y9500
|
||||
X6800Y9500
|
||||
X7000Y9500
|
||||
X7200Y9500
|
||||
X7400Y9500
|
||||
X7600Y9500
|
||||
X7800Y9500
|
||||
X8000Y9500
|
||||
X8200Y9500
|
||||
X8400Y9500
|
||||
X8600Y9500
|
||||
X8800Y9500
|
||||
X9000Y9500
|
||||
X4610Y2438
|
||||
X4610Y3413
|
||||
X3610Y6100G85X2100Y6100
|
||||
T02
|
||||
X5000Y500
|
||||
X5400Y500
|
||||
X5800Y500
|
||||
X6200Y500
|
||||
X6600Y500
|
||||
X7000Y500
|
||||
X7400Y500
|
||||
X7800Y500
|
||||
X8200Y500
|
||||
X8600Y500
|
||||
X9000Y500
|
||||
X3610Y3900
|
||||
X3610Y1950
|
||||
X2140Y1950
|
||||
X2050Y3900
|
||||
T03
|
||||
G00X3610Y2925
|
||||
M15
|
||||
G01X2140Y2925
|
||||
M16
|
||||
G05
|
||||
X3600Y7100
|
||||
T04
|
||||
G00X600Y1700
|
||||
M15
|
||||
G03X1600Y700A1000
|
||||
G01X6600Y700
|
||||
G01X6600Y4100
|
||||
G03X5600Y5100A1000
|
||||
G01X600Y5100
|
||||
G01X600Y1700
|
||||
M16
|
||||
G05
|
||||
M30
|
||||
|
|
|
|||
|
|
@ -2,42 +2,38 @@ M48
|
|||
FMAT,2
|
||||
ICI,OFF
|
||||
INCH,TZ,00.0000
|
||||
M72
|
||||
T01C0.0039
|
||||
T02C0.0078
|
||||
T01C0.0236
|
||||
T02C0.0275
|
||||
T03C0.0314
|
||||
T04C0.0393
|
||||
%
|
||||
G90
|
||||
M72
|
||||
T01
|
||||
X1969Y3740
|
||||
X2047Y3740
|
||||
X2126Y3740
|
||||
X2205Y3740
|
||||
X2283Y3740
|
||||
X2362Y3740
|
||||
X2441Y3740
|
||||
X2520Y3740
|
||||
X2598Y3740
|
||||
X2677Y3740
|
||||
X2756Y3740
|
||||
X2835Y3740
|
||||
X2913Y3740
|
||||
X2992Y3740
|
||||
X3071Y3740
|
||||
X3150Y3740
|
||||
X3228Y3740
|
||||
X3307Y3740
|
||||
X3386Y3740
|
||||
X3465Y3740
|
||||
X3543Y3740
|
||||
X1815Y960
|
||||
X1815Y1344
|
||||
X1421Y2402G85X827Y2402
|
||||
T02
|
||||
X1969Y197
|
||||
X2126Y197
|
||||
X2283Y197
|
||||
X2441Y197
|
||||
X2598Y197
|
||||
X2756Y197
|
||||
X2913Y197
|
||||
X3071Y197
|
||||
X3228Y197
|
||||
X3386Y197
|
||||
X3543Y197
|
||||
X1421Y1535
|
||||
X1421Y768
|
||||
X843Y768
|
||||
X807Y1535
|
||||
T03
|
||||
G00X1421Y1152
|
||||
M15
|
||||
G01X843Y1152
|
||||
M16
|
||||
G05
|
||||
X1417Y2795
|
||||
T04
|
||||
G00X236Y669
|
||||
M15
|
||||
G03X630Y276A394
|
||||
G01X2598Y276
|
||||
G01X2598Y1614
|
||||
G03X2205Y2008A394
|
||||
G01X236Y2008
|
||||
G01X236Y669
|
||||
M16
|
||||
G05
|
||||
M30
|
||||
|
|
|
|||
|
|
@ -2,42 +2,38 @@ M48
|
|||
FMAT,2
|
||||
ICI,OFF
|
||||
METRIC,TZ,000.000
|
||||
M71
|
||||
T01C0.099
|
||||
T02C0.198
|
||||
T01C0.599
|
||||
T02C0.698
|
||||
T03C0.797
|
||||
T04C0.998
|
||||
%
|
||||
G90
|
||||
M71
|
||||
T01
|
||||
X5001Y9500
|
||||
X5199Y9500
|
||||
X5400Y9500
|
||||
X5601Y9500
|
||||
X5799Y9500
|
||||
X5999Y9500
|
||||
X6200Y9500
|
||||
X6401Y9500
|
||||
X6599Y9500
|
||||
X6800Y9500
|
||||
X7000Y9500
|
||||
X7201Y9500
|
||||
X7399Y9500
|
||||
X7600Y9500
|
||||
X7800Y9500
|
||||
X8001Y9500
|
||||
X8199Y9500
|
||||
X8400Y9500
|
||||
X8600Y9500
|
||||
X8801Y9500
|
||||
X8999Y9500
|
||||
X4610Y2438
|
||||
X4610Y3414
|
||||
X3609Y6101G85X2101Y6101
|
||||
T02
|
||||
X5001Y500
|
||||
X5400Y500
|
||||
X5799Y500
|
||||
X6200Y500
|
||||
X6599Y500
|
||||
X7000Y500
|
||||
X7399Y500
|
||||
X7800Y500
|
||||
X8199Y500
|
||||
X8600Y500
|
||||
X8999Y500
|
||||
X3609Y3899
|
||||
X3609Y1951
|
||||
X2141Y1951
|
||||
X2050Y3899
|
||||
T03
|
||||
G00X3609Y2926
|
||||
M15
|
||||
G01X2141Y2926
|
||||
M16
|
||||
G05
|
||||
X3599Y7099
|
||||
T04
|
||||
G00X599Y1699
|
||||
M15
|
||||
G03X1600Y701A1001
|
||||
G01X6599Y701
|
||||
G01X6599Y4100
|
||||
G03X5601Y5100A1001
|
||||
G01X599Y5100
|
||||
G01X599Y1699
|
||||
M16
|
||||
G05
|
||||
M30
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue