← Back to team overview

kicad-developers team mailing list archive

[PATCH] Fix to closing polylines in DXF imports

 

Following up on recent previous discussions and patches re. DXF import, here is a patch that fixes the problem of imported ellipses remaining an open shape.

The DXF format polylines and lwpolylines have a 'flags' field of which bit 0 indicates if the polyline/lwpolyline is to be closed or open. This flags field is correctly read during the import but in the conversion to board segments, was previously not used.

This patch remembers the start of the polyline and then after processing all segments it check bit 0 of the flags field. If the bit is set to 1, an extra closing segment is generated between the last segment endpoint and the remembered polyline start point.

Also attached a ellipses DXF in R12 format exported from LibreCAD that I used to test this patch. It clearly shows the open segment when imported. With the patch in place the DXF imports correctly shows as a closed polyline.

Regards,

Marco

--
Marco Hess

=== modified file pcbnew/import_dxf/dxf2brd_items.cpp
--- pcbnew/import_dxf/dxf2brd_items.cpp	2015-02-22 09:39:58 +0000
+++ pcbnew/import_dxf/dxf2brd_items.cpp	2015-06-18 13:58:25 +0000
@@ -128,7 +128,8 @@
     // So we have to convert a polyline to a set of segments.
     // Obviously, the z coordinate is ignored
 
-    wxPoint startpoint;
+    wxPoint polyline_startpoint;
+    wxPoint segment_startpoint;
 
     for( unsigned ii = 0; ii < aData.vertlist.size(); ii++ )
     {
@@ -136,21 +137,35 @@
 
         if( ii == 0 )
         {
-            startpoint.x = mapX( vertex->basePoint.x );
-            startpoint.y = mapY( vertex->basePoint.y );
+            segment_startpoint.x = mapX( vertex->basePoint.x );
+            segment_startpoint.y = mapY( vertex->basePoint.y );
+            polyline_startpoint  = segment_startpoint;
             continue;
         }
 
         DRAWSEGMENT*    segm = new DRAWSEGMENT( NULL );
 
         segm->SetLayer( ToLAYER_ID( m_brdLayer ) );
-        segm->SetStart( startpoint );
-        wxPoint endpoint( mapX( vertex->basePoint.x ), mapY( vertex->basePoint.y ) );
-        segm->SetEnd( endpoint );
+        segm->SetStart( segment_startpoint );
+        wxPoint segment_endpoint( mapX( vertex->basePoint.x ), mapY( vertex->basePoint.y ) );
+        segm->SetEnd( segment_endpoint );
         segm->SetWidth( mapDim( aData.thickness == 0 ? m_defaultThickness
                                 : aData.thickness ) );
         m_newItemsList.push_back( segm );
-        startpoint = endpoint;
+        segment_startpoint = segment_endpoint;
+    }
+
+    // Polyline flags bit 0 indicates closed (1) or open (0) polyline
+    if( aData.flags & 1 )
+    {
+        DRAWSEGMENT*    closing_segm = new DRAWSEGMENT( NULL );
+
+        closing_segm->SetLayer( ToLAYER_ID( m_brdLayer ) );
+        closing_segm->SetStart( segment_startpoint );
+        closing_segm->SetEnd( polyline_startpoint );
+        closing_segm->SetWidth( mapDim( aData.thickness == 0 ? m_defaultThickness
+                                : aData.thickness ) );
+        m_newItemsList.push_back( closing_segm );
     }
 }
 
@@ -159,9 +174,10 @@
     // Currently, Pcbnew does not know polylines, for boards.
     // So we have to convert a polyline to a set of segments.
     // The import is a simplified import: the width of segment is
-    // (obviously contant and is the width of the DRW_LWPolyline.
+    // (obviously constant and is the width of the DRW_LWPolyline.
     // the variable width of each vertex (when exists) is not used.
