fix bugs that fail judgement of path's containment
This commit is contained in:
parent
244fcaa534
commit
ca23fbd953
8 changed files with 9021 additions and 14 deletions
14
README.md
14
README.md
|
|
@ -107,14 +107,14 @@ outline.write('outline.gml')
|
|||
```
|
||||
|
||||
### Drawing Mode
|
||||
PCB tools extension provide three type of translation method that affects geometric finish. These method are specified a value for ```draw_mode``` attribute, ```DM_LINE```, ```DM_MOUSE_BITES```, or ```DM_FILL```.<br>
|
||||
PCB tools extension provide three type of translation method that affects geometric finish. These method are specified a value for ```draw_mode``` attribute, as ```DM_LINE```, ```DM_MOUSE_BITES```, or ```DM_FILL```.<br>
|
||||
```DM_LINE``` and ```DM_MOUSE_BITES``` are used to translate to both of RX-274x and Excellon, however ```DM_FILL``` is used to translate to only RX-274x.
|
||||
|
||||

|
||||
|
||||
- **draw_mode = DM_LINE**<br>
|
||||
All edge expressed as DXF line object, circle object, arc object and plyline objects are translated to line and arc applied a circular aperture in case of RX-274x. That circular aperture r radius is specified by ```width``` attribute. Default value of width is 0.<br>
|
||||
In case of Excellon, DXF objects are translated to routing path command sequence.
|
||||
All edge expressed as DXF line object, circle object, arc object and plyline objects are translated to line and arc applied a circular aperture in case of RX-274x. That circular aperture radius is specified by ```width``` attribute. Default value of width is 0.<br>
|
||||
In case of Excellon, DXF objects are translated to routing path command sequence.<br>
|
||||
This function is useful to generate outline data of pnanelized PCB boad.
|
||||
|
||||
```python
|
||||
|
|
@ -149,8 +149,8 @@ PCB tools extension provide three type of translation method that affects geomet
|
|||
```
|
||||
|
||||
- **draw_mode = DM_FILL**<br>
|
||||
You can translate DXF closed shape such as circle to RX-274x polygon fill sequence.<br>
|
||||
In order to fill closed shape, ```DM_FILL``` has to be set to ```draw_mode``` property. In this mode, All object except closed shapes listed below are ignored.
|
||||
You can translate DXF closed shapes such as circle to RX-274x polygon fill sequence.<br>
|
||||
In order to fill closed shapes, ```DM_FILL``` has to be set to ```draw_mode``` property. In this mode, All object except closed shapes listed below are ignored.
|
||||
|
||||
- circle
|
||||
- closed polyline
|
||||
|
|
@ -158,7 +158,7 @@ PCB tools extension provide three type of translation method that affects geomet
|
|||
|
||||
If a closed shape is completly included in other closed shape, The inner shape will be draw with reversed polality of container shape as above example image.<br>
|
||||
|
||||
I assume there are two typical usecase for this mode.<br>
|
||||
I assume there are two typical use cases for this mode.<br>
|
||||
One is to arrange logo design on silk layer. This is superior to other method generating raster image data since image data express as vector data.<br>
|
||||
The other one is generating gerber data represented cropped area of panelized PCB.
|
||||
By merging rectangle and PCB outline data, generate a file represented cropped area as below, and this kind of data is useful to make PCB image look good a little bit.<br>
|
||||
|
|
@ -169,7 +169,7 @@ PCB tools extension provide three type of translation method that affects geomet
|
|||
|
||||
ctx = gerberex.GerberComposition()
|
||||
|
||||
rectangle = gerberex.rectangle(width=100, height=100, units='metric')
|
||||
rectangle = gerberex.rectangle(width=100, height=100, left=0, bottom=0, units='metric')
|
||||
rectangle.draw_mode = rectangle.DM_FILL
|
||||
ctx.merge(rectangle)
|
||||
|
||||
|
|
|
|||
|
|
@ -51,12 +51,13 @@ def _intersections_of_line_and_circle(start, end, center, radius, error_range):
|
|||
dr = sqrt(dx * dx + dy * dy)
|
||||
D = x1 * y2 - x2 * y1
|
||||
|
||||
distance = abs(dy * x1 - dx * y1) / dr
|
||||
|
||||
D2 = D * D
|
||||
dr2 = dr * dr
|
||||
r2 = radius * radius
|
||||
delta = r2 * dr2 - D2
|
||||
e4 = error_range * error_range * error_range * error_range * 10
|
||||
if delta > - e4 and delta < e4:
|
||||
if distance > radius - error_range and distance < radius + error_range:
|
||||
delta = 0
|
||||
if delta < 0:
|
||||
return None
|
||||
|
|
@ -198,7 +199,7 @@ class DxfLineStatement(DxfStatement):
|
|||
denominator = (self.end[0] - self.start[0]) * (point_to[1] - point_from[1]) - \
|
||||
(self.end[1] - self.start[1]) * (point_to[0] - point_from[0])
|
||||
de = error_range * error_range
|
||||
if denominator > -de and denominator < de:
|
||||
if denominator >= -de and denominator <= de:
|
||||
return []
|
||||
from_dx = point_from[0] - self.start[0]
|
||||
from_dy = point_from[1] - self.start[1]
|
||||
|
|
@ -356,16 +357,25 @@ class DxfArcStatement(DxfStatement):
|
|||
elif p2 is not None and is_equal_point(p2, self.start, error_range):
|
||||
p2 = None
|
||||
|
||||
def is_contained(angle, region, error):
|
||||
if angle >= region[0] - error and angle <= region[1] + error:
|
||||
return True
|
||||
if angle < 0 and region[1] > 0:
|
||||
angle = angle + 2 * pi
|
||||
elif angle > 0 and region[0] < 0:
|
||||
angle = angle - 2 * pi
|
||||
return angle >= region[0] - error and angle <= region[1] + error
|
||||
|
||||
aerror = error_range * self.radius
|
||||
pts = []
|
||||
if p1 is not None and p1_t >= 0 and not is_equal_point(p1, self.start, error_range):
|
||||
for region in self.angle_regions:
|
||||
if p1_angle >= region[0] - aerror and p1_angle <= region[1] + aerror:
|
||||
if is_contained(p1_angle, region, aerror):
|
||||
pts.append(p1)
|
||||
break
|
||||
if p2 is not None and p2_t >= 0 and not is_equal_point(p2, self.start, error_range):
|
||||
for region in self.angle_regions:
|
||||
if p2_angle >= region[0] - aerror and p2_angle <= region[1] + aerror:
|
||||
if is_contained(p2_angle, region, aerror):
|
||||
pts.append(p2)
|
||||
break
|
||||
|
||||
|
|
|
|||
|
|
@ -301,7 +301,7 @@ class DxfPath(object):
|
|||
|
||||
def _judge_cross(self, from_pt, to_pt, index, error_range):
|
||||
standard = normalize_vec2d((to_pt[0] - from_pt[0], to_pt[1] - from_pt[1]))
|
||||
normal = (standard[1], standard[0])
|
||||
normal = (standard[1], -standard[0])
|
||||
def statements():
|
||||
for i in range(index, len(self.statements)):
|
||||
yield self.statements[i]
|
||||
|
|
|
|||
2
setup.py
2
setup.py
|
|
@ -10,7 +10,7 @@ def read(fname):
|
|||
|
||||
METADATA = {
|
||||
'name': 'pcb-tools-extension',
|
||||
'version': "0.9.2",
|
||||
'version': "0.9.3",
|
||||
'author': 'Hiroshi Murayama <opiopan@gmail.com>',
|
||||
'author_email': "opiopan@gmail.com",
|
||||
'description': ("Extension for pcb-tools package to panelize gerber files"),
|
||||
|
|
|
|||
7500
tests/data/ref_dxf_complex.dxf
Normal file
7500
tests/data/ref_dxf_complex.dxf
Normal file
File diff suppressed because it is too large
Load diff
729
tests/expects/dxf_complex_fill.gtl
Normal file
729
tests/expects/dxf_complex_fill.gtl
Normal file
|
|
@ -0,0 +1,729 @@
|
|||
%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*
|
||||
746
tests/expects/dxf_complex_fill_flip.gtl
Normal file
746
tests/expects/dxf_complex_fill_flip.gtl
Normal file
|
|
@ -0,0 +1,746 @@
|
|||
%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*
|
||||
|
|
@ -19,6 +19,7 @@ class TestExcellon(unittest.TestCase):
|
|||
cls.OUTPREFIX = 'dxf_'
|
||||
cls.METRIC_FILE = os.path.join(cls.INDIR, 'ref_dxf_metric.dxf')
|
||||
cls.INCH_FILE = os.path.join(cls.INDIR, 'ref_dxf_inch.dxf')
|
||||
cls.COMPLEX_FILE = os.path.join(cls.INDIR, 'ref_dxf_complex.dxf')
|
||||
try:
|
||||
os.mkdir(cls.OUTDIR)
|
||||
except FileExistsError:
|
||||
|
|
@ -127,5 +128,26 @@ class TestExcellon(unittest.TestCase):
|
|||
dxf.write(outfile)
|
||||
self._checkResult(outfile)
|
||||
|
||||
def test_complex_fill(self):
|
||||
outfile = os.path.join(self.OUTDIR, self.OUTPREFIX + 'complex_fill.gtl')
|
||||
dxf = gerberex.read(self.COMPLEX_FILE)
|
||||
dxf.draw_mode = dxf.DM_FILL
|
||||
dxf.write(outfile)
|
||||
self._checkResult(outfile)
|
||||
|
||||
def test_complex_fill_flip(self):
|
||||
outfile = os.path.join(
|
||||
self.OUTDIR, self.OUTPREFIX + 'complex_fill_flip.gtl')
|
||||
ctx = gerberex.GerberComposition()
|
||||
base = gerberex.rectangle(width=100, height=100, left=0, bottom=0, units='metric')
|
||||
base.draw_mode = base.DM_FILL
|
||||
ctx.merge(base)
|
||||
dxf = gerberex.read(self.COMPLEX_FILE)
|
||||
dxf.negate_polarity()
|
||||
dxf.draw_mode = dxf.DM_FILL
|
||||
ctx.merge(dxf)
|
||||
ctx.dump(outfile)
|
||||
self._checkResult(outfile)
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue