From 375ed272a0d2642999ec5a4c80749992ed56330c Mon Sep 17 00:00:00 2001
From: Sam Calisch <s.calisch@gmail.com>
Date: Sat, 8 Dec 2018 14:52:37 -0500
Subject: [PATCH] added initial hex spiral cut files

---
 model/hex-spiral.3dm                   |  Bin 0 -> 121470 bytes
 model/hex-spiral.dxf                   | 3770 ++++++++++++++++++++++++
 script/2018.12.8-hex-speaker-spiral.py |  162 +
 3 files changed, 3932 insertions(+)
 create mode 100644 model/hex-spiral.3dm
 create mode 100644 model/hex-spiral.dxf
 create mode 100644 script/2018.12.8-hex-speaker-spiral.py

diff --git a/model/hex-spiral.3dm b/model/hex-spiral.3dm
new file mode 100644
index 0000000000000000000000000000000000000000..34bce1e0951cbc1f69e4c185c8f63c464348ed45
GIT binary patch
literal 121470
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
Xf@q>Kawvd~JOI^XAkB5RAkGE=C2t`@

literal 0
HcmV?d00001

diff --git a/model/hex-spiral.dxf b/model/hex-spiral.dxf
new file mode 100644
index 0000000..9ad78a4
--- /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 0000000..c877f7f
--- /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
-- 
GitLab