diff --git a/model/hex-spiral.3dm b/model/hex-spiral.3dm
new file mode 100644
index 0000000000000000000000000000000000000000..34bce1e0951cbc1f69e4c185c8f63c464348ed45
Binary files /dev/null and b/model/hex-spiral.3dm differ
diff --git a/model/hex-spiral.dxf b/model/hex-spiral.dxf
new file mode 100644
index 0000000000000000000000000000000000000000..9ad78a47496f7fea82f8e06eb88550e4224d88dd
--- /dev/null
+++ b/model/hex-spiral.dxf
@@ -0,0 +1,3770 @@
+  0
+SECTION
+  2
+HEADER
+  9
+$ACADVER
+  1
+AC1009
+  9
+$DWGCODEPAGE
+  3
+mac-roman
+  9
+$INSBASE
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+  9
+$EXTMIN
+ 10
+-76.90598923241497
+ 20
+-69.28203230275508
+ 30
+0.0
+  9
+$EXTMAX
+ 10
+76.90598923241497
+ 20
+69.2820323027551
+ 30
+0.0
+  9
+$LIMMIN
+ 10
+0.0
+ 20
+0.0
+  9
+$LIMMAX
+ 10
+12.0
+ 20
+9.0
+  9
+$ORTHOMODE
+ 70
+     0
+  9
+$REGENMODE
+ 70
+     1
+  9
+$FILLMODE
+ 70
+     1
+  9
+$QTEXTMODE
+ 70
+     0
+  9
+$MIRRTEXT
+ 70
+     1
+  9
+$DRAGMODE
+ 70
+     2
+  9
+$LTSCALE
+ 40
+1.0
+  9
+$OSMODE
+ 70
+    37
+  9
+$ATTMODE
+ 70
+     1
+  9
+$TEXTSIZE
+ 40
+0.2
+  9
+$TRACEWID
+ 40
+0.05
+  9
+$TEXTSTYLE
+  7
+STANDARD
+  9
+$CLAYER
+  8
+MAGNETS_A
+  9
+$CELTYPE
+  6
+BYLAYER
+  9
+$CECOLOR
+ 62
+   256
+  9
+$DIMSCALE
+ 40
+1.0
+  9
+$DIMASZ
+ 40
+0.18
+  9
+$DIMEXO
+ 40
+0.0625
+  9
+$DIMDLI
+ 40
+0.38
+  9
+$DIMRND
+ 40
+0.0
+  9
+$DIMDLE
+ 40
+0.0
+  9
+$DIMEXE
+ 40
+0.18
+  9
+$DIMTP
+ 40
+0.0
+  9
+$DIMTM
+ 40
+0.0
+  9
+$DIMTXT
+ 40
+0.18
+  9
+$DIMCEN
+ 40
+0.09
+  9
+$DIMTSZ
+ 40
+0.0
+  9
+$DIMTOL
+ 70
+     0
+  9
+$DIMLIM
+ 70
+     0
+  9
+$DIMTIH
+ 70
+     1
+  9
+$DIMTOH
+ 70
+     1
+  9
+$DIMSE1
+ 70
+     0
+  9
+$DIMSE2
+ 70
+     0
+  9
+$DIMTAD
+ 70
+     0
+  9
+$DIMZIN
+ 70
+     0
+  9
+$DIMBLK
+  1
+
+  9
+$DIMASO
+ 70
+     1
+  9
+$DIMSHO
+ 70
+     1
+  9
+$DIMPOST
+  1
+
+  9
+$DIMAPOST
+  1
+
+  9
+$DIMALT
+ 70
+     0
+  9
+$DIMALTD
+ 70
+     2
+  9
+$DIMALTF
+ 40
+25.4
+  9
+$DIMLFAC
+ 40
+1.0
+  9
+$DIMTOFL
+ 70
+     0
+  9
+$DIMTVP
+ 40
+0.0
+  9
+$DIMTIX
+ 70
+     0
+  9
+$DIMSOXD
+ 70
+     0
+  9
+$DIMSAH
+ 70
+     0
+  9
+$DIMBLK1
+  1
+
+  9
+$DIMBLK2
+  1
+
+  9
+$DIMSTYLE
+  2
+STANDARD
+  9
+$DIMCLRD
+ 70
+     0
+  9
+$DIMCLRE
+ 70
+     0
+  9
+$DIMCLRT
+ 70
+     0
+  9
+$DIMTFAC
+ 40
+1.0
+  9
+$DIMGAP
+ 40
+0.09
+  9
+$LUNITS
+ 70
+     2
+  9
+$LUPREC
+ 70
+     2
+  9
+$SKETCHINC
+ 40
+0.1
+  9
+$FILLETRAD
+ 40
+0.5
+  9
+$AUNITS
+ 70
+     0
+  9
+$AUPREC
+ 70
+     0
+  9
+$MENU
+  1
+.
+  9
+$ELEVATION
+ 40
+0.0
+  9
+$PELEVATION
+ 40
+0.0
+  9
+$THICKNESS
+ 40
+0.0
+  9
+$LIMCHECK
+ 70
+     0
+  9
+$CHAMFERA
+ 40
+0.0
+  9
+$CHAMFERB
+ 40
+0.0
+  9
+$SKPOLY
+ 70
+     0
+  9
+$TDCREATE
+ 40
+2458461.619432859
+  9
+$TDUPDATE
+ 40
+2458461.619444433
+  9
+$TDINDWG
+ 40
+0.0000000116
+  9
+$TDUSRTIMER
+ 40
+0.0000000116
+  9
+$USRTIMER
+ 70
+     1
+  9
+$ANGBASE
+ 50
+0.0
+  9
+$ANGDIR
+ 70
+     0
+  9
+$PDMODE
+ 70
+     0
+  9
+$PDSIZE
+ 40
+0.0
+  9
+$PLINEWID
+ 40
+0.0
+  9
+$COORDS
+ 70
+     1
+  9
+$SPLFRAME
+ 70
+     0
+  9
+$SPLINETYPE
+ 70
+     6
+  9
+$SPLINESEGS
+ 70
+     8
+  9
+$ATTDIA
+ 70
+     0
+  9
+$ATTREQ
+ 70
+     1
+  9
+$HANDLING
+ 70
+     1
+  9
+$HANDSEED
+  5
+138
+  9
+$SURFTAB1
+ 70
+     6
+  9
+$SURFTAB2
+ 70
+     6
+  9
+$SURFTYPE
+ 70
+     6
+  9
+$SURFU
+ 70
+     6
+  9
+$SURFV
+ 70
+     6
+  9
+$UCSNAME
+  2
+
+  9
+$UCSORG
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+  9
+$UCSXDIR
+ 10
+1.0
+ 20
+0.0
+ 30
+0.0
+  9
+$UCSYDIR
+ 10
+0.0
+ 20
+1.0
+ 30
+0.0
+  9
+$PUCSNAME
+  2
+
+  9
+$PUCSORG
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+  9
+$PUCSXDIR
+ 10
+1.0
+ 20
+0.0
+ 30
+0.0
+  9
+$PUCSYDIR
+ 10
+0.0
+ 20
+1.0
+ 30
+0.0
+  9
+$USERI1
+ 70
+     0
+  9
+$USERI2
+ 70
+     0
+  9
+$USERI3
+ 70
+     0
+  9
+$USERI4
+ 70
+     0
+  9
+$USERI5
+ 70
+     0
+  9
+$USERR1
+ 40
+0.0
+  9
+$USERR2
+ 40
+0.0
+  9
+$USERR3
+ 40
+0.0
+  9
+$USERR4
+ 40
+0.0
+  9
+$USERR5
+ 40
+0.0
+  9
+$WORLDVIEW
+ 70
+     1
+  9
+$SHADEDGE
+ 70
+     3
+  9
+$SHADEDIF
+ 70
+    70
+  9
+$TILEMODE
+ 70
+     1
+  9
+$MAXACTVP
+ 70
+    64
+  9
+$PLIMCHECK
+ 70
+     0
+  9
+$PEXTMIN
+ 10
+1.000000000000000E+20
+ 20
+1.000000000000000E+20
+ 30
+1.000000000000000E+20
+  9
+$PEXTMAX
+ 10
+-1.000000000000000E+20
+ 20
+-1.000000000000000E+20
+ 30
+-1.000000000000000E+20
+  9
+$PLIMMIN
+ 10
+0.0
+ 20
+0.0
+  9
+$PLIMMAX
+ 10
+12.0
+ 20
+9.0
+  9
+$UNITMODE
+ 70
+     0
+  9
+$VISRETAIN
+ 70
+     1
+  9
+$PLINEGEN
+ 70
+     0
+  9
+$PSLTSCALE
+ 70
+     1
+  0
+ENDSEC
+  0
+SECTION
+  2
+TABLES
+  0
+TABLE
+  2
+VPORT
+ 70
+     1
+  0
+VPORT
+  2
+*ACTIVE
+ 70
+     0
+ 10
+0.0
+ 20
+0.0
+ 11
+1.0
+ 21
+1.0
+ 12
+0.0
+ 22
+0.0
+ 13
+0.0
+ 23
+0.0
+ 14
+0.5
+ 24
+0.5
+ 15
+0.5
+ 25
+0.5
+ 16
+0.0
+ 26
+0.0
+ 36
+1.0
+ 17
+0.0
+ 27
+0.0
+ 37
+0.0
+ 40
+141.3353458976204
+ 41
+1.110042339640731
+ 42
+50.0
+ 43
+0.0
+ 44
+0.0
+ 50
+0.0
+ 51
+0.0
+ 71
+     0
+ 72
+   100
+ 73
+     1
+ 74
+     3
+ 75
+     0
+ 76
+     0
+ 77
+     0
+ 78
+     0
+  0
+ENDTAB
+  0
+TABLE
+  2
+LTYPE
+ 70
+     1
+  0
+LTYPE
+  2
+CONTINUOUS
+ 70
+     0
+  3
+Solid line
+ 72
+    65
+ 73
+     0
+ 40
+0.0
+  0
+ENDTAB
+  0
+TABLE
+  2
+LAYER
+ 70
+     5
+  0
+LAYER
+  2
+0
+ 70
+     0
+ 62
+     7
+  6
+CONTINUOUS
+  0
+LAYER
+  2
+MAGNETS_A
+ 70
+     0
+ 62
+     1
+  6
+CONTINUOUS
+  0
+LAYER
+  2
+HOLES
+ 70
+     0
+ 62
+     3
+  6
+CONTINUOUS
+  0
+LAYER
+  2
+MAGNETS_B
+ 70
+     0
+ 62
+     4
+  6
+CONTINUOUS
+  0
+LAYER
+  2
+FRAME
+ 70
+     0
+ 62
+     6
+  6
+CONTINUOUS
+  0
+ENDTAB
+  0
+TABLE
+  2
+STYLE
+ 70
+     1
+  0
+STYLE
+  2
+STANDARD
+ 70
+     0
+ 40
+0.0
+ 41
+1.0
+ 50
+0.0
+ 71
+     0
+ 42
+0.2
+  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
+ENDTAB
+  0
+TABLE
+  2
+DIMSTYLE
+ 70
+     1
+  0
+DIMSTYLE
+  2
+STANDARD
+ 70
+     0
+  3
+
+  4
+
+  5
+
+  6
+
+  7
+
+ 40
+1.0
+ 41
+0.18
+ 42
+0.0625
+ 43
+0.38
+ 44
+0.18
+ 45
+0.0
+ 46
+0.0
+ 47
+0.0
+ 48
+0.0
+140
+0.18
+141
+0.09
+142
+0.0
+143
+25.4
+144
+1.0
+145
+0.0
+146
+1.0
+147
+0.09
+ 71
+     0
+ 72
+     0
+ 73
+     1
+ 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.0
+ 20
+0.0
+ 30
+0.0
+  3
+$MODEL_SPACE
+  1
+
+  0
+ENDBLK
+  5
+21
+  8
+0
+  0
+BLOCK
+ 67
+     1
+  8
+0
+  2
+$PAPER_SPACE
+ 70
+     0
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+  3
+$PAPER_SPACE
+  1
+
+  0
+ENDBLK
+  5
+1D
+ 67
+     1
+  8
+0
+  0
+ENDSEC
+  0
+SECTION
+  2
+ENTITIES
+  0
+CIRCLE
+  5
+6B
+  8
+MAGNETS_A
+ 10
+20.78460969082651
+ 20
+-36.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+6D
+  8
+HOLES
+ 10
+20.78460969082651
+ 20
+-30.0
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+6F
+  8
+MAGNETS_B
+ 10
+15.58845726811988
+ 20
+-33.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+70
+  8
+MAGNETS_A
+ 10
+10.39230484541325
+ 20
+-36.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+71
+  8
+HOLES
+ 10
+10.39230484541325
+ 20
+-30.0
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+72
+  8
+MAGNETS_B
+ 10
+5.196152422706617
+ 20
+-33.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+73
+  8
+MAGNETS_A
+ 10
+-0.0000000000000178
+ 20
+-36.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+74
+  8
+HOLES
+ 10
+-0.000000000000016
+ 20
+-30.0
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+75
+  8
+MAGNETS_B
+ 10
+-5.196152422706647
+ 20
+-33.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+76
+  8
+MAGNETS_A
+ 10
+-10.39230484541328
+ 20
+-35.99999999999999
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+77
+  8
+HOLES
+ 10
+-10.39230484541328
+ 20
+-30.0
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+78
+  8
+MAGNETS_B
+ 10
+-15.58845726811991
+ 20
+-32.99999999999999
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+79
+  8
+MAGNETS_A
+ 10
+-20.78460969082655
+ 20
+-35.99999999999999
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+7A
+  8
+MAGNETS_A
+ 10
+25.98076211353315
+ 20
+-27.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+7B
+  8
+HOLES
+ 10
+25.98076211353315
+ 20
+-21.00000000000001
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+7C
+  8
+MAGNETS_B
+ 10
+20.78460969082652
+ 20
+-24.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+7D
+  8
+MAGNETS_A
+ 10
+15.58845726811988
+ 20
+-27.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+7E
+  8
+HOLES
+ 10
+15.58845726811989
+ 20
+-21.0
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+7F
+  8
+MAGNETS_B
+ 10
+10.39230484541325
+ 20
+-24.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+80
+  8
+MAGNETS_A
+ 10
+5.196152422706618
+ 20
+-27.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+81
+  8
+HOLES
+ 10
+5.196152422706621
+ 20
+-21.0
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+82
+  8
+MAGNETS_B
+ 10
+-0.0000000000000115
+ 20
+-24.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+83
+  8
+MAGNETS_A
+ 10
+-5.196152422706646
+ 20
+-27.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+84
+  8
+HOLES
+ 10
+-5.196152422706643
+ 20
+-21.0
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+85
+  8
+MAGNETS_B
+ 10
+-10.39230484541327
+ 20
+-24.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+86
+  8
+MAGNETS_A
+ 10
+-15.58845726811991
+ 20
+-26.99999999999999
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+87
+  8
+MAGNETS_A
+ 10
+31.17691453623979
+ 20
+-18.00000000000001
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+88
+  8
+HOLES
+ 10
+31.17691453623979
+ 20
+-12.00000000000001
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+89
+  8
+MAGNETS_B
+ 10
+25.98076211353315
+ 20
+-15.00000000000001
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+8A
+  8
+MAGNETS_A
+ 10
+20.78460969082652
+ 20
+-18.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+8B
+  8
+HOLES
+ 10
+20.78460969082652
+ 20
+-12.00000000000001
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+8C
+  8
+MAGNETS_B
+ 10
+15.58845726811989
+ 20
+-15.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+8D
+  8
+MAGNETS_A
+ 10
+10.39230484541326
+ 20
+-18.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+8E
+  8
+HOLES
+ 10
+10.39230484541326
+ 20
+-12.0
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+8F
+  8
+MAGNETS_B
+ 10
+5.196152422706624
+ 20
+-15.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+90
+  8
+MAGNETS_A
+ 10
+-0.0000000000000089
+ 20
+-18.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+91
+  8
+HOLES
+ 10
+-0.0000000000000062
+ 20
+-12.0
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+92
+  8
+MAGNETS_B
+ 10
+-5.19615242270664
+ 20
+-15.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+93
+  8
+MAGNETS_A
+ 10
+-10.39230484541327
+ 20
+-18.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+94
+  8
+MAGNETS_A
+ 10
+36.37306695894642
+ 20
+-9.000000000000009
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+95
+  8
+HOLES
+ 10
+36.37306695894642
+ 20
+-3.00000000000001
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+96
+  8
+MAGNETS_B
+ 10
+31.17691453623979
+ 20
+-6.000000000000009
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+97
+  8
+MAGNETS_A
+ 10
+25.98076211353316
+ 20
+-9.000000000000005
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+98
+  8
+HOLES
+ 10
+25.98076211353316
+ 20
+-3.000000000000008
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+99
+  8
+MAGNETS_B
+ 10
+20.78460969082652
+ 20
+-6.000000000000005
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+9A
+  8
+MAGNETS_A
+ 10
+15.58845726811989
+ 20
+-9.000000000000004
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+9B
+  8
+HOLES
+ 10
+15.58845726811989
+ 20
+-3.000000000000005
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+9C
+  8
+MAGNETS_B
+ 10
+10.39230484541326
+ 20
+-6.000000000000004
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+9D
+  8
+MAGNETS_A
+ 10
+5.196152422706628
+ 20
+-9.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+9E
+  8
+HOLES
+ 10
+5.19615242270663
+ 20
+-3.000000000000003
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+9F
+  8
+MAGNETS_B
+ 10
+-0.0000000000000031
+ 20
+-6.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+A0
+  8
+MAGNETS_A
+ 10
+-5.196152422706636
+ 20
+-8.999999999999998
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+A1
+  8
+MAGNETS_A
+ 10
+-41.56921938165306
+ 20
+0.0000000000000071
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+A2
+  8
+HOLES
+ 10
+-36.37306695894643
+ 20
+-2.999999999999991
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+A3
+  8
+MAGNETS_B
+ 10
+-36.37306695894642
+ 20
+3.000000000000008
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+A4
+  8
+MAGNETS_A
+ 10
+-36.37306695894642
+ 20
+9.000000000000007
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+A5
+  8
+HOLES
+ 10
+-31.17691453623979
+ 20
+6.000000000000005
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+A6
+  8
+MAGNETS_B
+ 10
+-31.17691453623979
+ 20
+12.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+A7
+  8
+MAGNETS_A
+ 10
+-31.17691453623979
+ 20
+18.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+A8
+  8
+HOLES
+ 10
+-25.98076211353316
+ 20
+15.0
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+A9
+  8
+MAGNETS_B
+ 10
+-25.98076211353315
+ 20
+21.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+AA
+  8
+MAGNETS_A
+ 10
+-25.98076211353315
+ 20
+27.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+AB
+  8
+HOLES
+ 10
+-20.78460969082652
+ 20
+24.0
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+AC
+  8
+MAGNETS_B
+ 10
+-20.78460969082652
+ 20
+30.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+AD
+  8
+MAGNETS_A
+ 10
+-20.78460969082652
+ 20
+36.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+AE
+  8
+MAGNETS_A
+ 10
+-36.37306695894644
+ 20
+-8.999999999999993
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+AF
+  8
+HOLES
+ 10
+-31.1769145362398
+ 20
+-11.99999999999999
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+B0
+  8
+MAGNETS_B
+ 10
+-31.1769145362398
+ 20
+-5.999999999999992
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+B1
+  8
+MAGNETS_A
+ 10
+-31.1769145362398
+ 20
+0.0000000000000071
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+B2
+  8
+HOLES
+ 10
+-25.98076211353316
+ 20
+-2.999999999999995
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+B3
+  8
+MAGNETS_B
+ 10
+-25.98076211353316
+ 20
+3.000000000000004
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+B4
+  8
+MAGNETS_A
+ 10
+-25.98076211353316
+ 20
+9.000000000000004
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+B5
+  8
+HOLES
+ 10
+-20.78460969082653
+ 20
+6.000000000000004
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+B6
+  8
+MAGNETS_B
+ 10
+-20.78460969082652
+ 20
+12.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+B7
+  8
+MAGNETS_A
+ 10
+-20.78460969082652
+ 20
+18.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+B8
+  8
+HOLES
+ 10
+-15.58845726811989
+ 20
+15.0
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+B9
+  8
+MAGNETS_B
+ 10
+-15.58845726811989
+ 20
+21.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+BA
+  8
+MAGNETS_A
+ 10
+-15.58845726811989
+ 20
+27.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+BB
+  8
+MAGNETS_A
+ 10
+-31.17691453623981
+ 20
+-17.99999999999999
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+BC
+  8
+HOLES
+ 10
+-25.98076211353317
+ 20
+-20.99999999999999
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+BD
+  8
+MAGNETS_B
+ 10
+-25.98076211353317
+ 20
+-14.99999999999999
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+BE
+  8
+MAGNETS_A
+ 10
+-25.98076211353317
+ 20
+-8.999999999999993
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+BF
+  8
+HOLES
+ 10
+-20.78460969082654
+ 20
+-11.99999999999999
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+C0
+  8
+MAGNETS_B
+ 10
+-20.78460969082654
+ 20
+-5.999999999999996
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+C1
+  8
+MAGNETS_A
+ 10
+-20.78460969082653
+ 20
+0.0000000000000036
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+C2
+  8
+HOLES
+ 10
+-15.5884572681199
+ 20
+-2.999999999999996
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+C3
+  8
+MAGNETS_B
+ 10
+-15.5884572681199
+ 20
+3.000000000000003
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+C4
+  8
+MAGNETS_A
+ 10
+-15.5884572681199
+ 20
+9.000000000000002
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+C5
+  8
+HOLES
+ 10
+-10.39230484541326
+ 20
+6.000000000000002
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+C6
+  8
+MAGNETS_B
+ 10
+-10.39230484541326
+ 20
+12.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+C7
+  8
+MAGNETS_A
+ 10
+-10.39230484541326
+ 20
+18.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+C8
+  8
+MAGNETS_A
+ 10
+-25.98076211353317
+ 20
+-26.99999999999999
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+C9
+  8
+HOLES
+ 10
+-20.78460969082654
+ 20
+-29.99999999999999
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+CA
+  8
+MAGNETS_B
+ 10
+-20.78460969082654
+ 20
+-23.99999999999999
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+CB
+  8
+MAGNETS_A
+ 10
+-20.78460969082654
+ 20
+-17.99999999999999
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+CC
+  8
+HOLES
+ 10
+-15.58845726811991
+ 20
+-20.99999999999999
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+CD
+  8
+MAGNETS_B
+ 10
+-15.5884572681199
+ 20
+-15.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+CE
+  8
+MAGNETS_A
+ 10
+-15.5884572681199
+ 20
+-8.999999999999996
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+CF
+  8
+HOLES
+ 10
+-10.39230484541327
+ 20
+-12.0
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+D0
+  8
+MAGNETS_B
+ 10
+-10.39230484541327
+ 20
+-5.999999999999997
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+D1
+  8
+MAGNETS_A
+ 10
+-10.39230484541327
+ 20
+0.0000000000000018
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+D2
+  8
+HOLES
+ 10
+-5.196152422706633
+ 20
+-2.999999999999998
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+D3
+  8
+MAGNETS_B
+ 10
+-5.196152422706631
+ 20
+3.000000000000001
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+D4
+  8
+MAGNETS_A
+ 10
+-5.196152422706629
+ 20
+9.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+D5
+  8
+MAGNETS_A
+ 10
+20.78460969082654
+ 20
+36.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+D6
+  8
+HOLES
+ 10
+15.5884572681199
+ 20
+33.0
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+D7
+  8
+MAGNETS_B
+ 10
+20.78460969082654
+ 20
+30.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+D8
+  8
+MAGNETS_A
+ 10
+25.98076211353317
+ 20
+27.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+D9
+  8
+HOLES
+ 10
+20.78460969082654
+ 20
+24.0
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+DA
+  8
+MAGNETS_B
+ 10
+25.98076211353317
+ 20
+21.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+DB
+  8
+MAGNETS_A
+ 10
+31.1769145362398
+ 20
+18.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+DC
+  8
+HOLES
+ 10
+25.98076211353316
+ 20
+15.0
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+DD
+  8
+MAGNETS_B
+ 10
+31.1769145362398
+ 20
+12.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+DE
+  8
+MAGNETS_A
+ 10
+36.37306695894642
+ 20
+9.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+DF
+  8
+HOLES
+ 10
+31.17691453623979
+ 20
+6.0
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+E0
+  8
+MAGNETS_B
+ 10
+36.37306695894642
+ 20
+3.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+E1
+  8
+MAGNETS_A
+ 10
+41.56921938165306
+ 20
+0.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+E2
+  8
+MAGNETS_A
+ 10
+10.39230484541327
+ 20
+36.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+E3
+  8
+HOLES
+ 10
+5.196152422706639
+ 20
+33.0
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+E4
+  8
+MAGNETS_B
+ 10
+10.39230484541327
+ 20
+30.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+E5
+  8
+MAGNETS_A
+ 10
+15.5884572681199
+ 20
+27.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+E6
+  8
+HOLES
+ 10
+10.39230484541327
+ 20
+24.0
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+E7
+  8
+MAGNETS_B
+ 10
+15.5884572681199
+ 20
+21.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+E8
+  8
+MAGNETS_A
+ 10
+20.78460969082654
+ 20
+18.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+E9
+  8
+HOLES
+ 10
+15.5884572681199
+ 20
+15.0
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+EA
+  8
+MAGNETS_B
+ 10
+20.78460969082653
+ 20
+12.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+EB
+  8
+MAGNETS_A
+ 10
+25.98076211353316
+ 20
+9.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+EC
+  8
+HOLES
+ 10
+20.78460969082653
+ 20
+6.0
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+ED
+  8
+MAGNETS_B
+ 10
+25.98076211353316
+ 20
+3.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+EE
+  8
+MAGNETS_A
+ 10
+31.17691453623979
+ 20
+0.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+EF
+  8
+MAGNETS_A
+ 10
+0.0000000000000107
+ 20
+36.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+F0
+  8
+HOLES
+ 10
+-5.196152422706625
+ 20
+33.0
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+F1
+  8
+MAGNETS_B
+ 10
+0.0000000000000073
+ 20
+30.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+F2
+  8
+MAGNETS_A
+ 10
+5.196152422706639
+ 20
+27.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+F3
+  8
+HOLES
+ 10
+0.0000000000000057
+ 20
+24.0
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+F4
+  8
+MAGNETS_B
+ 10
+5.196152422706637
+ 20
+21.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+F5
+  8
+MAGNETS_A
+ 10
+10.39230484541327
+ 20
+18.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+F6
+  8
+HOLES
+ 10
+5.196152422706635
+ 20
+15.0
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+F7
+  8
+MAGNETS_B
+ 10
+10.39230484541327
+ 20
+12.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+F8
+  8
+MAGNETS_A
+ 10
+15.5884572681199
+ 20
+9.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+F9
+  8
+HOLES
+ 10
+10.39230484541326
+ 20
+6.0
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+FA
+  8
+MAGNETS_B
+ 10
+15.5884572681199
+ 20
+3.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+FB
+  8
+MAGNETS_A
+ 10
+20.78460969082653
+ 20
+0.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+FC
+  8
+MAGNETS_A
+ 10
+-10.39230484541325
+ 20
+36.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+FD
+  8
+HOLES
+ 10
+-15.58845726811989
+ 20
+33.0
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+FE
+  8
+MAGNETS_B
+ 10
+-10.39230484541326
+ 20
+30.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+FF
+  8
+MAGNETS_A
+ 10
+-5.196152422706625
+ 20
+27.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+100
+  8
+HOLES
+ 10
+-10.39230484541326
+ 20
+24.0
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+101
+  8
+MAGNETS_B
+ 10
+-5.196152422706627
+ 20
+21.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+102
+  8
+MAGNETS_A
+ 10
+0.0000000000000053
+ 20
+18.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+103
+  8
+HOLES
+ 10
+-5.196152422706629
+ 20
+15.0
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+104
+  8
+MAGNETS_B
+ 10
+0.0000000000000028
+ 20
+12.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+105
+  8
+MAGNETS_A
+ 10
+5.196152422706635
+ 20
+9.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+106
+  8
+HOLES
+ 10
+0.0000000000000004
+ 20
+6.0
+ 30
+0.0
+ 40
+3.0
+  0
+CIRCLE
+  5
+107
+  8
+MAGNETS_B
+ 10
+5.196152422706632
+ 20
+3.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+108
+  8
+MAGNETS_A
+ 10
+10.39230484541326
+ 20
+0.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+109
+  8
+MAGNETS_A
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 40
+1.56
+  0
+CIRCLE
+  5
+10B
+  8
+FRAME
+ 10
+52.5
+ 20
+-30.31088913245536
+ 30
+0.0
+ 40
+2.05
+  0
+CIRCLE
+  5
+10C
+  8
+FRAME
+ 10
+35.00000000000001
+ 20
+-60.6217782649107
+ 30
+0.0
+ 40
+2.05
+  0
+CIRCLE
+  5
+10D
+  8
+FRAME
+ 10
+-0.0000000000000107
+ 20
+-60.6217782649107
+ 30
+0.0
+ 40
+2.05
+  0
+CIRCLE
+  5
+10E
+  8
+FRAME
+ 10
+-35.00000000000003
+ 20
+-60.62177826491069
+ 30
+0.0
+ 40
+2.05
+  0
+CIRCLE
+  5
+10F
+  8
+FRAME
+ 10
+-52.50000000000001
+ 20
+-30.31088913245534
+ 30
+0.0
+ 40
+2.05
+  0
+CIRCLE
+  5
+110
+  8
+FRAME
+ 10
+-70.0
+ 20
+0.0000000000000086
+ 30
+0.0
+ 40
+2.05
+  0
+CIRCLE
+  5
+111
+  8
+FRAME
+ 10
+-52.49999999999999
+ 20
+30.31088913245536
+ 30
+0.0
+ 40
+2.05
+  0
+CIRCLE
+  5
+112
+  8
+FRAME
+ 10
+-34.99999999999999
+ 20
+60.62177826491071
+ 30
+0.0
+ 40
+2.05
+  0
+CIRCLE
+  5
+113
+  8
+FRAME
+ 10
+0.0000000000000107
+ 20
+60.6217782649107
+ 30
+0.0
+ 40
+2.05
+  0
+CIRCLE
+  5
+114
+  8
+FRAME
+ 10
+35.00000000000001
+ 20
+60.6217782649107
+ 30
+0.0
+ 40
+2.05
+  0
+CIRCLE
+  5
+115
+  8
+FRAME
+ 10
+52.5
+ 20
+30.31088913245535
+ 30
+0.0
+ 40
+2.05
+  0
+CIRCLE
+  5
+116
+  8
+FRAME
+ 10
+70.0
+ 20
+0.0
+ 30
+0.0
+ 40
+2.05
+  0
+ARC
+  5
+117
+  8
+FRAME
+ 10
+28.45299461620747
+ 20
+-49.28203230275505
+ 30
+0.0
+ 40
+20.00000000000004
+ 50
+270.0000000000001
+ 51
+329.9999999999999
+  0
+LINE
+  5
+118
+  8
+FRAME
+ 10
+45.77350269189627
+ 20
+-59.28203230275508
+ 30
+0.0
+ 11
+74.22649730810375
+ 21
+-10.00000000000002
+ 31
+0.0
+  0
+ARC
+  5
+119
+  8
+FRAME
+ 10
+-28.4529946162075
+ 20
+-49.28203230275505
+ 30
+0.0
+ 40
+20.00000000000002
+ 50
+210.0000000000001
+ 51
+269.9999999999999
+  0
+LINE
+  5
+11A
+  8
+FRAME
+ 10
+-28.45299461620752
+ 20
+-69.28203230275507
+ 30
+0.0
+ 11
+28.45299461620749
+ 21
+-69.28203230275508
+ 31
+0.0
+  0
+ARC
+  5
+11B
+  8
+FRAME
+ 10
+-56.90598923241491
+ 20
+0.0000000000000071
+ 30
+0.0
+ 40
+20.00000000000005
+ 50
+150.0000000000001
+ 51
+209.9999999999999
+  0
+LINE
+  5
+11C
+  8
+FRAME
+ 10
+-74.22649730810375
+ 20
+-9.999999999999993
+ 30
+0.0
+ 11
+-45.77350269189629
+ 21
+-59.28203230275507
+ 31
+0.0
+  0
+ARC
+  5
+11D
+  8
+FRAME
+ 10
+-28.45299461620747
+ 20
+49.28203230275507
+ 30
+0.0
+ 40
+20.00000000000001
+ 50
+90.00000000000001
+ 51
+149.9999999999999
+  0
+LINE
+  5
+11E
+  8
+FRAME
+ 10
+-45.77350269189625
+ 20
+59.2820323027551
+ 30
+0.0
+ 11
+-74.22649730810375
+ 21
+10.00000000000001
+ 31
+0.0
+  0
+ARC
+  5
+11F
+  8
+FRAME
+ 10
+28.45299461620746
+ 20
+49.28203230275501
+ 30
+0.0
+ 40
+20.00000000000008
+ 50
+30.00000000000014
+ 51
+89.99999999999991
+  0
+LINE
+  5
+120
+  8
+FRAME
+ 10
+28.45299461620749
+ 20
+69.28203230275508
+ 30
+0.0
+ 11
+-28.45299461620747
+ 21
+69.2820323027551
+ 31
+0.0
+  0
+ARC
+  5
+121
+  8
+FRAME
+ 10
+56.90598923241494
+ 20
+0.0
+ 30
+0.0
+ 40
+20.00000000000003
+ 50
+330.0
+ 51
+29.99999999999993
+  0
+LINE
+  5
+122
+  8
+FRAME
+ 10
+74.22649730810375
+ 20
+10.0
+ 30
+0.0
+ 11
+45.77350269189627
+ 21
+59.28203230275508
+ 31
+0.0
+  0
+ARC
+  5
+123
+  8
+FRAME
+ 10
+24.22649730810375
+ 20
+-41.96152422706631
+ 30
+0.0
+ 40
+10.0
+ 50
+269.9999999999999
+ 51
+329.9999999999999
+  0
+LINE
+  5
+124
+  8
+FRAME
+ 10
+32.88675134594813
+ 20
+-46.96152422706631
+ 30
+0.0
+ 11
+57.11324865405187
+ 21
+-5.000000000000016
+ 31
+0.0
+  0
+ARC
+  5
+125
+  8
+FRAME
+ 10
+-24.22649730810376
+ 20
+-41.96152422706628
+ 30
+0.0
+ 40
+10.00000000000002
+ 50
+210.0000000000001
+ 51
+269.9999999999999
+  0
+LINE
+  5
+126
+  8
+FRAME
+ 10
+-24.22649730810377
+ 20
+-51.96152422706631
+ 30
+0.0
+ 11
+24.22649730810375
+ 21
+-51.96152422706631
+ 31
+0.0
+  0
+ARC
+  5
+127
+  8
+FRAME
+ 10
+-48.45299461620746
+ 20
+0.0000000000000071
+ 30
+0.0
+ 40
+10.00000000000002
+ 50
+150.0000000000001
+ 51
+209.9999999999999
+  0
+LINE
+  5
+128
+  8
+FRAME
+ 10
+-57.11324865405187
+ 20
+-4.999999999999995
+ 30
+0.0
+ 11
+-32.88675134594816
+ 21
+-46.96152422706631
+ 31
+0.0
+  0
+ARC
+  5
+129
+  8
+FRAME
+ 10
+-24.22649730810373
+ 20
+41.96152422706632
+ 30
+0.0
+ 40
+10.0
+ 50
+89.99999999999997
+ 51
+150.0
+  0
+LINE
+  5
+12A
+  8
+FRAME
+ 10
+-32.88675134594811
+ 20
+46.96152422706632
+ 30
+0.0
+ 11
+-57.11324865405187
+ 21
+5.000000000000006
+ 31
+0.0
+  0
+ARC
+  5
+12B
+  8
+FRAME
+ 10
+24.22649730810376
+ 20
+41.96152422706633
+ 30
+0.0
+ 40
+9.999999999999982
+ 50
+29.99999999999996
+ 51
+90.00000000000004
+  0
+LINE
+  5
+12C
+  8
+FRAME
+ 10
+24.22649730810375
+ 20
+51.96152422706631
+ 30
+0.0
+ 11
+-24.22649730810373
+ 21
+51.96152422706632
+ 31
+0.0
+  0
+ARC
+  5
+12D
+  8
+FRAME
+ 10
+48.45299461620746
+ 20
+0.0000000000000018
+ 30
+0.0
+ 40
+10.00000000000002
+ 50
+330.0000000000001
+ 51
+29.99999999999992
+  0
+LINE
+  5
+12E
+  8
+FRAME
+ 10
+57.11324865405187
+ 20
+5.000000000000001
+ 30
+0.0
+ 11
+32.88675134594813
+ 21
+46.96152422706631
+ 31
+0.0
+  0
+ENDSEC
+  0
+EOF
diff --git a/script/2018.12.8-hex-speaker-spiral.py b/script/2018.12.8-hex-speaker-spiral.py
new file mode 100644
index 0000000000000000000000000000000000000000..c877f7f106e9dd6e6ac0d4c941826f60b64956f6
--- /dev/null
+++ b/script/2018.12.8-hex-speaker-spiral.py
@@ -0,0 +1,162 @@
+#!/usr/bin/env python
+from __future__ import division,absolute_import
+import rhinoscriptsyntax as rs
+from math import *	
+import sys
+
+#simple class for vec2
+class V2(object):
+	def __init__(self,*args):
+		if len(args)>1:
+			self.x = args[0]
+			self.y = args[1]
+		else:
+			self.x = args[0][0]
+			self.y = args[0][1]
+		self.p3l = [self.x,self.y,0]
+	def __add__(self,other):
+		return V2(self.x+other.x,self.y+other.y)
+	def __sub__(self,other):
+		return V2(self.x-other.x,self.y-other.y)
+	def __mul__(self,other):
+		try:
+			return V2(self.x*other.x,self.y*other.y)
+		except(AttributeError):
+			return V2(self.x*other,self.y*other)
+	def __rmul__(self,other):
+		try:
+			return V2(self.x*other.x, self.y*other.y)
+		except(AttributeError):
+			return V2(self.x*other,self.y*other)
+	def __getitem__(self,index):
+		return [self.x,self.y][index]
+	def __repr__(self):
+		return "V2(%.6f,%.6f)"%(self.x,self.y)
+	def rotate(self,th):
+		return V2(self.x*cos(th)-self.y*sin(th), self.x*sin(th)+self.y*cos(th))
+	def rotate90(self):
+		return V2(-self.y,self.x)
+	def rotate_p(self,b,th):
+		return b + (self-b).rotate(th)
+	def magnitude(self):
+		return sqrt(self.x*self.x + self.y*self.y)
+	def normalized(self):
+		return self*(1./self.magnitude())
+	def dot(self,other):
+		return self.x*other.x + self.y*other.y
+	def cross(self,other):
+		return self.x*other.y - self.y*other.x
+	def angle_between(self,other):
+		#unsigned angle between two vectors
+		c = self.cross(other)
+		return atan2(c,self.dot(other))
+	def projected_onto(self,other):
+		return ((self.dot(other))/(other.dot(other)))*other
+	def projected_orthogonal_to(self,other):
+		return self - self.projected_onto(other)
+
+	def close(self,other,tol=1e-6):
+		return (abs(self.x-other.x)<tol) and (abs(self.y-other.y)<tol)
+	def p3lz(self,z):
+		return [self.x,self.y,z]
+
+# a few helper functions
+def line(p1,p2,layer,bridge_w=0,cut_w=0):
+	d = p2-p1; dl = d.magnitude()
+	if dl==0:
+		return None
+	dn = d.normalized()
+	if bridge_w==0 or cut_w==0: 
+		rs.CurrentLayer(layer)
+		return rs.AddLine(p1.p3l, p2.p3l)
+	else:
+		rs.CurrentLayer(layer)
+		output = []; dist = bridge_w
+		ds = []
+		while dist < dl-2*bridge_w:#-cut_w:
+			ds.append((dist, dist+cut_w))
+			#print bridge_w, (p1+dist*dn).p3l , (p1+(dist+bridge_w)*dn).p3l
+			dist += cut_w+bridge_w
+		#leftover = dl-bridge_w-cut_w - dist + cut_w+bridge_w
+		leftover = dl-bridge_w - dist + cut_w+bridge_w
+		for pair in ds:
+			output.append(rs.AddLine( (p1+(pair[0] + leftover/2)*dn).p3l , (p1+(pair[1]+ leftover/2)*dn).p3l) )
+
+		return output
+def circle(c,d,layer):
+	rs.CurrentLayer(layer)
+	return rs.AddCircle(c.p3l, .5*d)
+def arc(c,d,th1,th2,layer):
+	rs.CurrentLayer(layer)
+	p1 = c + d/2*V2(cos(pi/180.*th1),sin(pi/180.*th1))
+	p2 = c + d/2*V2(cos(pi/180.*th2),sin(pi/180.*th2))
+	pm = c + d/2*V2(cos(pi/180.*(th1+th2)/2),sin(pi/180.*(th1+th2)/2))
+	return rs.AddArc3Pt(p1.p3l,p2.p3l,pm.p3l)
+def filleted_hex(c,R,r,layer):
+	crvs = []
+	x = r/sqrt(3)
+	for i in range(6):
+		v0 = R*V2(cos(i*2*pi/6),sin(i*2*pi/6))
+		v1 = R*V2(cos((i+1)*2*pi/6),sin((i+1)*2*pi/6))
+		d = (v1 - v0).normalized()
+		crvs.append( line( c+v0 + x*d, c+v1 - x*d, layer) )
+		crvs.append( arc( c+v0-2*x*v0.normalized(),2*r,-30+i*60,30+i*60, layer) )
+	return crvs
+
+
+
+
+
+
+#main
+def main():
+	rs.AddLayer('magnets_a',(255,0,0))
+	rs.AddLayer('magnets_b',(0,255,255))
+	rs.AddLayer('holes',(0,255,0))
+	rs.AddLayer('coils',(0,0,255))
+	rs.AddLayer('frame',(255,0,255))
+
+	mag_d = 3.12 #mm, diameter of magnets, as cut by laser
+	hole_d = 6 #mm, diameter of air hole
+	s = 6 #mm, hex lattice side length (2xmag_d?)
+	s32 = s*sqrt(3)/2.
+	frame_inner = 60 #mm, radius / side length of inner hex of frame 
+	frame_inner_fillet = 10 #mm, fillet radius
+	frame_outer = 80 #mm, radius / side length of outer hex of frame 
+	frame_outer_fillet = 20 #mm, fillet radius
+	frame_bolt_d = 4.1 #mm, diameter of bolt holes
+
+	wire_pitch = 2*.088 #mm, pitch, .088 = measured diameter (.080) + .008 mm slop (10% applied)
+	N = 11 #number of turns
+	Nr = 4 #number of radial layers in the hex lattice
+
+	#make frame
+	frame = []
+	frame += filleted_hex(V2(0,0), frame_inner, frame_inner_fillet, 'frame')
+	frame += filleted_hex(V2(0,0), frame_outer, frame_outer_fillet, 'frame')
+	for i in range(6):
+		v0 = .5*(frame_inner+frame_outer)*V2(cos(i*2*pi/6),sin(i*2*pi/6))
+		v1 = .5*(frame_inner+frame_outer)*V2(cos((i+1)*2*pi/6),sin((i+1)*2*pi/6))
+		frame += [
+			circle(v0, frame_bolt_d, 'frame'),
+			circle(.5*(v0+v1), frame_bolt_d, 'frame'),
+			]
+
+	#make magnet grid and air hole grid
+	magnets = [];
+	magnets += [circle(V2(0,0),mag_d,'magnets_a')]
+	for i in range(3): #3-fold angular symmetry
+		vr = V2(cos(i*2*pi/3),sin(i*2*pi/3))
+		vth = V2(cos(i*2*pi/3+pi/2),sin(i*2*pi/3+pi/2))
+		vk = V2(cos((i+1)*2*pi/3),sin((i+1)*2*pi/3))
+		for j in range(Nr):
+			for k in range(Nr+1):
+				magnets += [circle(2*s32*vr*(j+1) + 2*s32*vk*k, mag_d, 'magnets_a')]
+				if k<Nr:
+					magnets += [
+						circle(2*s32*vr*(j+.5) + 2*s32*vk*k + .5*s*vth, mag_d, 'magnets_b'),
+						circle(2*s32*vr*j + 2*s32*vk*k + s*vth, hole_d, 'holes'),
+					]			
+
+if __name__ == '__main__':
+	main()
\ No newline at end of file