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