-    wxPoint startpoint;
+    wxPoint lwpolyline_startpoint;
+    wxPoint segment_startpoint;
 
     for( unsigned ii = 0; ii < aData.vertlist.size(); ii++ )
     {
@@ -169,21 +185,35 @@
 
         if( ii == 0 )
         {
-            startpoint.x = mapX( vertex->x );
-            startpoint.y = mapY( vertex->y );
+            segment_startpoint.x  = mapX( vertex->x );
+            segment_startpoint.y  = mapY( vertex->y );
+            lwpolyline_startpoint = segment_startpoint;
             continue;
         }
 
         DRAWSEGMENT*    segm = new DRAWSEGMENT( NULL );
 
         segm->SetLayer( ToLAYER_ID( m_brdLayer ) );
-        segm->SetStart( startpoint );
-        wxPoint endpoint( mapX( vertex->x ), mapY( vertex->y ) );
-        segm->SetEnd( endpoint );
+        segm->SetStart( segment_startpoint );
+        wxPoint segment_endpoint( mapX( vertex->x ), mapY( vertex->y ) );
+        segm->SetEnd( segment_endpoint );
         segm->SetWidth( mapDim( aData.thickness == 0 ? m_defaultThickness
                                 : aData.thickness ) );
         m_newItemsList.push_back( segm );
-        startpoint = endpoint;
+        segment_startpoint = segment_endpoint;
+    }
+
+    // LWPolyline flags bit 0 indicates closed (1) or open (0) polyline
+    if( aData.flags & 1 )
+    {
+        DRAWSEGMENT*    closing_segm = new DRAWSEGMENT( NULL );
+
+        closing_segm->SetLayer( ToLAYER_ID( m_brdLayer ) );
+        closing_segm->SetStart( segment_startpoint );
+        closing_segm->SetEnd( lwpolyline_startpoint );
+        closing_segm->SetWidth( mapDim( aData.thickness == 0 ? m_defaultThickness
+                                : aData.thickness ) );
+        m_newItemsList.push_back( closing_segm );
     }
 }
 

999
dxfrw 0.5.13
0
SECTION
2
HEADER
9
$ACADVER
1
AC1009
9
$DWGCODEPAGE
3
ANSI_1252
9
$INSBASE
10
0
20
0
30
0
9
$EXTMIN
10
0
20
0
30
0
9
$EXTMAX
10
286.021046008
20
141.572897408
30
0
9
$LIMMIN
10
0
20
0
9
$LIMMAX
10
420
20
297
9
$ORTHOMODE
70
0
9
$LTSCALE
40
1
9
$TEXTSTYLE
7
STANDARD
9
$CLAYER
8
0
9
$DIMASZ
40
2.5
9
$DIMLFAC
40
1
9
$DIMSCALE
40
1
9
$DIMEXO
40
0.625
9
$DIMEXE
40
1.25
9
$DIMTXT
40
2.5
9
$DIMTSZ
40
0
9
$DIMUNIT
70
2
9
$DIMSTYLE
2
STANDARD
9
$DIMGAP
40
0.625
9
$DIMTIH
70
0
9
$LUNITS
70
2
9
$LUPREC
70
4
9
$AUNITS
70
0
9
$AUPREC
70
2
9
$SNAPSTYLE
70
0
9
$PLIMMIN
10
0
20
0
9
$PLIMMAX
10
841
20
594
0
ENDSEC
0
SECTION
2
CLASSES
0
ENDSEC
0
SECTION
2
TABLES
0
TABLE
2
VPORT
70
1
0
VPORT
2
*ACTIVE
70
0
10
0
20
0
11
1
21
1
12
190.125
22
76.75
13
0
23
0
14
10
24
10
15
10
25
10
16
0
26
0
36
1
17
0
27
0
37
0
40
166
41
2.36596385542
42
50
43
0
44
0
50
0
51
0
71
0
72
100
73
1
74
3
75
0
76
1
77
0
78
0
0
ENDTAB
0
TABLE
2
LTYPE
70
4
0
LTYPE
2
BYBLOCK
70
0
3

72
65
73
0
40
0
0
LTYPE
2
BYLAYER
70
0
3

