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