aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md14
-rw-r--r--gerberex/dxf.py20
-rw-r--r--gerberex/dxf_path.py2
-rw-r--r--setup.py2
-rw-r--r--tests/data/ref_dxf_complex.dxf7500
-rw-r--r--tests/expects/dxf_complex_fill.gtl729
-rw-r--r--tests/expects/dxf_complex_fill_flip.gtl746
-rw-r--r--tests/test_dxf.py22
8 files changed, 9021 insertions, 14 deletions
diff --git a/README.md b/README.md
index 252de53..a95dc56 100644
--- a/README.md
+++ b/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.
![Drawing Mode](https://raw.githubusercontent.com/wiki/opiopan/pcb-tools-extension/images/draw_mode.jpg)
- **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)
diff --git a/gerberex/dxf.py b/gerberex/dxf.py
index 95a3114..2341092 100644
--- a/gerberex/dxf.py
+++ b/gerberex/dxf.py
@@ -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
diff --git a/gerberex/dxf_path.py b/gerberex/dxf_path.py
index bb620ff..960b054 100644
--- a/gerberex/dxf_path.py
+++ b/gerberex/dxf_path.py
@@ -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]
diff --git a/setup.py b/setup.py
index bfe25c1..f621b80 100644
--- a/setup.py
+++ b/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"),
diff --git a/tests/data/ref_dxf_complex.dxf b/tests/data/ref_dxf_complex.dxf
new file mode 100644
index 0000000..b9a89da
--- /dev/null
+++ b/tests/data/ref_dxf_complex.dxf
@@ -0,0 +1,7500 @@
+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
+4
+70
+1
+43
+0.0
+10
+62.450000000000003
+20
+62.034999999999997
+10
+62.450000000000003
+20
+63.335000000000001
+42
+0.99999999999999989
+10
+61.25
+20
+63.335000000000001
+10
+61.25
+20
+62.034999999999997
+42
+0.99999999999999989
+0
+LWPOLYLINE
+5
+101
+100
+AcDbEntity
+8
+0
+100
+AcDbPolyline
+90
+4
+70
+1
+43
+0.0
+10
+82.450000000000017
+20
+62.034999999999997
+42
+-0.99999999999999989
+10
+81.25
+20
+62.034999999999997
+10
+81.250000000000014
+20
+63.335000000000001
+42
+-0.99999999999999989
+10
+82.449999999999989
+20
+63.335000000000001
+0
+LWPOLYLINE
+5
+102
+100
+AcDbEntity
+8
+0
+100
+AcDbPolyline
+90
+4
+70
+1
+43
+0.0
+10
+72.950000000000003
+20
+63.335000000000001
+42
+-0.99999999999999989
+10
+74.150000000000006
+20
+63.335000000000001
+10
+74.150000000000006
+20
+62.034999999999997
+42
+-0.99999999999999989
+10
+72.950000000000003
+20
+62.034999999999997
+0
+CIRCLE
+5
+103
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+65.450000000000003
+20
+62.685000000000002
+30
+0
+40
+0.59999999999999998
+0
+LWPOLYLINE
+5
+104
+100
+AcDbEntity
+8
+0
+100
+AcDbPolyline
+90
+4
+70
+1
+43
+0.0
+10
+14.150000000000002
+20
+62.034999999999997
+10
+14.150000000000002
+20
+63.335000000000001
+42
+0.99999999999999989
+10
+12.950000000000001
+20
+63.335000000000001
+10
+12.949999999999999
+20
+62.034999999999997
+42
+0.99999999999999989
+0
+LWPOLYLINE
+5
+105
+100
+AcDbEntity
+8
+0
+100
+AcDbPolyline
+90
+4
+70
+1
+43
+0.0
+10
+21.25
+20
+42.965000000000003
+10
+21.25
+20
+41.664999999999999
+42
+0.99999999999999989
+10
+22.450000000000003
+20
+41.664999999999999
+10
+22.450000000000003
+20
+42.965000000000003
+42
+0.99999999999999989
+0
+LWPOLYLINE
+5
+106
+100
+AcDbEntity
+8
+0
+100
+AcDbPolyline
+90
+4
+70
+1
+43
+0.0
+10
+34.149999999999999
+20
+41.664999999999999
+10
+34.149999999999999
+20
+42.965000000000003
+42
+0.99999999999999989
+10
+32.950000000000003
+20
+42.965000000000003
+10
+32.950000000000003
+20
+41.664999999999999
+42
+0.99999999999999989
+0
+LWPOLYLINE
+5
+107
+100
+AcDbEntity
+8
+0
+100
+AcDbPolyline
+90
+4
+70
+1
+43
+0.0
+10
+34.149999999999999
+20
+62.034999999999997
+10
+34.149999999999999
+20
+63.335000000000001
+42
+0.99999999999999989
+10
+32.950000000000003
+20
+63.335000000000001
+10
+32.950000000000003
+20
+62.034999999999997
+42
+0.99999999999999989
+0
+LWPOLYLINE
+5
+108
+100
+AcDbEntity
+8
+0
+100
+AcDbPolyline
+90
+4
+70
+1
+43
+0.0
+10
+62.450000000000003
+20
+41.664999999999999
+10
+62.450000000000003
+20
+42.965000000000003
+42
+0.99999999999999989
+10
+61.25
+20
+42.965000000000003
+10
+61.25
+20
+41.664999999999999
+42
+0.99999999999999989
+0
+LWPOLYLINE
+5
+109
+100
+AcDbEntity
+8
+0
+100
+AcDbPolyline
+90
+4
+70
+1
+43
+0.0
+10
+72.950000000000003
+20
+42.965000000000003
+10
+72.950000000000003
+20
+41.664999999999999
+42
+0.99999999999999989
+10
+74.150000000000006
+20
+41.664999999999999
+10
+74.150000000000006
+20
+42.965000000000003
+42
+0.99999999999999989
+0
+CIRCLE
+5
+110
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+89.949999999999989
+20
+62.685000000000002
+30
+0
+40
+0.59999999999999998
+0
+LWPOLYLINE
+5
+111
+100
+AcDbEntity
+8
+0
+100
+AcDbPolyline
+90
+4
+70
+1
+43
+0.0
+10
+54.149999999999991
+20
+62.034999999999997
+42
+-0.99999999999999989
+10
+52.950000000000003
+20
+62.034999999999997
+10
+52.949999999999989
+20
+63.335000000000001
+42
+-0.99999999999999989
+10
+54.149999999999999
+20
+63.335000000000001
+0
+CIRCLE
+5
+112
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+49.949999999999989
+20
+62.685000000000002
+30
+0
+40
+0.59999999999999998
+0
+ARC
+5
+113
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+53.549999999999997
+20
+62.034999999999997
+30
+0
+40
+0.59999999999999609
+100
+AcDbArc
+50
+-180
+51
+0
+0
+LWPOLYLINE
+5
+114
+100
+AcDbEntity
+8
+0
+100
+AcDbPolyline
+90
+4
+70
+1
+43
+0.0
+10
+92.950000000000003
+20
+63.335000000000001
+42
+-0.99999999999999989
+10
+94.150000000000006
+20
+63.335000000000001
+10
+94.150000000000006
+20
+62.034999999999997
+42
+-0.99999999999999989
+10
+92.950000000000003
+20
+62.034999999999997
+0
+CIRCLE
+5
+115
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+85.450000000000003
+20
+62.685000000000002
+30
+0
+40
+0.59999999999999998
+0
+LINE
+5
+116
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+34.149999999999999
+20
+42.965000000000003
+30
+0
+11
+34.149999999999999
+21
+41.664999999999999
+31
+0
+0
+LINE
+5
+117
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+74.150000000000006
+20
+42.965000000000003
+30
+0
+11
+74.150000000000006
+21
+41.664999999999999
+31
+0
+0
+LWPOLYLINE
+5
+118
+100
+AcDbEntity
+8
+0
+100
+AcDbPolyline
+90
+4
+70
+1
+43
+0.0
+10
+41.249999999999993
+20
+42.965000000000003
+10
+41.249999999999993
+20
+41.664999999999999
+42
+0.99999999999999989
+10
+42.449999999999989
+20
+41.664999999999999
+10
+42.449999999999989
+20
+42.965000000000003
+42
+0.99999999999999989
+0
+LINE
+5
+119
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+41.249999999999993
+20
+41.664999999999999
+30
+0
+11
+41.249999999999993
+21
+42.965000000000003
+31
+0
+0
+LINE
+5
+120
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+39.999999999999993
+20
+5
+30
+0
+11
+55.399999999999991
+21
+5
+31
+0
+0
+LWPOLYLINE
+5
+121
+100
+AcDbEntity
+8
+0
+100
+AcDbPolyline
+90
+4
+70
+1
+43
+0.0
+10
+22.450000000000003
+20
+62.034999999999997
+10
+22.450000000000003
+20
+63.335000000000001
+42
+0.99999999999999989
+10
+21.25
+20
+63.335000000000001
+10
+21.25
+20
+62.034999999999997
+42
+0.99999999999999989
+0
+ARC
+5
+122
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+61.849999999999994
+20
+62.034999999999997
+30
+0
+40
+0.59999999999999609
+100
+AcDbArc
+50
+-180
+51
+0
+0
+ARC
+5
+123
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+73.550000000000011
+20
+63.335000000000001
+30
+0
+40
+0.59999999999999609
+100
+AcDbArc
+50
+0
+51
+180
+0
+CIRCLE
+5
+124
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+69.950000000000003
+20
+62.685000000000002
+30
+0
+40
+0.59999999999999998
+0
+ARC
+5
+125
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+73.550000000000011
+20
+62.034999999999997
+30
+0
+40
+0.60000000000000497
+100
+AcDbArc
+50
+-180
+51
+0
+0
+LINE
+5
+126
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+32.950000000000003
+20
+41.664999999999999
+30
+0
+11
+32.950000000000003
+21
+42.965000000000003
+31
+0
+0
+LINE
+5
+127
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+22.450000000000003
+20
+42.965000000000003
+30
+0
+11
+22.450000000000003
+21
+41.664999999999999
+31
+0
+0
+LINE
+5
+128
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+21.25
+20
+41.664999999999999
+30
+0
+11
+21.25
+21
+42.965000000000003
+31
+0
+0
+CIRCLE
+5
+129
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+69.950000000000003
+20
+42.314999999999998
+30
+0
+40
+0.59999999999999998
+0
+CIRCLE
+5
+130
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+65.450000000000003
+20
+42.314999999999998
+30
+0
+40
+0.59999999999999998
+0
+ARC
+5
+131
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+61.849999999999994
+20
+42.965000000000003
+30
+0
+40
+0.60000000000000497
+100
+AcDbArc
+50
+0
+51
+180
+0
+ARC
+5
+132
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+73.550000000000011
+20
+42.965000000000003
+30
+0
+40
+0.59999999999999609
+100
+AcDbArc
+50
+0
+51
+180
+0
+ARC
+5
+133
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+73.550000000000011
+20
+41.664999999999999
+30
+0
+40
+0.60000000000000497
+100
+AcDbArc
+50
+-180
+51
+0
+0
+ARC
+5
+134
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+61.849999999999994
+20
+41.664999999999999
+30
+0
+40
+0.59999999999999609
+100
+AcDbArc
+50
+-180
+51
+0
+0
+LWPOLYLINE
+5
+135
+100
+AcDbEntity
+8
+0
+100
+AcDbPolyline
+90
+4
+70
+1
+43
+0.0
+10
+54.149999999999991
+20
+41.664999999999999
+42
+-0.99999999999999989
+10
+52.950000000000003
+20
+41.664999999999999
+10
+52.950000000000003
+20
+42.965000000000003
+42
+-0.99999999999999989
+10
+54.149999999999991
+20
+42.965000000000003
+0
+CIRCLE
+5
+136
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+49.949999999999989
+20
+42.314999999999998
+30
+0
+40
+0.59999999999999998
+0
+ARC
+5
+137
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+53.549999999999997
+20
+42.965000000000003
+30
+0
+40
+0.59999999999999609
+100
+AcDbArc
+50
+0
+51
+180
+0
+ARC
+5
+138
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+53.549999999999997
+20
+41.664999999999999
+30
+0
+40
+0.59999999999999609
+100
+AcDbArc
+50
+-180
+51
+0
+0
+ARC
+5
+139
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+53.549999999999997
+20
+63.335000000000001
+30
+0
+40
+0.60000000000000497
+100
+AcDbArc
+50
+0
+51
+180
+0
+ARC
+5
+140
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+93.550000000000011
+20
+63.335000000000001
+30
+0
+40
+0.60000000000000497
+100
+AcDbArc
+50
+0
+51
+180
+0
+LWPOLYLINE
+5
+141
+100
+AcDbEntity
+8
+0
+100
+AcDbPolyline
+90
+4
+70
+1
+43
+0.0
+10
+12.949999999999999
+20
+42.965000000000003
+42
+-0.99999999999999989
+10
+14.15
+20
+42.965000000000003
+10
+14.15
+20
+41.664999999999999
+42
+-0.99999999999999989
+10
+12.949999999999999
+20
+41.664999999999999
+0
+LWPOLYLINE
+5
+142
+100
+AcDbEntity
+8
+0
+100
+AcDbPolyline
+90
+4
+70
+1
+43
+0.0
+10
+2.4499999999999988
+20
+41.664999999999999
+42
+-0.99999999999999989
+10
+1.2499999999999978
+20
+41.664999999999999
+10
+1.2499999999999956
+20
+42.965000000000003
+42
+-0.99999999999999989
+10
+2.4500000000000011
+20
+42.965000000000003
+0
+LWPOLYLINE
+5
+143
+100
+AcDbEntity
+8
+0
+100
+AcDbPolyline
+90
+4
+70
+1
+43
+0.0
+10
+94.150000000000006
+20
+41.664999999999999
+42
+-0.99999999999999989
+10
+92.950000000000003
+20
+41.664999999999999
+10
+92.950000000000017
+20
+42.965000000000003
+42
+-0.99999999999999989
+10
+94.149999999999991
+20
+42.965000000000003
+0
+LWPOLYLINE
+5
+144
+100
+AcDbEntity
+8
+0
+100
+AcDbPolyline
+90
+4
+70
+1
+43
+0.0
+10
+42.449999999999989
+20
+62.034999999999997
+10
+42.449999999999989
+20
+63.335000000000001
+42
+0.99999999999999989
+10
+41.25
+20
+63.335000000000001
+10
+41.25
+20
+62.034999999999997
+42
+0.99999999999999989
+0
+LWPOLYLINE
+5
+145
+100
+AcDbEntity
+8
+0
+100
+AcDbPolyline
+90
+4
+70
+1
+43
+0.0
+10
+82.450000000000017
+20
+41.664999999999999
+42
+-0.99999999999999989
+10
+81.25
+20
+41.664999999999999
+10
+81.25
+20
+42.965000000000003
+42
+-0.99999999999999989
+10
+82.450000000000017
+20
+42.965000000000003
+0
+CIRCLE
+5
+146
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+25.449999999999999
+20
+62.685000000000002
+30
+0
+40
+0.59999999999999998
+0
+ARC
+5
+147
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+81.850000000000009
+20
+41.664999999999999
+30
+0
+40
+0.60000000000000497
+100
+AcDbArc
+50
+-180
+51
+0
+0
+CIRCLE
+5
+148
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+89.949999999999989
+20
+42.314999999999998
+30
+0
+40
+0.59999999999999998
+0
+ARC
+5
+149
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+93.550000000000011
+20
+41.664999999999999
+30
+0
+40
+0.60000000000000497
+100
+AcDbArc
+50
+-180
+51
+0
+0
+LINE
+5
+150
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+-6.6613381477509392e-15
+20
+5
+30
+0
+11
+15.399999999999995
+21
+5
+31
+0
+0
+CIRCLE
+5
+151
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+45.450000000000003
+20
+42.314999999999998
+30
+0
+40
+0.59999999999999998
+0
+CIRCLE
+5
+152
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+45.450000000000003
+20
+62.685000000000002
+30
+0
+40
+0.59999999999999998
+0
+LINE
+5
+153
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+42.449999999999989
+20
+42.965000000000003
+30
+0
+11
+42.449999999999989
+21
+41.664999999999999
+31
+0
+0
+LWPOLYLINE
+5
+154
+100
+AcDbEntity
+8
+0
+100
+AcDbPolyline
+90
+4
+70
+1
+43
+0.0
+10
+1.25
+20
+63.335000000000001
+10
+1.25
+20
+62.034999999999997
+42
+0.99999999999999989
+10
+2.4500000000000002
+20
+62.034999999999997
+10
+2.4500000000000002
+20
+63.335000000000001
+42
+0.99999999999999989
+0
+LINE
+5
+155
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+2.4500000000000002
+20
+63.335000000000001
+30
+0
+11
+2.4500000000000002
+21
+62.034999999999997
+31
+0
+0
+LINE
+5
+156
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+1.25
+20
+62.034999999999997
+30
+0
+11
+1.25
+21
+63.335000000000001
+31
+0
+0
+LINE
+5
+157
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+12.949999999999999
+20
+62.034999999999997
+30
+0
+11
+12.950000000000001
+21
+63.335000000000001
+31
+0
+0
+CIRCLE
+5
+158
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+5.4500000000000002
+20
+62.685000000000002
+30
+0
+40
+0.59999999999999998
+0
+ARC
+5
+159
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+13.550000000000001
+20
+42.965000000000003
+30
+0
+40
+0.60000000000000053
+100
+AcDbArc
+50
+0
+51
+180
+0
+LINE
+5
+160
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+14.15
+20
+42.965000000000003
+30
+0
+11
+14.15
+21
+41.664999999999999
+31
+0
+0
+LINE
+5
+161
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+34.149999999999999
+20
+63.335000000000001
+30
+0
+11
+34.149999999999999
+21
+62.034999999999997
+31
+0
+0
+ARC
+5
+162
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+1.8500000000000003
+20
+63.335000000000001
+30
+0
+40
+0.59999999999999998
+100
+AcDbArc
+50
+0
+51
+180
+0
+LINE
+5
+163
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+35.399999999999999
+20
+100
+30
+0
+11
+20
+21
+100
+31
+0
+0
+LINE
+5
+164
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+15.4
+20
+100
+30
+0
+11
+0
+21
+100
+31
+0
+0
+LINE
+5
+165
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+0
+20
+100
+30
+0
+11
+0
+21
+60
+31
+0
+0
+LINE
+5
+166
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+0
+20
+45
+30
+0
+11
+-6.6613381477509392e-15
+21
+5
+31
+0
+0
+LINE
+5
+167
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+19.999999999999993
+20
+5
+30
+0
+11
+35.399999999999999
+21
+5
+31
+0
+0
+LINE
+5
+168
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+75.400000000000006
+20
+100
+30
+0
+11
+60
+21
+100
+31
+0
+0
+LINE
+5
+169
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+95.399999999999991
+20
+100
+30
+0
+11
+80
+21
+100
+31
+0
+0
+LINE
+5
+170
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+59.999999999999993
+20
+5
+30
+0
+11
+75.399999999999991
+21
+5
+31
+0
+0
+CIRCLE
+5
+171
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+9.9499999999999993
+20
+62.685000000000002
+30
+0
+40
+0.59999999999999998
+0
+LINE
+5
+172
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+79.999999999999986
+20
+5
+30
+0
+11
+95.399999999999991
+21
+5
+31
+0
+0
+ARC
+5
+173
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+13.550000000000002
+20
+62.034999999999997
+30
+0
+40
+0.60000000000000275
+100
+AcDbArc
+50
+-180
+51
+0
+0
+LINE
+5
+174
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+95.399999999999991
+20
+5
+30
+0
+11
+95.399999999999991
+21
+45
+31
+0
+0
+LINE
+5
+175
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+92.950000000000003
+20
+62.034999999999997
+30
+0
+11
+92.950000000000003
+21
+63.335000000000001
+31
+0
+0
+CIRCLE
+5
+176
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+5.4499999999999993
+20
+42.314999999999998
+30
+0
+40
+0.59999999999999998
+0
+ARC
+5
+177
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+1.8499999999999983
+20
+42.965000000000003
+30
+0
+40
+0.60000000000000275
+100
+AcDbArc
+50
+0
+51
+180
+0
+ARC
+5
+178
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+13.550000000000001
+20
+41.664999999999999
+30
+0
+40
+0.60000000000000053
+100
+AcDbArc
+50
+-180
+51
+0
+0
+ARC
+5
+179
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+1.8499999999999983
+20
+41.664999999999999
+30
+0
+40
+0.60000000000000053
+100
+AcDbArc
+50
+-180
+51
+0
+0
+LINE
+5
+180
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+22.450000000000003
+20
+63.335000000000001
+30
+0
+11
+22.450000000000003
+21
+62.034999999999997
+31
+0
+0
+LINE
+5
+181
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+14.150000000000002
+20
+63.335000000000001
+30
+0
+11
+14.150000000000002
+21
+62.034999999999997
+31
+0
+0
+LINE
+5
+182
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+72.950000000000003
+20
+41.664999999999999
+30
+0
+11
+72.950000000000003
+21
+42.965000000000003
+31
+0
+0
+CIRCLE
+5
+183
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+29.950000000000003
+20
+62.685000000000002
+30
+0
+40
+0.59999999999999998
+0
+LINE
+5
+184
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+61.25
+20
+41.664999999999999
+30
+0
+11
+61.25
+21
+42.965000000000003
+31
+0
+0
+LINE
+5
+185
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+62.450000000000003
+20
+42.965000000000003
+30
+0
+11
+62.450000000000003
+21
+41.664999999999999
+31
+0
+0
+ARC
+5
+186
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+41.849999999999994
+20
+42.965000000000003
+30
+0
+40
+0.59999999999999609
+100
+AcDbArc
+50
+0
+51
+180
+0
+ARC
+5
+187
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+41.849999999999994
+20
+63.335000000000001
+30
+0
+40
+0.59999999999999609
+100
+AcDbArc
+50
+0
+51
+180
+0
+LINE
+5
+188
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+54.149999999999991
+20
+42.965000000000003
+30
+0
+11
+54.149999999999991
+21
+41.664999999999999
+31
+0
+0
+LINE
+5
+189
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+52.950000000000003
+20
+41.664999999999999
+30
+0
+11
+52.950000000000003
+21
+42.965000000000003
+31
+0
+0
+ARC
+5
+190
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+21.850000000000001
+20
+63.335000000000001
+30
+0
+40
+0.60000000000000053
+100
+AcDbArc
+50
+0
+51
+180
+0
+LINE
+5
+191
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+21.25
+20
+62.034999999999997
+30
+0
+11
+21.25
+21
+63.335000000000001
+31
+0
+0
+LINE
+5
+192
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+32.950000000000003
+20
+62.034999999999997
+30
+0
+11
+32.950000000000003
+21
+63.335000000000001
+31
+0
+0
+ARC
+5
+193
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+81.850000000000009
+20
+42.965000000000003
+30
+0
+40
+0.60000000000000497
+100
+AcDbArc
+50
+0
+51
+180
+0
+ARC
+5
+194
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+93.550000000000011
+20
+42.965000000000003
+30
+0
+40
+0.59999999999998721
+100
+AcDbArc
+50
+0
+51
+180
+0
+ARC
+5
+195
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+33.550000000000004
+20
+62.034999999999997
+30
+0
+40
+0.60000000000000497
+100
+AcDbArc
+50
+-180
+51
+0
+0
+ARC
+5
+196
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+33.550000000000004
+20
+63.335000000000001
+30
+0
+40
+0.59999999999999609
+100
+AcDbArc
+50
+0
+51
+180
+0
+ARC
+5
+197
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+21.850000000000001
+20
+62.034999999999997
+30
+0
+40
+0.60000000000000053
+100
+AcDbArc
+50
+-180
+51
+0
+0
+CIRCLE
+5
+198
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+85.450000000000003
+20
+42.314999999999998
+30
+0
+40
+0.59999999999999998
+0
+LINE
+5
+199
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+92.950000000000003
+20
+41.664999999999999
+30
+0
+11
+92.950000000000003
+21
+42.965000000000003
+31
+0
+0
+LINE
+5
+200
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+82.450000000000017
+20
+42.965000000000003
+30
+0
+11
+82.449999999999989
+21
+41.664999999999999
+31
+0
+0
+ARC
+5
+201
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+41.849999999999994
+20
+62.034999999999997
+30
+0
+40
+0.59999999999999609
+100
+AcDbArc
+50
+-180
+51
+0
+0
+ARC
+5
+202
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+41.849999999999994
+20
+41.664999999999999
+30
+0
+40
+0.60000000000000497
+100
+AcDbArc
+50
+-180
+51
+0
+0
+LINE
+5
+203
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+55.399999999999991
+20
+100
+30
+0
+11
+39.999999999999993
+21
+100
+31
+0
+0
+LINE
+5
+204
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+42.449999999999989
+20
+63.335000000000001
+30
+0
+11
+42.449999999999989
+21
+62.034999999999997
+31
+0
+0
+LINE
+5
+205
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+41.25
+20
+62.034999999999997
+30
+0
+11
+41.25
+21
+63.335000000000001
+31
+0
+0
+ARC
+5
+206
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+81.850000000000009
+20
+62.034999999999997
+30
+0
+40
+0.60000000000000497
+100
+AcDbArc
+50
+-180
+51
+0
+0
+LINE
+5
+207
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+81.25
+20
+62.034999999999997
+30
+0
+11
+81.25
+21
+63.335000000000001
+31
+0
+0
+LINE
+5
+208
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+12.949999999999999
+20
+41.664999999999999
+30
+0
+11
+12.949999999999999
+21
+42.965000000000003
+31
+0
+0
+LINE
+5
+209
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+1.2499999999999978
+20
+41.664999999999999
+30
+0
+11
+1.2499999999999978
+21
+42.965000000000003
+31
+0
+0
+LINE
+5
+210
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+2.4500000000000011
+20
+42.965000000000003
+30
+0
+11
+2.4499999999999988
+21
+41.664999999999999
+31
+0
+0
+ARC
+5
+211
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+1.8500000000000003
+20
+62.034999999999997
+30
+0
+40
+0.60000000000000031
+100
+AcDbArc
+50
+-180
+51
+0
+0
+ARC
+5
+212
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+13.550000000000002
+20
+63.335000000000001
+30
+0
+40
+0.60000000000000053
+100
+AcDbArc
+50
+0
+51
+180
+0
+LINE
+5
+213
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+72.950000000000003
+20
+62.034999999999997
+30
+0
+11
+72.950000000000003
+21
+63.335000000000001
+31
+0
+0
+LINE
+5
+214
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+62.450000000000003
+20
+63.335000000000001
+30
+0
+11
+62.450000000000003
+21
+62.034999999999997
+31
+0
+0
+LINE
+5
+215
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+74.150000000000006
+20
+63.335000000000001
+30
+0
+11
+74.150000000000006
+21
+62.034999999999997
+31
+0
+0
+LINE
+5
+216
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+61.25
+20
+62.034999999999997
+30
+0
+11
+61.25
+21
+63.335000000000001
+31
+0
+0
+LINE
+5
+217
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+52.950000000000003
+20
+62.034999999999997
+30
+0
+11
+52.950000000000003
+21
+63.335000000000001
+31
+0
+0
+LINE
+5
+218
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+54.149999999999999
+20
+63.335000000000001
+30
+0
+11
+54.149999999999999
+21
+62.034999999999997
+31
+0
+0
+ARC
+5
+219
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+93.550000000000011
+20
+62.034999999999997
+30
+0
+40
+0.60000000000000497
+100
+AcDbArc
+50
+-180
+51
+0
+0
+LINE
+5
+220
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+82.449999999999989
+20
+63.335000000000001
+30
+0
+11
+82.449999999999989
+21
+62.034999999999997
+31
+0
+0
+LINE
+5
+221
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+94.149999999999991
+20
+42.965000000000003
+30
+0
+11
+94.149999999999991
+21
+41.664999999999999
+31
+0
+0
+LINE
+5
+222
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+81.25
+20
+41.664999999999999
+30
+0
+11
+81.25
+21
+42.965000000000003
+31
+0
+0
+CIRCLE
+5
+223
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+25.449999999999999
+20
+42.314999999999998
+30
+0
+40
+0.59999999999999998
+0
+CIRCLE
+5
+224
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+29.950000000000003
+20
+42.314999999999998
+30
+0
+40
+0.59999999999999998
+0
+LINE
+5
+225
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+94.150000000000006
+20
+63.335000000000001
+30
+0
+11
+94.150000000000006
+21
+62.034999999999997
+31
+0
+0
+ARC
+5
+226
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+81.850000000000009
+20
+63.335000000000001
+30
+0
+40
+0.59999999999998721
+100
+AcDbArc
+50
+0
+51
+180
+0
+ARC
+5
+227
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+61.849999999999994
+20
+63.335000000000001
+30
+0
+40
+0.60000000000000497
+100
+AcDbArc
+50
+0
+51
+180
+0
+LINE
+5
+228
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+95.399999999999991
+20
+60
+30
+0
+11
+95.399999999999991
+21
+100
+31
+0
+0
+CIRCLE
+5
+229
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+9.9499999999999993
+20
+42.314999999999998
+30
+0
+40
+0.59999999999999998
+0
+ARC
+5
+230
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+21.849999999999994
+20
+41.664999999999999
+30
+0
+40
+0.59999999999999609
+100
+AcDbArc
+50
+-180
+51
+0
+0
+ARC
+5
+231
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+33.549999999999997
+20
+41.664999999999999
+30
+0
+40
+0.60000000000000053
+100
+AcDbArc
+50
+-180
+51
+0
+0
+ARC
+5
+232
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+33.549999999999997
+20
+42.965000000000003
+30
+0
+40
+0.60000000000000053
+100
+AcDbArc
+50
+0
+51
+180
+0
+ARC
+5
+233
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+21.849999999999994
+20
+42.965000000000003
+30
+0
+40
+0.60000000000000497
+100
+AcDbArc
+50
+0
+51
+180
+0
+LINE
+5
+234
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+95.399999999999991
+20
+56
+30
+0
+11
+95.399999999999991
+21
+49
+31
+0
+0
+LINE
+5
+235
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+0
+20
+56
+30
+0
+11
+0
+21
+49
+31
+0
+0
+LINE
+5
+236
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+3.7000000000000002
+20
+58
+30
+0
+11
+3.7000000000000002
+21
+58
+31
+0
+0
+LINE
+5
+237
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+11.699999999999999
+20
+58
+30
+0
+11
+11.699999999999999
+21
+58
+31
+0
+0
+LINE
+5
+238
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+23.700000000000003
+20
+58
+30
+0
+11
+23.700000000000003
+21
+58
+31
+0
+0
+LINE
+5
+239
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+31.699999999999999
+20
+58
+30
+0
+11
+31.699999999999999
+21
+58
+31
+0
+0
+LINE
+5
+240
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+43.700000000000003
+20
+58
+30
+0
+11
+43.700000000000003
+21
+58
+31
+0
+0
+LINE
+5
+241
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+51.700000000000003
+20
+58
+30
+0
+11
+51.700000000000003
+21
+58
+31
+0
+0
+LINE
+5
+242
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+63.700000000000003
+20
+58
+30
+0
+11
+63.700000000000003
+21
+58
+31
+0
+0
+LINE
+5
+243
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+71.700000000000003
+20
+58
+30
+0
+11
+71.700000000000003
+21
+58
+31
+0
+0
+LINE
+5
+244
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+83.699999999999989
+20
+58
+30
+0
+11
+83.699999999999989
+21
+58
+31
+0
+0
+LINE
+5
+245
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+91.699999999999989
+20
+58
+30
+0
+11
+91.699999999999989
+21
+58
+31
+0
+0
+LINE
+5
+246
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+3.7000000000000002
+20
+47
+30
+0
+11
+3.7000000000000002
+21
+47
+31
+0
+0
+LINE
+5
+247
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+11.699999999999999
+20
+46.999999999999993
+30
+0
+11
+11.699999999999999
+21
+46.999999999999993
+31
+0
+0
+LINE
+5
+248
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+23.700000000000003
+20
+46.999999999999993
+30
+0
+11
+23.700000000000003
+21
+46.999999999999993
+31
+0
+0
+LINE
+5
+249
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+31.699999999999999
+20
+46.999999999999993
+30
+0
+11
+31.699999999999999
+21
+46.999999999999993
+31
+0
+0
+LINE
+5
+250
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+43.700000000000003
+20
+46.999999999999993
+30
+0
+11
+43.700000000000003
+21
+46.999999999999993
+31
+0
+0
+LINE
+5
+251
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+51.700000000000003
+20
+46.999999999999993
+30
+0
+11
+51.700000000000003
+21
+46.999999999999993
+31
+0
+0
+LINE
+5
+252
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+63.700000000000003
+20
+46.999999999999993
+30
+0
+11
+63.700000000000003
+21
+46.999999999999993
+31
+0
+0
+LINE
+5
+253
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+71.700000000000003
+20
+46.999999999999993
+30
+0
+11
+71.700000000000003
+21
+46.999999999999993
+31
+0
+0
+LINE
+5
+254
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+83.699999999999989
+20
+46.999999999999993
+30
+0
+11
+83.699999999999989
+21
+46.999999999999993
+31
+0
+0
+LINE
+5
+255
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+91.699999999999989
+20
+47
+30
+0
+11
+91.699999999999989
+21
+47
+31
+0
+0
+LINE
+5
+256
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+0
+20
+60
+30
+0
+11
+1.7000000000000002
+21
+60
+31
+0
+0
+LINE
+5
+257
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+13.699999999999999
+20
+60
+30
+0
+11
+15.4
+21
+60
+31
+0
+0
+LINE
+5
+258
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+20
+20
+60
+30
+0
+11
+21.699999999999999
+21
+60
+31
+0
+0
+LINE
+5
+259
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+33.700000000000003
+20
+60
+30
+0
+11
+35.399999999999999
+21
+60
+31
+0
+0
+LINE
+5
+260
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+39.999999999999993
+20
+60
+30
+0
+11
+41.700000000000003
+21
+60.000000000000007
+31
+0
+0
+LINE
+5
+261
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+53.700000000000003
+20
+60
+30
+0
+11
+55.399999999999991
+21
+60
+31
+0
+0
+LINE
+5
+262
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+60
+20
+60
+30
+0
+11
+61.700000000000003
+21
+60.000000000000007
+31
+0
+0
+LINE
+5
+263
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+73.700000000000003
+20
+60
+30
+0
+11
+75.400000000000006
+21
+60
+31
+0
+0
+LINE
+5
+264
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+80
+20
+60
+30
+0
+11
+81.700000000000003
+21
+59.999999999999993
+31
+0
+0
+LINE
+5
+265
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+93.699999999999974
+20
+59.999999999999993
+30
+0
+11
+95.399999999999991
+21
+60
+31
+0
+0
+LINE
+5
+266
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+95.399999999999991
+20
+56
+30
+0
+11
+93.699999999999974
+21
+56.000000000000007
+31
+0
+0
+LINE
+5
+267
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+81.700000000000003
+20
+56.000000000000007
+30
+0
+11
+73.700000000000003
+21
+56
+31
+0
+0
+LINE
+5
+268
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+61.700000000000003
+20
+55.999999999999986
+30
+0
+11
+53.700000000000003
+21
+56
+31
+0
+0
+LINE
+5
+269
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+41.700000000000003
+20
+55.999999999999986
+30
+0
+11
+33.700000000000003
+21
+56
+31
+0
+0
+LINE
+5
+270
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+21.699999999999999
+20
+56
+30
+0
+11
+13.699999999999999
+21
+56
+31
+0
+0
+LINE
+5
+271
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+1.6999999999999997
+20
+56
+30
+0
+11
+0
+21
+56
+31
+0
+0
+LINE
+5
+272
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+0
+20
+49
+30
+0
+11
+1.7000000000000055
+21
+49
+31
+0
+0
+LINE
+5
+273
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+13.699999999999999
+20
+48.999999999999986
+30
+0
+11
+21.699999999999999
+21
+48.999999999999993
+31
+0
+0
+LINE
+5
+274
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+33.700000000000003
+20
+48.999999999999993
+30
+0
+11
+41.700000000000003
+21
+48.999999999999993
+31
+0
+0
+LINE
+5
+275
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+53.700000000000003
+20
+48.999999999999986
+30
+0
+11
+61.700000000000003
+21
+48.999999999999993
+31
+0
+0
+LINE
+5
+276
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+73.700000000000003
+20
+48.999999999999986
+30
+0
+11
+81.700000000000017
+21
+48.999999999999993
+31
+0
+0
+LINE
+5
+277
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+93.699999999999974
+20
+49.000000000000014
+30
+0
+11
+95.399999999999991
+21
+49
+31
+0
+0
+LINE
+5
+278
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+95.399999999999991
+20
+45
+30
+0
+11
+93.699999999999974
+21
+45.000000000000007
+31
+0
+0
+LINE
+5
+279
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+81.700000000000003
+20
+45.000000000000007
+30
+0
+11
+80
+21
+45
+31
+0
+0
+LINE
+5
+280
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+75.400000000000006
+20
+45
+30
+0
+11
+73.700000000000017
+21
+45
+31
+0
+0
+LINE
+5
+281
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+61.699999999999989
+20
+45
+30
+0
+11
+60
+21
+45
+31
+0
+0
+LINE
+5
+282
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+55.399999999999991
+20
+45
+30
+0
+11
+53.70000000000001
+21
+45
+31
+0
+0
+LINE
+5
+283
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+41.699999999999989
+20
+45
+30
+0
+11
+39.999999999999993
+21
+45
+31
+0
+0
+LINE
+5
+284
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+35.399999999999999
+20
+45
+30
+0
+11
+33.700000000000003
+21
+45
+31
+0
+0
+LINE
+5
+285
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+21.699999999999996
+20
+45
+30
+0
+11
+20
+21
+45
+31
+0
+0
+LINE
+5
+286
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+15.4
+20
+45
+30
+0
+11
+13.700000000000003
+21
+45
+31
+0
+0
+LINE
+5
+287
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+1.6999999999999948
+20
+45
+30
+0
+11
+0
+21
+45
+31
+0
+0
+LINE
+5
+288
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+17.399999999999999
+20
+72
+30
+0
+11
+18
+21
+72
+31
+0
+0
+LINE
+5
+289
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+18
+20
+87.999999999999986
+30
+0
+11
+17.399999999999999
+21
+87.999999999999986
+31
+0
+0
+LINE
+5
+290
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+38
+20
+87.999999999999986
+30
+0
+11
+37.400000000000006
+21
+87.999999999999986
+31
+0
+0
+LINE
+5
+291
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+37.400000000000006
+20
+72
+30
+0
+11
+38
+21
+72
+31
+0
+0
+LINE
+5
+292
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+58
+20
+87.999999999999986
+30
+0
+11
+57.399999999999991
+21
+87.999999999999986
+31
+0
+0
+LINE
+5
+293
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+57.399999999999991
+20
+72
+30
+0
+11
+58
+21
+72
+31
+0
+0
+LINE
+5
+294
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+78
+20
+87.999999999999986
+30
+0
+11
+77.399999999999991
+21
+87.999999999999986
+31
+0
+0
+LINE
+5
+295
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+77.399999999999991
+20
+72
+30
+0
+11
+78
+21
+72
+31
+0
+0
+LINE
+5
+296
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+18
+20
+32.999999999999986
+30
+0
+11
+17.399999999999999
+21
+32.999999999999986
+31
+0
+0
+LINE
+5
+297
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+38
+20
+32.999999999999986
+30
+0
+11
+37.400000000000006
+21
+32.999999999999986
+31
+0
+0
+LINE
+5
+298
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+58
+20
+32.999999999999986
+30
+0
+11
+57.399999999999991
+21
+32.999999999999986
+31
+0
+0
+LINE
+5
+299
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+78
+20
+32.999999999999986
+30
+0
+11
+77.399999999999991
+21
+32.999999999999986
+31
+0
+0
+LINE
+5
+300
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+77.399999999999991
+20
+17
+30
+0
+11
+78
+21
+17
+31
+0
+0
+LINE
+5
+301
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+57.399999999999991
+20
+17
+30
+0
+11
+58
+21
+17
+31
+0
+0
+LINE
+5
+302
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+37.400000000000006
+20
+17
+30
+0
+11
+38
+21
+17
+31
+0
+0
+LINE
+5
+303
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+17.399999999999999
+20
+17
+30
+0
+11
+18
+21
+17
+31
+0
+0
+LINE
+5
+304
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+15.399999999999995
+20
+5
+30
+0
+11
+15.4
+21
+15.000000000000002
+31
+0
+0
+LINE
+5
+305
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+15.4
+20
+34.999999999999993
+30
+0
+11
+15.4
+21
+45
+31
+0
+0
+LINE
+5
+306
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+20
+20
+45
+30
+0
+11
+20
+21
+34.999999999999993
+31
+0
+0
+LINE
+5
+307
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+19.999999999999996
+20
+15
+30
+0
+11
+19.999999999999993
+21
+5
+31
+0
+0
+LINE
+5
+308
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+35.399999999999999
+20
+5
+30
+0
+11
+35.399999999999999
+21
+15.000000000000002
+31
+0
+0
+LINE
+5
+309
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+35.399999999999999
+20
+34.999999999999993
+30
+0
+11
+35.399999999999999
+21
+45
+31
+0
+0
+LINE
+5
+310
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+39.999999999999993
+20
+45
+30
+0
+11
+40
+21
+34.999999999999993
+31
+0
+0
+LINE
+5
+311
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+40
+20
+15
+30
+0
+11
+39.999999999999993
+21
+5
+31
+0
+0
+LINE
+5
+312
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+55.399999999999991
+20
+5
+30
+0
+11
+55.399999999999991
+21
+15.000000000000002
+31
+0
+0
+LINE
+5
+313
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+55.399999999999991
+20
+34.999999999999993
+30
+0
+11
+55.399999999999991
+21
+45
+31
+0
+0
+LINE
+5
+314
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+60
+20
+45
+30
+0
+11
+60
+21
+34.999999999999993
+31
+0
+0
+LINE
+5
+315
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+60
+20
+15
+30
+0
+11
+59.999999999999993
+21
+5
+31
+0
+0
+LINE
+5
+316
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+75.399999999999991
+20
+5
+30
+0
+11
+75.400000000000006
+21
+15.000000000000004
+31
+0
+0
+LINE
+5
+317
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+75.399999999999991
+20
+34.999999999999993
+30
+0
+11
+75.400000000000006
+21
+45
+31
+0
+0
+LINE
+5
+318
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+80
+20
+45
+30
+0
+11
+80
+21
+34.999999999999993
+31
+0
+0
+LINE
+5
+319
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+80
+20
+15
+30
+0
+11
+79.999999999999986
+21
+5
+31
+0
+0
+LINE
+5
+320
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+80
+20
+60
+30
+0
+11
+80
+21
+70
+31
+0
+0
+LINE
+5
+321
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+79.999999999999986
+20
+89.999999999999986
+30
+0
+11
+80
+21
+100
+31
+0
+0
+LINE
+5
+322
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+75.400000000000006
+20
+100
+30
+0
+11
+75.399999999999991
+21
+89.999999999999972
+31
+0
+0
+LINE
+5
+323
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+75.399999999999991
+20
+70
+30
+0
+11
+75.400000000000006
+21
+60
+31
+0
+0
+LINE
+5
+324
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+60
+20
+60
+30
+0
+11
+60.000000000000007
+21
+70
+31
+0
+0
+LINE
+5
+325
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+59.999999999999993
+20
+89.999999999999986
+30
+0
+11
+60
+21
+100
+31
+0
+0
+LINE
+5
+326
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+55.399999999999991
+20
+100
+30
+0
+11
+55.399999999999999
+21
+89.999999999999986
+31
+0
+0
+LINE
+5
+327
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+55.399999999999984
+20
+70
+30
+0
+11
+55.399999999999991
+21
+60
+31
+0
+0
+LINE
+5
+328
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+39.999999999999993
+20
+60
+30
+0
+11
+40
+21
+70
+31
+0
+0
+LINE
+5
+329
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+39.999999999999993
+20
+89.999999999999986
+30
+0
+11
+39.999999999999993
+21
+100
+31
+0
+0
+LINE
+5
+330
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+35.399999999999999
+20
+100
+30
+0
+11
+35.400000000000006
+21
+89.999999999999986
+31
+0
+0
+LINE
+5
+331
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+35.399999999999999
+20
+70
+30
+0
+11
+35.399999999999999
+21
+60
+31
+0
+0
+LINE
+5
+332
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+20
+20
+60
+30
+0
+11
+20.000000000000007
+21
+70
+31
+0
+0
+LINE
+5
+333
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+20.000000000000004
+20
+89.999999999999986
+30
+0
+11
+20
+21
+100
+31
+0
+0
+LINE
+5
+334
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+15.4
+20
+100
+30
+0
+11
+15.399999999999995
+21
+89.999999999999986
+31
+0
+0
+LINE
+5
+335
+100
+AcDbEntity
+8
+0
+100
+AcDbLine
+10
+15.399999999999993
+20
+70
+30
+0
+11
+15.4
+21
+60
+31
+0
+0
+ARC
+5
+336
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+17.399999999999988
+20
+89.999999999999986
+30
+0
+40
+1.9999999999999929
+100
+AcDbArc
+50
+180
+51
+270.00000000000034
+0
+ARC
+5
+337
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+18.000000000000011
+20
+89.999999999999986
+30
+0
+40
+1.9999999999999929
+100
+AcDbArc
+50
+-90.000000000000313
+51
+0
+0
+ARC
+5
+338
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+17.400000000000006
+20
+69.999999999999986
+30
+0
+40
+2.0000000000000107
+100
+AcDbArc
+50
+90.000000000000199
+51
+180
+0
+ARC
+5
+339
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+17.999999999999996
+20
+69.999999999999986
+30
+0
+40
+2.0000000000000129
+100
+AcDbArc
+50
+0
+51
+89.999999999999901
+0
+ARC
+5
+340
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+37.399999999999999
+20
+89.999999999999986
+30
+0
+40
+1.9999999999999929
+100
+AcDbArc
+50
+180
+51
+270.00000000000023
+0
+ARC
+5
+341
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+38
+20
+89.999999999999986
+30
+0
+40
+1.9999999999999929
+100
+AcDbArc
+50
+-90
+51
+0
+0
+ARC
+5
+342
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+37.400000000000013
+20
+69.999999999999986
+30
+0
+40
+2.0000000000000107
+100
+AcDbArc
+50
+90.000000000000199
+51
+180
+0
+ARC
+5
+343
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+37.999999999999986
+20
+69.999999999999986
+30
+0
+40
+2.0000000000000107
+100
+AcDbArc
+50
+0
+51
+89.999999999999588
+0
+ARC
+5
+344
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+57.399999999999977
+20
+89.999999999999972
+30
+0
+40
+1.9999999999999751
+100
+AcDbArc
+50
+180
+51
+270.0000000000004
+0
+ARC
+5
+345
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+58.000000000000014
+20
+89.999999999999972
+30
+0
+40
+1.9999999999999751
+100
+AcDbArc
+50
+-90.000000000000398
+51
+0
+0
+ARC
+5
+346
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+57.400000000000006
+20
+69.999999999999986
+30
+0
+40
+2.0000000000000195
+100
+AcDbArc
+50
+90.000000000000398
+51
+180
+0
+ARC
+5
+347
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+57.999999999999986
+20
+69.999999999999986
+30
+0
+40
+2.0000000000000195
+100
+AcDbArc
+50
+0
+51
+89.999999999999588
+0
+ARC
+5
+348
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+77.399999999999977
+20
+89.999999999999986
+30
+0
+40
+1.9999999999999929
+100
+AcDbArc
+50
+180
+51
+270.0000000000004
+0
+ARC
+5
+349
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+78.000000000000014
+20
+89.999999999999972
+30
+0
+40
+1.9999999999999751
+100
+AcDbArc
+50
+-90.000000000000398
+51
+0
+0
+ARC
+5
+350
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+77.399999999999977
+20
+70.000000000000014
+30
+0
+40
+1.9999999999999929
+100
+AcDbArc
+50
+89.999999999999588
+51
+180
+0
+ARC
+5
+351
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+77.999999999999986
+20
+69.999999999999986
+30
+0
+40
+2.0000000000000107
+100
+AcDbArc
+50
+0
+51
+89.999999999999588
+0
+ARC
+5
+352
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+1.69999999999999
+20
+57.999999999999986
+30
+0
+40
+2.0000000000000102
+100
+AcDbArc
+50
+0
+51
+89.999999999999716
+0
+ARC
+5
+353
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+13.700000000000008
+20
+57.999999999999986
+30
+0
+40
+2.0000000000000107
+100
+AcDbArc
+50
+90.000000000000256
+51
+180
+0
+ARC
+5
+354
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+1.69999999999999
+20
+58.000000000000007
+30
+0
+40
+2.0000000000000107
+100
+AcDbArc
+50
+270.00000000000034
+51
+360
+0
+ARC
+5
+355
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+13.700000000000008
+20
+58.000000000000007
+30
+0
+40
+2.0000000000000084
+100
+AcDbArc
+50
+180
+51
+269.99999999999972
+0
+ARC
+5
+356
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+21.699999999999985
+20
+57.999999999999986
+30
+0
+40
+2.0000000000000151
+100
+AcDbArc
+50
+0
+51
+89.999999999999588
+0
+ARC
+5
+357
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+21.699999999999985
+20
+58.000000000000007
+30
+0
+40
+2.0000000000000107
+100
+AcDbArc
+50
+270.0000000000004
+51
+360
+0
+ARC
+5
+358
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+33.700000000000017
+20
+57.999999999999986
+30
+0
+40
+2.0000000000000107
+100
+AcDbArc
+50
+90.000000000000398
+51
+180
+0
+ARC
+5
+359
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+33.700000000000017
+20
+58.000000000000007
+30
+0
+40
+2.0000000000000151
+100
+AcDbArc
+50
+180
+51
+269.9999999999996
+0
+ARC
+5
+360
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+41.699999999999982
+20
+57.999999999999986
+30
+0
+40
+2.0000000000000195
+100
+AcDbArc
+50
+0
+51
+89.999999999999389
+0
+ARC
+5
+361
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+41.699999999999982
+20
+58.000000000000007
+30
+0
+40
+2.0000000000000195
+100
+AcDbArc
+50
+270.00000000000063
+51
+360
+0
+ARC
+5
+362
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+53.700000000000017
+20
+57.999999999999979
+30
+0
+40
+2.0000000000000195
+100
+AcDbArc
+50
+90.000000000000398
+51
+180
+0
+ARC
+5
+363
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+53.700000000000017
+20
+58.000000000000014
+30
+0
+40
+2.0000000000000195
+100
+AcDbArc
+50
+180
+51
+269.9999999999996
+0
+ARC
+5
+364
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+61.699999999999982
+20
+57.999999999999986
+30
+0
+40
+2.0000000000000195
+100
+AcDbArc
+50
+0
+51
+89.999999999999389
+0
+ARC
+5
+365
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+61.699999999999982
+20
+58.000000000000007
+30
+0
+40
+2.0000000000000195
+100
+AcDbArc
+50
+270.00000000000063
+51
+360
+0
+ARC
+5
+366
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+73.700000000000017
+20
+57.999999999999979
+30
+0
+40
+2.0000000000000195
+100
+AcDbArc
+50
+90.000000000000398
+51
+180
+0
+ARC
+5
+367
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+73.700000000000017
+20
+58.000000000000014
+30
+0
+40
+2.0000000000000195
+100
+AcDbArc
+50
+180
+51
+269.9999999999996
+0
+ARC
+5
+368
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+81.700000000000017
+20
+58.000000000000014
+30
+0
+40
+1.9999999999999751
+100
+AcDbArc
+50
+0
+51
+90.000000000000398
+0
+ARC
+5
+369
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+81.700000000000017
+20
+57.999999999999979
+30
+0
+40
+1.9999999999999751
+100
+AcDbArc
+50
+-90.000000000000398
+51
+0
+0
+ARC
+5
+370
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+1.6999999999999953
+20
+47
+30
+0
+40
+2.0000000000000044
+100
+AcDbArc
+50
+0
+51
+89.999999999999716
+0
+ARC
+5
+371
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+1.7000000000000037
+20
+46.999999999999993
+30
+0
+40
+1.9999999999999929
+100
+AcDbArc
+50
+-90.000000000000256
+51
+0
+0
+ARC
+5
+372
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+13.700000000000003
+20
+46.999999999999986
+30
+0
+40
+2.0000000000000018
+100
+AcDbArc
+50
+90.000000000000099
+51
+180
+0
+ARC
+5
+373
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+13.699999999999996
+20
+46.999999999999993
+30
+0
+40
+1.9999999999999973
+100
+AcDbArc
+50
+180
+51
+270.00000000000023
+0
+ARC
+5
+374
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+21.699999999999989
+20
+46.999999999999986
+30
+0
+40
+2.0000000000000107
+100
+AcDbArc
+50
+0
+51
+89.999999999999702
+0
+ARC
+5
+375
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+21.700000000000003
+20
+46.999999999999993
+30
+0
+40
+1.9999999999999929
+100
+AcDbArc
+50
+-90.000000000000199
+51
+0
+0
+ARC
+5
+376
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+33.70000000000001
+20
+46.999999999999986
+30
+0
+40
+2.0000000000000107
+100
+AcDbArc
+50
+90.000000000000199
+51
+180
+0
+ARC
+5
+377
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+33.699999999999996
+20
+46.999999999999993
+30
+0
+40
+1.9999999999999973
+100
+AcDbArc
+50
+180
+51
+270.00000000000023
+0
+ARC
+5
+378
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+41.699999999999989
+20
+46.999999999999986
+30
+0
+40
+2.0000000000000107
+100
+AcDbArc
+50
+0
+51
+89.999999999999588
+0
+ARC
+5
+379
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+41.70000000000001
+20
+46.999999999999993
+30
+0
+40
+1.9999999999999929
+100
+AcDbArc
+50
+-90.000000000000611
+51
+0
+0
+ARC
+5
+380
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+53.70000000000001
+20
+46.999999999999972
+30
+0
+40
+2.0000000000000107
+100
+AcDbArc
+50
+90.000000000000199
+51
+180
+0
+ARC
+5
+381
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+53.700000000000003
+20
+47
+30
+0
+40
+2.0000000000000018
+100
+AcDbArc
+50
+180
+51
+270.00000000000023
+0
+ARC
+5
+382
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+61.699999999999989
+20
+46.999999999999986
+30
+0
+40
+2.0000000000000107
+100
+AcDbArc
+50
+0
+51
+89.999999999999588
+0
+ARC
+5
+383
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+61.70000000000001
+20
+46.999999999999993
+30
+0
+40
+1.9999999999999929
+100
+AcDbArc
+50
+-90.000000000000611
+51
+0
+0
+ARC
+5
+384
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+73.700000000000017
+20
+46.999999999999972
+30
+0
+40
+2.0000000000000107
+100
+AcDbArc
+50
+90.000000000000398
+51
+180
+0
+ARC
+5
+385
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+81.700000000000003
+20
+47
+30
+0
+40
+1.9999999999999929
+100
+AcDbArc
+50
+0
+51
+89.999999999999588
+0
+ARC
+5
+386
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+73.700000000000003
+20
+47
+30
+0
+40
+2.0000000000000018
+100
+AcDbArc
+50
+180
+51
+270.0000000000004
+0
+ARC
+5
+387
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+81.700000000000017
+20
+46.999999999999986
+30
+0
+40
+1.9999999999999751
+100
+AcDbArc
+50
+-90.000000000000398
+51
+0
+0
+ARC
+5
+388
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+93.699999999999989
+20
+47
+30
+0
+40
+2.0000000000000107
+100
+AcDbArc
+50
+90.000000000000398
+51
+180
+0
+ARC
+5
+389
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+93.69999999999996
+20
+46.999999999999986
+30
+0
+40
+1.9999999999999751
+100
+AcDbArc
+50
+180
+51
+270.0000000000004
+0
+ARC
+5
+390
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+93.69999999999996
+20
+57.999999999999979
+30
+0
+40
+1.9999999999999751
+100
+AcDbArc
+50
+180
+51
+270.0000000000004
+0
+ARC
+5
+391
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+93.69999999999996
+20
+58.000000000000014
+30
+0
+40
+1.9999999999999751
+100
+AcDbArc
+50
+89.999999999999588
+51
+180
+0
+ARC
+5
+392
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+17.400000000000002
+20
+34.999999999999993
+30
+0
+40
+2.0000000000000018
+100
+AcDbArc
+50
+180
+51
+269.99999999999989
+0
+ARC
+5
+393
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+18
+20
+34.999999999999993
+30
+0
+40
+2.0000000000000018
+100
+AcDbArc
+50
+-90
+51
+0
+0
+ARC
+5
+394
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+17.399999999999999
+20
+15.000000000000002
+30
+0
+40
+1.9999999999999996
+100
+AcDbArc
+50
+90
+51
+180
+0
+ARC
+5
+395
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+18
+20
+15.000000000000004
+30
+0
+40
+1.9999999999999973
+100
+AcDbArc
+50
+0
+51
+90
+0
+ARC
+5
+396
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+37.400000000000006
+20
+34.999999999999993
+30
+0
+40
+2.0000000000000062
+100
+AcDbArc
+50
+180
+51
+270
+0
+ARC
+5
+397
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+37.999999999999993
+20
+34.999999999999993
+30
+0
+40
+2.0000000000000062
+100
+AcDbArc
+50
+-89.999999999999801
+51
+0
+0
+ARC
+5
+398
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+37.400000000000006
+20
+15
+30
+0
+40
+2.0000000000000018
+100
+AcDbArc
+50
+90
+51
+180
+0
+ARC
+5
+399
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+38
+20
+15
+30
+0
+40
+2.0000000000000018
+100
+AcDbArc
+50
+0
+51
+90
+0
+ARC
+5
+400
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+57.400000000000006
+20
+35.000000000000007
+30
+0
+40
+2.0000000000000107
+100
+AcDbArc
+50
+180
+51
+269.9999999999996
+0
+ARC
+5
+401
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+57.999999999999986
+20
+35.000000000000007
+30
+0
+40
+2.0000000000000151
+100
+AcDbArc
+50
+270.0000000000004
+51
+360
+0
+ARC
+5
+402
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+57.400000000000006
+20
+14.999999999999993
+30
+0
+40
+2.0000000000000084
+100
+AcDbArc
+50
+90.000000000000398
+51
+180
+0
+ARC
+5
+403
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+57.999999999999986
+20
+14.999999999999991
+30
+0
+40
+2.0000000000000107
+100
+AcDbArc
+50
+0
+51
+89.999999999999588
+0
+ARC
+5
+404
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+77.399999999999991
+20
+34.999999999999986
+30
+0
+40
+2.0000000000000018
+100
+AcDbArc
+50
+180
+51
+270
+0
+ARC
+5
+405
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+77.999999999999986
+20
+35.000000000000007
+30
+0
+40
+2.0000000000000151
+100
+AcDbArc
+50
+270.0000000000004
+51
+360
+0
+ARC
+5
+406
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+77.399999999999991
+20
+15.000000000000011
+30
+0
+40
+1.9999999999999907
+100
+AcDbArc
+50
+90
+51
+180
+0
+ARC
+5
+407
+100
+AcDbEntity
+8
+0
+100
+AcDbCircle
+10
+77.999999999999986
+20
+14.999999999999991
+30
+0
+40
+2.0000000000000107
+100
+AcDbArc
+50
+0
+51
+89.999999999999588
+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
diff --git a/tests/expects/dxf_complex_fill.gtl b/tests/expects/dxf_complex_fill.gtl
new file mode 100644
index 0000000..e667789
--- /dev/null
+++ b/tests/expects/dxf_complex_fill.gtl
@@ -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*
diff --git a/tests/expects/dxf_complex_fill_flip.gtl b/tests/expects/dxf_complex_fill_flip.gtl
new file mode 100644
index 0000000..1f91be3
--- /dev/null
+++ b/tests/expects/dxf_complex_fill_flip.gtl
@@ -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*
diff --git a/tests/test_dxf.py b/tests/test_dxf.py
index 3d4d28e..782c8c7 100644
--- a/tests/test_dxf.py
+++ b/tests/test_dxf.py
@@ -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()