72
65
73
0
40
0
0
LTYPE
2
CONTINUOUS
70
0
3
Solid line
72
65
73
0
40
0
0
LTYPE
2
DOT
70
0
3
Dot . . . . . . . . . . . . . . . . . . . . . .
72
65
73
2
40
6.35
49
0
49
-6.35
0
LTYPE
2
DOT2
70
0
3
Dot (.5x) .....................................
72
65
73
2
40
3.175
49
0
49
-3.175
0
LTYPE
2
DOTX2
70
0
3
Dot (2x) .  .  .  .  .  .  .  .  .  .  .  .  .
72
65
73
2
40
12.7
49
0
49
-12.7
0
LTYPE
2
DASHED
70
0
3
Dot . . . . . . . . . . . . . . . . . . . . . .
72
65
73
2
40
19.05
49
12.7
49
-6.35
0
LTYPE
2
DASHED2
70
0
3
Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
72
65
73
2
40
9.525
49
6.35
49
-3.175
0
LTYPE
2
DASHEDX2
70
0
3
Dashed (2x) ____  ____  ____  ____  ____  ___
72
65
73
2
40
38.1
49
25.4
49
-12.7
0
LTYPE
2
DASHDOT
70
0
3
Dash dot __ . __ . __ . __ . __ . __ . __ . __
72
65
73
4
40
25.4
49
12.7
49
-6.35
49
0
49
-6.35
0
LTYPE
2
DASHDOT2
70
0
3
Dash dot (.5x) _._._._._._._._._._._._._._._.
72
65
73
4
40
12.7
49
6.35
49
-3.175
49
0
49
-3.175
0
LTYPE
2
DASHDOTX2
70
0
3
Dash dot (2x) ____  .  ____  .  ____  .  ___
72
65
73
4
40
50.8
49
25.4
49
-12.7
49
0
49
-12.7
0
LTYPE
2
DIVIDE
70
0
3
Divide ____ . . ____ . . ____ . . ____ . . ____
72
65
73
6
40
31.75
49
12.7
49
-6.35
49
0
49
-6.35
49
0
49
-6.35
0
LTYPE
2
DIVIDE2
70
0
3
Divide (.5x) __..__..__..__..__..__..__..__.._
72
65
73
6
40
15.875
49
6.35
49
-3.175
49
0
49
-3.175
49
0
49
-3.175
0
LTYPE
2
DIVIDEX2
70
0
3
Divide (2x) ________  .  .  ________  .  .  _
72
65
73
6
40
63.5
49
25.4
49
-12.7
49
0
49
-12.7
49
0
49
-12.7
0
LTYPE
2
BORDER
70
0
3
Border __ __ . __ __ . __ __ . __ __ . __ __ .
72
65
73
6
40
44.45
49
12.7
49
-6.35
49
12.7
49
-6.35
49
0
49
-6.35
0
LTYPE
2
BORDER2
70
0
3
Border (.5x) __.__.__.__.__.__.__.__.__.__.__.
72
65
73
6
40
22.225
49
6.35
49
-3.175
49
6.35
49
-3.175
49
0
49
-3.175
0
LTYPE
2
BORDERX2
70
0
3
Border (2x) ____  ____  .  ____  ____  .  ___
72
65
73
6
40
88.9
49
25.4
49
-12.7
49
25.4
49
-12.7
49
0
49
-12.7
0
LTYPE
2
CENTER
70
0
3
Center ____ _ ____ _ ____ _ ____ _ ____ _ ____
72
65
73
4
40
50.8
49
31.75
49
-6.35
49
6.35
49
-6.35
0
LTYPE
2
CENTER2
70
0
3
Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___
72
65
73
4
40
28.575
49
19.05
49
-3.175
49
3.175
49
-3.175
0
LTYPE
2
CENTERX2
70
0
3
Center (2x) ________  __  ________  __  _____
72
65
73
4
40
101.6
49
63.5
49
-12.7
49
12.7
49
-12.7
0
ENDTAB
0
TABLE
2
LAYER
70
1
0
LAYER
2
0
70
0
62
7
6
CONTINUOUS
0
ENDTAB
0
TABLE
2
STYLE
70
3
0
STYLE
2
STANDARD
70
0
40
0
41
1
50
0
71
0
42
1
3
TXT
4

0
ENDTAB
0
TABLE
2
VIEW
70
0
0
ENDTAB
0
TABLE
2
UCS
70
0
0
ENDTAB
0
TABLE
2
APPID
70
1
0
APPID
2
ACAD
70
0
0
APPID
2
LIBRECAD
70
0
0
ENDTAB
0
TABLE
2
DIMSTYLE
70
1
0
DIMSTYLE
2
STANDARD
70
0
3

4

5

6

7

40
1
41
2.5
42
0.625
43
0.38
44
1.25
45
0
46
0
47
0
48
0
140
2.5
141
0.09
142
0
143
25.4
144
1
145
0
146
1
147
0.625
71
0
72
0
73
0
74
1
75
0
76
0
77
0
78
0
170
0
171
2
172
0
173
0
174
0
175
0
176
0
177
0
178
0
0
ENDTAB
0
ENDSEC
0
SECTION
2
BLOCKS
0
BLOCK
8
0
2
$MODEL_SPACE
70
0
10
0
20
0
30
0
3
$MODEL_SPACE
1

0
ENDBLK
8
0
0
BLOCK
8
0
2
$PAPER_SPACE
70
0
10
0
20
0
30
0
3
$PAPER_SPACE
1

0
ENDBLK
8
0
0
ENDSEC
0
SECTION
2
ENTITIES
0
POLYLINE
5
31
8
0
6
BYLAYER
62
256
66
1
10
0
20
0
30
0
70
1
0
VERTEX
5
32
8
0
6
BYLAYER
62
256
10
114.5
20
76.5
30
0
0
VERTEX
5
33
8
0
6
BYLAYER
62
256
10
115.06685415
20
74.8221771035
30
0
0
VERTEX
5
34
8
0
6
BYLAYER
62
256
10
115.838319688
20
73.2044075157
30
0
0
VERTEX
5
35
8
0
6
BYLAYER
62
256
10
116.812538085
20
71.6505885853
30
0
0
VERTEX
5
36
8
0
6
BYLAYER
62
256
10
117.987162364
20
70.1644635983
30
0
0
VERTEX
5
37
8
0
6
BYLAYER
62
256
10
119.359362753
20
68.7496127599
30
0
0
VERTEX
5
38
8
0
6
BYLAYER
62
256
10
120.9258335
20
67.4094445696
30
0
0
VERTEX
5
39
8
0
6
BYLAYER
62
256
10
122.68280084
20
66.14718761
30
0
0
VERTEX
5
3A
8
0
6
BYLAYER
62
256
10
124.626032085
20
64.9658827688
30
0
0
VERTEX
5
3B
8
0
6
BYLAYER
62
256
10
126.750845821
20
63.8683759127
30
0
0
VERTEX
5
3C
8
0
6
BYLAYER
62
256
10
129.052123185
20
62.8573110318
30
0
0
VERTEX
5
3D
8
0
6
BYLAYER
62
256
10
131.524320199
20
61.9351238702
30
0
0
VERTEX
5
3E
8
0
6
BYLAYER
62
256
10
134.161481123
20
61.1040360573
30
0
0
VERTEX
5
3F
8
0
6
BYLAYER
62
256
10
136.957252806
20
60.3660497565
30
0
0
VERTEX
5
40
8
0
6
BYLAYER
62
256
10
139.904899989
20
59.7229428415
30
0
0
VERTEX
5
41
8
0
6
BYLAYER
62
256
10
142.997321531
20
59.1762646132
30
0
0
VERTEX
5
42
8
0
6
BYLAYER
62
256
10
146.227067519
20
58.7273320672
30
0
0
VERTEX
5
43
8
0
6
BYLAYER
62
256
10
149.586357211
20
58.3772267214
30
0
0
VERTEX
5
44
8
0
6
BYLAYER
62
256
10
153.067097784
20
58.1267920103
30
0
0
VERTEX
5
45
8
0
6
BYLAYER
62
256
10
156.660903829
20
57.9766312531
30
0
0
VERTEX
5
46
8
0
6
BYLAYER
62
256
10
160.359117554
20
57.9271062
30
0
0
VERTEX
5
47
8
0
6
BYLAYER
62
256
10
164.152829636
20
57.9783361613
30
0
0
VERTEX
5
48
8
0
6
BYLAYER
62
256
10
168.032900691
20
58.1301977196
30
0
0
VERTEX
5
49
8
0
6
BYLAYER
62
256
10
171.989983289
20
58.3823250271
30
0
0
VERTEX
5
4A
8
0
6
BYLAYER
62
256
10
176.01454447
20
58.734110687
30
0
0
VERTEX
5
4B
8
0
6
BYLAYER
62
256
10
180.096888714
20
59.1847072167
30
0
0
VERTEX
5
4C
8
0
6
BYLAYER
62
256
10
184.227181297
20
59.7330290899
30
0
0
VERTEX
5
4D
8
0
6
BYLAYER
62
256
10
188.395471982
20
60.3777553511
30
0
0
VERTEX
5
4E
8
0
6
BYLAYER
62
256
10
192.591718991
20
61.1173327983
30
0
0
VERTEX
5
4F
8
0
6
BYLAYER
62
256
10
196.805813198
20
61.9499797245
30
0
0
VERTEX
5
50
8
0
6
BYLAYER
62
256
10
201.027602481
20
62.8736902105
30
0
0
VERTEX
5
51
8
0
6
BYLAYER
62
256
10
205.246916179
20
63.8862389568
30
0
0
VERTEX
5
52
8
0
6
BYLAYER
62
256
10
209.453589597
20
64.9851866447
30
0
0
VERTEX
5
53
8
0
6
BYLAYER
62
256
10
213.637488489
20
66.167885813
30
0
0
VERTEX
5
54
8
0
6
BYLAYER
62
256
10
217.788533477
20
67.4314872359
30
0
0
VERTEX
5
55
8
0
6
BYLAYER
62
256
10
221.89672433
20
68.7729467867
30
0
0
VERTEX
5
56
8
0
6
BYLAYER
62
256
10
225.952164056
20
70.189032772
30
0
0
VERTEX
5
57
8
0
6
BYLAYER
62
256
10
229.945082745
20
71.6763337166
30
0
0
VERTEX
5
58
8
0
6
BYLAYER
62
256
10
233.865861108
20
73.2312665823
30
0
0
VERTEX
5
59
8
0
6
BYLAYER
62
256
10
237.705053644
20
74.8500853995
30
0
0
VERTEX
5
5A
8
0
6
BYLAYER
62
256
10
241.453411404
20
76.5288902919
30
0
0
VERTEX
5
5B
8
0
6
BYLAYER
62
256
10
245.101904265
20
78.2636368716
30
0
0
VERTEX
5
5C
8
0
6
BYLAYER
62
256
10
248.641742688
20
80.0501459821
30
0
0
VERTEX
5
5D
8
0
6
BYLAYER
62
256
10
252.064398893
20
81.8841137663
30
0
0
VERTEX
5
5E
8
0
6
BYLAYER
62
256
10
255.3616274
20
83.7611220354
30
0
0
VERTEX
5
5F
8
0
6
BYLAYER
62
256
10
258.525484898
20
85.6766489119
30
0
0
VERTEX
5
60
8
0
6
BYLAYER
62
256
10
261.548349376
20
87.6260797239
30
0
0
VERTEX
5
61
8
0
6
BYLAYER
62
256
10
264.42293849
20
89.6047181218
30
0
0
VERTEX
5
62
8
0
6
BYLAYER
62
256
10
267.142327102
20
91.6077973924
30
0
0
VERTEX
5
63
8
0
6
BYLAYER
62
256
10
269.699963967
20
93.6304919422
30
0
0
VERTEX
5
64
8
0
6
BYLAYER
62
256
10
272.089687514
20
95.6679289229
30
0
0
VERTEX
5
65
8
0
6
BYLAYER
62
256
10
274.305740689
20
97.7151999704
30
0
0
VERTEX
5
66
8
0
6
BYLAYER
62
256
10
276.342784827
20
99.7673730293
30
0
0
VERTEX
5
67
8
0
6
BYLAYER
62
256
10
278.195912509
20
101.819504235
30
0
0
VERTEX
5
68
8
0
6
BYLAYER
62
256
10
279.860659389
20
103.866649824
30
0
0
VERTEX
5
69
8
0
6
BYLAYER
62
256
10
281.333014945
20
105.903878043
30
0
0
VERTEX
5
6A
8
0
6
BYLAYER
62
256
10
282.609432145
20
107.926281031
30
0
0
VERTEX
5
6B
8
0
6
BYLAYER
62
256
10
283.686835986
20
109.928986641
30
0
0
VERTEX
5
6C
8
0
6
BYLAYER
62
256
10
284.56263091
20
111.907170181
30
0
0
VERTEX
5
6D
8
0
6
BYLAYER
62
256
10
285.234707049
20
113.856066033
30
0
0
VERTEX
5
6E
8
0
6
BYLAYER
62
256
10
285.701445313
20
115.770979137
30
0
0
VERTEX
5
6F
8
0
6
BYLAYER
62
256
10
285.961721289
20
117.647296299
30
0
0
VERTEX
5
70
8
0
6
BYLAYER
62
256
10
286.014907949
20
119.480497306
30
0
0
VERTEX
5
71
8
0
6
BYLAYER
62
256
10
285.860877161
20
121.266165817
30
0
0
VERTEX
5
72
8
0
6
BYLAYER
62
256
10
285.5
20
123
30
0
0
VERTEX
5
73
8
0
6
BYLAYER
62
256
10
284.93314585
20
124.677822897
30
0
0
VERTEX
5
74
8
0
6
BYLAYER
62
256
10
284.161680312
20
126.295592484
30
0
0
VERTEX
5
75
8
0
6
BYLAYER
62
256
10
283.187461915
20
127.849411415
30
0
0
VERTEX
5
76
8
0
6
BYLAYER
62
256
10
282.012837636
20
129.335536402
30
0
0
VERTEX
5
77
8
0
6
BYLAYER
62
256
10
280.640637247
20
130.75038724
30
0
0
VERTEX
5
78
8
0
6
BYLAYER
62
256
10
279.0741665
20
132.09055543
30
0
0
VERTEX
5
79
8
0
6
BYLAYER
62
256
10
277.31719916
20
133.35281239
30
0
0
VERTEX
5
7A
8
0
6
BYLAYER
62
256
10
275.373967915
20
134.534117231
30
0
0
VERTEX
5
7B
8
0
6
BYLAYER
62
256
10
273.249154179
20
135.631624087
30
0
0
VERTEX
5
7C
8
0
6
BYLAYER
62
256
10
270.947876815
20
136.642688968
30
0
0
VERTEX
5
7D
8
0
6
BYLAYER
62
256
10
268.475679801
20
137.56487613
30
0
0
VERTEX
5
7E
8
0
6
BYLAYER
62
256
10
265.838518877
20
138.395963943
30
0
0
VERTEX
5
7F
8
0
6
BYLAYER
62
256
10
263.042747194
20
139.133950243
30
0
0
VERTEX
5
80
8
0
6
BYLAYER
62
256
10
260.095100011
20
139.777057158
30
0
0
VERTEX
5
81
8
0
6
BYLAYER
62
256
10
257.002678469
20
140.323735387
30
0
0
VERTEX
5
82
8
0
6
BYLAYER
62
256
10
253.772932481
20
140.772667933
30
0
0
VERTEX
5
83
8
0
6
BYLAYER
62
256
10
250.413642789
20
141.122773279
30
0
0
VERTEX
5
84
8
0
6
BYLAYER
62
256
10
246.932902216
20
141.37320799
30
0
0
VERTEX
5
85
8
0
6
BYLAYER
62
256
10
243.339096171
20
141.523368747
30
0
0
VERTEX
5
86
8
0
6
BYLAYER
62
256
10
239.640882446
20
141.5728938
30
0
0
VERTEX
5
87
8
0
6
BYLAYER
62
256
10
235.847170364
20
141.521663839
30
0
0
VERTEX
5
88
8
0
6
BYLAYER
62
256
10
231.967099309
20
141.36980228
30
0
0
VERTEX
5
89
8
0
6
BYLAYER
62
256
10
228.010016711
20
141.117674973
30
0
0
VERTEX
5
8A
8
0
6
BYLAYER
62
256
10
223.98545553
20
140.765889313
30
0
0
VERTEX
5
8B
8
0
6
BYLAYER
62
256
10
219.903111286
20
140.315292783
30
0
0
VERTEX
5
8C
8
0
6
BYLAYER
62
256
10
215.772818703
20
139.76697091
30
0
0
VERTEX
5
8D
8
0
6
BYLAYER
62
256
10
211.604528018
20
139.122244649
30
0
0
VERTEX
5
8E
8
0
6
BYLAYER
62
256
10
207.408281009
20
138.382667202
30
0
0
VERTEX
5
8F
8
0
6
BYLAYER
62
256
10
203.194186802
20
137.550020275
30
0
0
VERTEX
5
90
8
0
6
BYLAYER
62
256
10
198.972397519
20
136.626309789
30
0
0
VERTEX
5
91
8
0
6
BYLAYER
62
256
10
194.753083821
20
135.613761043
30
0
0
VERTEX
5
92
8
0
6
BYLAYER
62
256
10
190.546410403
20
134.514813355
30
0
0
VERTEX
5
93
8
0
6
BYLAYER
62
256
10
186.362511511
20
133.332114187
30
0
0
VERTEX
5
94
8
0
6
BYLAYER
62
256
10
182.211466523
20
132.068512764
30
0
0
VERTEX
5
95
8
0
6
BYLAYER
62
256
10
178.10327567
20
130.727053213
30
0
0
VERTEX
5
96
8
0
6
BYLAYER
62
256
10
174.047835944
20
129.310967228
30
0
0
VERTEX
5
97
8
0
6
BYLAYER
62
256
10
170.054917255
20
127.823666283
30
0
0
VERTEX
5
98
8
0
6
BYLAYER
62
256
10
166.134138892
20
126.268733418
30
0
0
VERTEX
5
99
8
0
6
BYLAYER
62
256
10
162.294946356
20
124.649914601
30
0
0
VERTEX
5
9A
8
0
6
BYLAYER
62
256
10
158.546588596
20
122.971109708
30
0
0
VERTEX
5
9B
8
0
6
BYLAYER
62
256
10
154.898095735
20
121.236363128
30
0
0
VERTEX
5
9C
8
0
6
BYLAYER
62
256
10
151.358257312
20
119.449854018
30
0
0
VERTEX
5
9D
8
0
6
BYLAYER
62
256
10
147.935601107
20
117.615886234
30
0
0
VERTEX
5
9E
8
0
6
BYLAYER
62
256
10
144.6383726
20
115.738877965
30
0
0
VERTEX
5
9F
8
0
6
BYLAYER
62
256
10
141.474515102
20
113.823351088
30
0
0
VERTEX
5
A0
8
0
6
BYLAYER
62
256
10
138.451650624
20
111.873920276
30
0
0
VERTEX
5
A1
8
0
6
BYLAYER
62
256
10
135.57706151
20
109.895281878
30
0
0
VERTEX
5
A2
8
0
6
BYLAYER
62
256
10
132.857672898
20
107.892202608
30
0
0
VERTEX
5
A3
8
0
6
BYLAYER
62
256
10
130.300036033
20
105.869508058
30
0
0
VERTEX
5
A4
8
0
6
BYLAYER
62
256
10
127.910312486
20
103.832071077
30
0
0
VERTEX
5
A5
8
0
6
BYLAYER
62
256
10
125.694259311
20
101.78480003
30
0
0
VERTEX
5
A6
8
0
6
BYLAYER
62
256
10
123.657215173
20
99.7326269707
30
0
0
VERTEX
5
A7
8
0
6
BYLAYER
62
256
10
121.804087491
20
97.6804957648
30
0
0
VERTEX
5
A8
8
0
6
BYLAYER
62
256
10
120.139340611
20
95.633350176
30
0
0
VERTEX
5
A9
8
0
6
BYLAYER
62
256
10
118.666985055
20
93.5961219571
30
0
0
VERTEX
5
AA
8
0
6
BYLAYER
62
256
10
117.390567855
20
91.5737189695
30
0
0
VERTEX
5
AB
8
0
6
BYLAYER
62
256
10
116.313164014
20
89.571013359
30
0
0
VERTEX
5
AC
8
0
6
BYLAYER
62
256
10
115.43736909
20
87.5928298189
30
0
0
VERTEX
5
AD
8
0
6
BYLAYER
62
256
10
114.765292951
20
85.6439339666
30
0
0
VERTEX
5
AE
8
0
6
BYLAYER
62
256
10
114.298554687
20
83.7290208629
30
0
0
VERTEX
5
AF
8
0
6
BYLAYER
62
256
10
114.038278711
20
81.8527037013
30
0
0
VERTEX
5
B0
8
0
6
BYLAYER
62
256
10
113.985092051
20
80.019502694
30
0
0
VERTEX
5
B1
8
0
6
BYLAYER
62
256
10
114.139122839
20
78.233834183
30
0
0
SEQEND
5
B2
8
0
6
BYLAYER
62
256
0
ENDSEC
0
EOF

Follow ups