Example in Blockly

Example in Blockly script details
Type
Blockly logo image
blockly
App Version
0.13.0
Visibility
public
Date Created
Mar 19, 2021, 1:29:34 PM
Last Edit Date
Dec 5, 2023, 6:01:14 PM

Script Details

The Code
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="4WruCBSlau2%ruGq!04D">shape</variable> <variable id="en+U|i2=vn%/#3)ye(SD">faceColour</variable> <variable id="!j+!g5nn:`O9kdtviDLc">faceOpacity</variable> <variable id=",M+tf-g=1M%qw%s|ZxT)">precision</variable> <variable id="RTBglAnS1@9+0]h3}7Mk">length</variable> <variable id="]3~JKnFIby15=7ESrBhf">loft</variable> <variable id="L^*nFd$$-XqdXoKks6MG">hexagonGlass</variable> <variable id="_tmj52.^)E~]![ZE4DgW">drawnGround</variable> <variable id="P=|){?hEsDq=EBy5/n3b">movedPointsForTops</variable> <variable id="*@zwFl?f~xJj7m:}u0LO">hexGridNrX</variable> <variable id="qtMp~e:nxaN%`VwUR|gC">glassGroupCompound</variable> <variable id="CMn7/qoHh~%SLc(|PtQ1">occtShape</variable> <variable id="tBlJB)v83o3exilg.RS7">nurbsSurface</variable> <variable id=":1*%s_jb6mlTX^IXip?q">pointsOnSurface</variable> <variable id="AB)8^b,V{lNVI1:BE}gt">innerSideLength</variable> <variable id="%5(}p*ezX1vn+ub0o0,%">filletBase</variable> <variable id="m;we^sq=tw]*PAEpOa1=">hexagonBase</variable> <variable id="Em0l*h`=,-xuV42;Jzt8">hexGridNrY</variable> <variable id="dABBv7*ou}Uu625}QhUl">baseGroupCompound</variable> <variable id="m:AuG!cTPboqR76Eb`FC">m</variable> <variable id="szQI}9nQa$%_jX_Bv(uc">point1</variable> <variable id="B}dlS./rL5]0g#xOiT[=">chamferEdgeIndexes</variable> <variable id="!0p6ApRy`{K@6$_|`LSU">hexagonGlassOnSrf</variable> <variable id="my|Y~G+Aib^EEpdRR;id">bulbBoxMesh</variable> <variable id="5hRIZ.lOkM97i3[e)8BA">firstTime</variable> <variable id="ibE`Uhb2`rE^/8i=7@VE">hexGridPoints</variable> <variable id="at.4_1NUcO=e%+/pU)}H">bulbBox</variable> <variable id="~UF48{W8a(Avb99Y$Z?T">lineOrient</variable> <variable id="E#ZK7*u*s/T05?Ar81uE">chamferGlass</variable> <variable id="h(45Hn~+gx0.6%Q8o}#~">hexagonBaseOnSrf</variable> <variable id="C_l,t!QA]Z!c2*(=tr}3">n</variable> <variable id=".:lEfGx]982[{A_Flu?{">hexGridPointsMoved</variable> <variable id="W$l5QY6N?h-b5NX]n}WV">linesForIntersection</variable> <variable id="1IeB*p@O]}=y-xmv^/P:">point2</variable> <variable id="JMa2`*NQ}|rl)i:Gc.ax">i</variable> <variable id="^O5PHAYPIZj:)XeB8~o{">glassGroupCompoundMesh</variable> <variable id="5/;~?2:]@xKw*P}lAY5w">point3</variable> <variable id="$x1qy{t}ng8GQ*x0E5OX">j</variable> <variable id="k*f._K?3rpWKa~1^%9ih">baseGroupCompoundMesh</variable> <variable id="t#=dA;N03:z2G`d$k8F7">baseTriangle</variable> <variable id="F/d7r%}[z-=4Hy-G.Pbp">k</variable> </variables> <block type="procedures_callnoreturn" id="X[?CAO/@MS)h3ke8o,8w" x="-6560" y="-516"> <mutation name="createLightsAndAdjustCamera"> </mutation> <next> <block type="procedures_callnoreturn" id="rE~zMYS[nnz(-!8rl0hW"> <mutation name="baseSetupForHexagonTriangleShape"> </mutation> <next> <block type="procedures_callnoreturn" id="k24/MVJV}N6U{^Xq%jd3"> <mutation name="makeHexGridAndVerticalLinesForIntersection"> </mutation> <next> <block type="procedures_callnoreturn" id="XDPUo{QIHmDVqI~!CiAv"> <mutation name="createNurbsSurfaceForHexGridProjections"> </mutation> <next> <block type="procedures_callnoreturn" id=",0c#PLNSxBmC5u+{q{)|"> <mutation name="findIntersectionsOnSurface"> </mutation> <next> <block type="procedures_callnoreturn" id="tHU2Lk/COHk$%_4x8F=C"> <mutation name="createBaseTriangleShapeAndGlass"> </mutation> <next> <block type="procedures_callnoreturn" id="%6X~eD0hvb}F]bY:2A5o"> <mutation name="rotateTriangleToHexagons"> </mutation> <next> <block type="procedures_callnoreturn" id="D@t[!cINL!4jru#hk2os"> <mutation name="createAndDrawGround"> </mutation> <next> <block type="procedures_callnoreturn" id="+yzb/B;t^a!D$Ev*E0_T"> <mutation name="createCompoundMeshesForDrawing"> </mutation> <next> <block type="procedures_callnoreturn" id="2q~HzY,F10cRlxex9[$5"> <mutation name="drawOptimizedMeshInstances"> </mutation> <next> <block type="procedures_callnoreturn" id="gyw]Ka9GbZLX|H/S7}mB"> <mutation name="higherQualityDrawingOfOCCModel"> </mutation> <next> <block type="procedures_callnoreturn" id="Cke)/OW-GEFNa)Dzs3a9"> <mutation name="drawVerticalColumns"> </mutation> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> <block type="procedures_defnoreturn" id="XZ%T8k$8JQ1~kdXRlzRv" x="-5943" y="-514"> <field name="NAME">baseSetupForHexagonTriangleShape</field> <comment pinned="false" h="80" w="160">Describe this function...</comment> <statement name="STACK"> <block type="variables_set" id="Mn]fjzpnbINy(-vn;sX."> <field name="VAR" id="RTBglAnS1@9+0]h3}7Mk">length</field> <value name="VALUE"> <block type="math_number" id="eu_;iC:HCj~D;lu?fz@3"> <field name="NUM">20</field> </block> </value> <next> <block type="variables_set" id="D?(!ogH5WQ9?utgi]Gd`"> <field name="VAR" id="AB)8^b,V{lNVI1:BE}gt">innerSideLength</field> <value name="VALUE"> <block type="math_number" id="kqGS7-^ez[7@w@Y:Zhk8"> <field name="NUM">3</field> </block> </value> <next> <block type="variables_set" id="p^1@-`Sg{D.QJrG5Im[;"> <field name="VAR" id="szQI}9nQa$%_jX_Bv(uc">point1</field> <value name="VALUE"> <block type="bitbybit.point.pointXYZ" id=":4APa)A[Bgp/!P{F(bCH"> <value name="X"> <block type="math_number" id="@@?:hQ!sEcQW}!2tHer!"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="d+deNpc[gHE?2w@v`[pl"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_number" id=";-t/?kedyS(ft3M^z*;k"> <field name="NUM">0</field> </block> </value> </block> </value> <next> <block type="variables_set" id="Q!rY@DaqzhUcZzDp$,TY"> <field name="VAR" id="~UF48{W8a(Avb99Y$Z?T">lineOrient</field> <value name="VALUE"> <block type="bitbybit.line.create" id="bHV)gz-Hq?s8{kiWsxL2"> <value name="Start"> <block type="bitbybit.point.pointXYZ" id="BiS%$K9B;)83jYDIbcx1"> <value name="X"> <block type="math_number" id="9EU#as]paiiF2F?RBo|f"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id=";OmX,CV7s=Fl$I3c/}C@"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_number" id="}iGe+LPBM0pCYCg4M1Iv"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="End"> <block type="bitbybit.point.pointXYZ" id="=KL`z*H+gEo42n7K.,[="> <value name="X"> <block type="math_number" id="UW/^FL5R{xopAiEyPem2"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="Yjw7IkxSIy(NXQP9![@S"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="variables_get" id="VWqm$;XxXY}gzYYwW8a0"> <field name="VAR" id="RTBglAnS1@9+0]h3}7Mk">length</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id=")e8=SIe4[7u!lyv$S6^7"> <field name="VAR" id="1IeB*p@O]}=y-xmv^/P:">point2</field> <value name="VALUE"> <block type="bitbybit.line.getEndPoint" id="1HN@a}}5Zhs_EdE]g):v"> <value name="Line"> <block type="bitbybit.line.transformLine" id="S;KPh(Z;q9=/1_bLIai8"> <value name="Line"> <block type="variables_get" id=")qV{iGAPI^t@U{:|a~AQ"> <field name="VAR" id="~UF48{W8a(Avb99Y$Z?T">lineOrient</field> </block> </value> <value name="Transformation"> <block type="bitbybit.babylon.transforms.rotationCenterY" id="jOHnD5joB!Z)O^}gz}Bq"> <value name="Angle"> <block type="math_number" id="M6H}s*L.:*-wY6`uQX!M"> <field name="NUM">59.09</field> </block> </value> <value name="Center"> <block type="bitbybit.vector.vectorXYZ" id="y:|^C[1M;zxvw8la$`fV"> <value name="X"> <block type="math_number" id="wEPyV(p+(tIRINy*U^Po"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id=".FQu(|%GyWx*{lw@5Sie"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_number" id="Zl)m5W#m,/g7#Y]85|Tn"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="@nfjJmTfERzHymoEhpY{"> <field name="VAR" id="5/;~?2:]@xKw*P}lAY5w">point3</field> <value name="VALUE"> <block type="bitbybit.line.getEndPoint" id="Hc;}AeV@3l8/zxi[V!=w"> <value name="Line"> <block type="bitbybit.line.transformLine" id="y@1N%uy_q/%-QoKvFmn$"> <value name="Line"> <block type="variables_get" id="058eJWATWD0$kZJ0w}f!"> <field name="VAR" id="~UF48{W8a(Avb99Y$Z?T">lineOrient</field> </block> </value> <value name="Transformation"> <block type="bitbybit.babylon.transforms.rotationCenterY" id="Y;7Fqbt/NjE;|^JZbIgw"> <value name="Angle"> <block type="math_number" id="[l%jR_vMh3Fz|lME+0pX"> <field name="NUM">0.01</field> </block> </value> <value name="Center"> <block type="bitbybit.vector.vectorXYZ" id="[RnY?R,VED5m`zvBf^v8"> <value name="X"> <block type="math_number" id="yRay)q%2UYD?Dp5r#POo"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="4UJNGt5`#46s:@{$oq-E"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_number" id="zs)u}(M#`.9w4`)qF6ef"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="bui[,7WGz+F;YgXr1z!Z"> <field name="VAR" id="t#=dA;N03:z2G`d$k8F7">baseTriangle</field> <value name="VALUE"> <block type="bitbybit.occt.shapes.wire.createPolygonWire" id="U4AG6JrdgLT/3@[PN}OA"> <value name="Points"> <block type="lists_create_with" id=".B{8s3FEAMg`4,Ck*v(]"> <mutation items="3"> </mutation> <value name="ADD0"> <block type="variables_get" id="MbuzCX^rZ*TCsNkUByI5"> <field name="VAR" id="szQI}9nQa$%_jX_Bv(uc">point1</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="J(0ZD6yrJf6/~w2ZZtcH"> <field name="VAR" id="1IeB*p@O]}=y-xmv^/P:">point2</field> </block> </value> <value name="ADD2"> <block type="variables_get" id="L[TfQkEa~/W5tJGU_%(F"> <field name="VAR" id="5/;~?2:]@xKw*P}lAY5w">point3</field> </block> </value> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id="*5%C.=tY}kCvv%{F$6o," x="-5003" y="-528"> <field name="NAME">createLightsAndAdjustCamera</field> <comment pinned="false" h="80" w="160">Describe this function...</comment> <statement name="STACK"> <block type="bitbybit.babylon.scene.adjustActiveArcRotateCamera" id="kcR@9Xr8$Bl%7n%#D}gY"> <value name="Position"> <block type="bitbybit.point.pointXYZ" id="3s99[)eXN=Yob3;2yt`X"> <value name="X"> <block type="math_number" id="?6vYI@p@pCneyV8r0@J9"> <field name="NUM">250</field> </block> </value> <value name="Y"> <block type="math_number" id="F;CM%-%K[6h8IaNY$gfB"> <field name="NUM">170</field> </block> </value> <value name="Z"> <block type="math_number" id="10{}v,_O~5rL]/}7fkAK"> <field name="NUM">250</field> </block> </value> </block> </value> <value name="LookAt"> <block type="bitbybit.point.pointXYZ" id="ux!SvoRkF:1+dQhZLVdY"> <value name="X"> <block type="math_number" id="o%/@^Wctm%Iu*R0z@6Wi"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="/0zdS853y]]Qn0V;CwBl"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_number" id="q_z-{:xT,zE`8viq@FXL"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="MaxZ"> <block type="math_number" id="8tg5@DIC1E:-3)os2/c]"> <field name="NUM">10000</field> </block> </value> <value name="PanningSensibility"> <block type="math_number" id="A^c=.{mMf(c,+d713hq["> <field name="NUM">100</field> </block> </value> <value name="WheelPrecision"> <block type="math_number" id=".ape9F*ESORSh19+(Rkh"> <field name="NUM">3</field> </block> </value> <next> <block type="bitbybit.babylon.scene.drawPointLightNoReturn" id="@odG+3%`4I/DUjgWq+#$"> <value name="Position"> <block type="bitbybit.point.pointXYZ" id="}|Kvibbu:3SZTp.*oo$l"> <value name="X"> <block type="math_number" id=".Xl0~joW,$y5F*I~G+Sv"> <field name="NUM">200</field> </block> </value> <value name="Y"> <block type="math_number" id="+Pn7dX396pU.Y99E!8Ou"> <field name="NUM">130</field> </block> </value> <value name="Z"> <block type="math_number" id="sSMJNaCGg|vStKhJipyT"> <field name="NUM">200</field> </block> </value> </block> </value> <value name="Intensity"> <block type="math_number" id="3qLSS9SUSe6(+cli^($("> <field name="NUM">60000</field> </block> </value> <value name="Diffuse"> <block type="colour_picker" id="{svHnG9=}y$c}6A@DzwG"> <field name="COLOUR">#ff99ff</field> </block> </value> <value name="Specular"> <block type="colour_picker" id="+#A[@jZ}5B_il5pz(WIu"> <field name="COLOUR">#ffffff</field> </block> </value> <value name="Radius"> <block type="math_number" id="lNa$w:/[)C:}(NO9`(:f"> <field name="NUM">0.5</field> </block> </value> <value name="ShadowGeneratorMapSize"> <block type="math_number" id="u.wZPa~9I/.k=-6_Utsp"> <field name="NUM">1024</field> </block> </value> <value name="EnableShadows"> <block type="logic_boolean" id="8:!bX}s{XBoEs$I,2Stz"> <field name="BOOL">FALSE</field> </block> </value> <value name="ShadowDarkness"> <block type="math_number" id="TqTsl50Vn4V|hb!0pNc)"> <field name="NUM">0</field> </block> </value> <next> <block type="bitbybit.babylon.scene.drawPointLightNoReturn" id=";jz84T#sw6Oyk=iN7M8$"> <value name="Position"> <block type="bitbybit.point.pointXYZ" id="g.n%M/T=||%FjQ*nAaro"> <value name="X"> <block type="math_number" id="wcC68DSTDXN^{}]-*X3_"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="^raD?ThN4v~om(eX{GK@"> <field name="NUM">160</field> </block> </value> <value name="Z"> <block type="math_number" id="8o!WZ0K*I.*!G]{HnN.i"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="Intensity"> <block type="math_number" id="jA*t2*g?,s8xZ2cMfJ^K"> <field name="NUM">60000</field> </block> </value> <value name="Diffuse"> <block type="colour_picker" id="sfQ*wJwI-~Yvwr.w@P|f"> <field name="COLOUR">#ff99ff</field> </block> </value> <value name="Specular"> <block type="colour_picker" id="rS(g:4L~hqfL{jSGvfHM"> <field name="COLOUR">#ffffff</field> </block> </value> <value name="Radius"> <block type="math_number" id=";f12W.}R[xl0|%~+0jNB"> <field name="NUM">0.5</field> </block> </value> <value name="ShadowGeneratorMapSize"> <block type="math_number" id="%tmRjD5L2(3MI^]]ci)S"> <field name="NUM">1024</field> </block> </value> <value name="EnableShadows"> <block type="logic_boolean" id="Mg+21Fl|IH29sK|3ZEUj"> <field name="BOOL">FALSE</field> </block> </value> <value name="ShadowDarkness"> <block type="math_number" id="rsjAFKSOE@.rcfIPk2q5"> <field name="NUM">0</field> </block> </value> <next> <block type="bitbybit.babylon.scene.drawPointLightNoReturn" id="h76%3#P6XlQ^s*1M^!P$"> <value name="Position"> <block type="bitbybit.point.pointXYZ" id="wA!Hp;,d)1zA,D~$;;.8"> <value name="X"> <block type="math_number" id="42Jt~A%qlw%Z$kMNLZ}O"> <field name="NUM">200</field> </block> </value> <value name="Y"> <block type="math_number" id="X}4C5AVs#d)]SK^S`@g*"> <field name="NUM">90</field> </block> </value> <value name="Z"> <block type="math_number" id="[j18X/1(@-I1+F;H}lkh"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="Intensity"> <block type="math_number" id="Gb=cd-4kacYo^`=|Z?GT"> <field name="NUM">60000</field> </block> </value> <value name="Diffuse"> <block type="colour_picker" id="RuK[8PgT{;2VU6#X5`jw"> <field name="COLOUR">#ff99ff</field> </block> </value> <value name="Specular"> <block type="colour_picker" id="UcP/J3,ZmkTf:3RW$tW_"> <field name="COLOUR">#ffffff</field> </block> </value> <value name="Radius"> <block type="math_number" id="C{%:UyVs5m36L`w+J$~6"> <field name="NUM">0.5</field> </block> </value> <value name="ShadowGeneratorMapSize"> <block type="math_number" id="`CS~Ci6{VUVs9Oz]x!Z%"> <field name="NUM">1024</field> </block> </value> <value name="EnableShadows"> <block type="logic_boolean" id="as.TLmQ;j$sT|o3`?k^#"> <field name="BOOL">FALSE</field> </block> </value> <value name="ShadowDarkness"> <block type="math_number" id="wULPTQ?Y2Ct/9D%s0DN;"> <field name="NUM">0</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id="R!~5+Qj{7(T=9W.bNqbp" x="-4433" y="-518"> <field name="NAME">createBaseTriangleShapeAndGlass</field> <comment pinned="false" h="80" w="160">Describe this function...</comment> <statement name="STACK"> <block type="variables_set" id="Jp9eKKOhgOI3[c$;2=)r"> <field name="VAR" id="]3~JKnFIby15=7ESrBhf">loft</field> <value name="VALUE"> <block type="bitbybit.occt.operations.loft" id=")!d:qurTtU,lh{Y:ln.U"> <value name="Shapes"> <block type="lists_create_with" id="S^s%?D^=Do?)ne6SqEwj"> <mutation items="2"> </mutation> <value name="ADD0"> <block type="bitbybit.occt.shapes.wire.createPolygonWire" id="fGHz_@vORt2%sCMEsnK9"> <value name="Points"> <block type="lists_create_with" id="DP8hx(`LI|IHTBW/uQao"> <mutation items="3"> </mutation> <value name="ADD0"> <block type="bitbybit.point.pointXYZ" id="Ck@]if`I!]{$N^lJ-:]Y"> <value name="X"> <block type="math_number" id="WOC/v]@iMc.$@o3+1DI`"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="hSvtKL-~tIQJ$xI{KzI["> <field name="NUM">5</field> </block> </value> <value name="Z"> <block type="math_number" id="p-V235A94XI]hhI0~C;c"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="ADD1"> <block type="bitbybit.point.pointXYZ" id="tbY2rHMf#Nk8[31i}Y(m"> <value name="X"> <block type="bitbybit.point.getX" id="!nQ5N{64H[]^L1=R?%1Q"> <value name="Point"> <block type="variables_get" id="2#D{}o!*}^A+;-rNcIl:"> <field name="VAR" id="1IeB*p@O]}=y-xmv^/P:">point2</field> </block> </value> </block> </value> <value name="Y"> <block type="math_number" id="END.ObkkSRkjM6@JgCly"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="bitbybit.point.getZ" id="}Jy;uuTGasY~OJ4dme(+"> <value name="Point"> <block type="variables_get" id="/S%CAxI0c7GzggdRD0SX"> <field name="VAR" id="1IeB*p@O]}=y-xmv^/P:">point2</field> </block> </value> </block> </value> </block> </value> <value name="ADD2"> <block type="bitbybit.point.pointXYZ" id="K|Xw]$^X=pkAatV[@bW5"> <value name="X"> <block type="bitbybit.point.getX" id="TlhZ?+C5+[b|BHdKPW(h"> <value name="Point"> <block type="variables_get" id="ZN0Zo(EVp85Jaa~TC85T"> <field name="VAR" id="5/;~?2:]@xKw*P}lAY5w">point3</field> </block> </value> </block> </value> <value name="Y"> <block type="math_number" id="N8c%|8lW~s/r;]J0wRhD"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="bitbybit.point.getZ" id=",K?2fex(W/N06K`lDzA,"> <value name="Point"> <block type="variables_get" id=";.u(Il}a+z${-c)$?gn;"> <field name="VAR" id="5/;~?2:]@xKw*P}lAY5w">point3</field> </block> </value> </block> </value> </block> </value> </block> </value> </block> </value> <value name="ADD1"> <block type="bitbybit.occt.shapes.wire.createPolygonWire" id="svzS:~0Y583U-:83?}=z"> <value name="Points"> <block type="lists_create_with" id="ssh%5)=jOA%L,=%EZSrt"> <mutation items="3"> </mutation> <value name="ADD0"> <block type="bitbybit.point.pointXYZ" id="sK4bMF0MAh+0tf*O{3ae"> <value name="X"> <block type="math_number" id="65nb-LkXz=*}N~0}^PC`"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="SY=bi]hJg6)k`0:|=-KI"> <field name="NUM">10</field> </block> </value> <value name="Z"> <block type="math_number" id="[%PDw`5zL3mHZ5pZQxGC"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="ADD1"> <block type="bitbybit.point.pointXYZ" id="8o5wwPy:8OR-HTs1rM#m"> <value name="X"> <block type="bitbybit.point.getX" id="V8W-~[yDrw(m-+b!~wzU"> <value name="Point"> <block type="variables_get" id="lJ;;xcqU1VaUVxW,XFIB"> <field name="VAR" id="1IeB*p@O]}=y-xmv^/P:">point2</field> </block> </value> </block> </value> <value name="Y"> <block type="math_number" id="q9@z;Vasxe|LHQfdAHgw"> <field name="NUM">14</field> </block> </value> <value name="Z"> <block type="bitbybit.point.getZ" id="Zm#FX=f%Zm.pEQV)hRx!"> <value name="Point"> <block type="variables_get" id="kN+Rt`y2H]vx@VD!MNt0"> <field name="VAR" id="1IeB*p@O]}=y-xmv^/P:">point2</field> </block> </value> </block> </value> </block> </value> <value name="ADD2"> <block type="bitbybit.point.pointXYZ" id="a+t+0Z?xvne$lFyC7-94"> <value name="X"> <block type="bitbybit.point.getX" id="CjR]!*cZp#GS0#~E+cY("> <value name="Point"> <block type="variables_get" id="8HZjNSBYqWeoDT%/apKO"> <field name="VAR" id="5/;~?2:]@xKw*P}lAY5w">point3</field> </block> </value> </block> </value> <value name="Y"> <block type="math_number" id="d--!:vvXe5BB|U4v*xW$"> <field name="NUM">14</field> </block> </value> <value name="Z"> <block type="bitbybit.point.getZ" id="00m]Q:L6Aq.I!{Y%t[N."> <value name="Point"> <block type="variables_get" id="+Q]%fy~kG^Pi$:RD}Dop"> <field name="VAR" id="5/;~?2:]@xKw*P}lAY5w">point3</field> </block> </value> </block> </value> </block> </value> </block> </value> </block> </value> </block> </value> <value name="MakeSolid"> <block type="logic_boolean" id="z$:C/mBwz2dI,J)PcAz~"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <next> <block type="variables_set" id="$opg7[_.DtZ{YgxQ)1]j"> <field name="VAR" id="%5(}p*ezX1vn+ub0o0,%">filletBase</field> <value name="VALUE"> <block type="bitbybit.occt.fillets.filletEdges" id="T/aQ-P#YyWRsf@am}atD"> <value name="Shape"> <block type="bitbybit.occt.booleans.difference" id="hI$OUYCHd_scKg=GR[0L"> <value name="Shape"> <block type="variables_get" id="U.Lvm+:aQ*menkx~XTE."> <field name="VAR" id="]3~JKnFIby15=7ESrBhf">loft</field> </block> </value> <value name="Shapes"> <block type="lists_create_with" id="+hN=VzSb:-o^t/}_3whw"> <mutation items="1"> </mutation> <value name="ADD0"> <block type="bitbybit.occt.operations.extrude" id="N]2exQ~D$gY:DlF-6h]%"> <value name="Shape"> <block type="bitbybit.occt.shapes.face.createFaceFromWire" id=",a}qR1Dg9QrUqWlwa;/s"> <value name="Shape"> <block type="bitbybit.occt.operations.offset" id="B|hZnS1nv$T3C^Q}!8S9"> <value name="Shape"> <block type="variables_get" id="G/e,i$e#QHAB:i_E+}cV"> <field name="VAR" id="t#=dA;N03:z2G`d$k8F7">baseTriangle</field> </block> </value> <value name="Distance"> <block type="math_number" id="WSbvys4|ma2rZ5Q%QZ`R"> <field name="NUM">-1.5</field> </block> </value> <value name="Tolerance"> <block type="math_number" id="bm#e8B5}cS=/ns$n_x8t"> <field name="NUM">0.00001</field> </block> </value> </block> </value> <value name="Planar"> <block type="logic_boolean" id="r%b)3V75];C$q4(kuB?/"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <value name="Direction"> <block type="bitbybit.point.pointXYZ" id="8d~nIj?-_^HOd(rbujCP"> <value name="X"> <block type="math_number" id="M|0C}i];I*Scjg$37$VH"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="N`[0EMx3?TUQcZX4LhGJ"> <field name="NUM">50</field> </block> </value> <value name="Z"> <block type="math_number" id="1#q-Ddc?Z/;Gs|9o^%s9"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> </block> </value> <value name="KeepEdges"> <block type="logic_boolean" id="L$_Uq#4=4QofpoN5dNi^"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="Radius"> <block type="math_number" id="Bek%.tWu`$1!)mLiCnwO"> <field name="NUM">0.6</field> </block> </value> </block> </value> <next> <block type="variables_set" id="]WBm|4CbYES!fcs?@NF%"> <field name="VAR" id="B}dlS./rL5]0g#xOiT[=">chamferEdgeIndexes</field> <value name="VALUE"> <block type="lists_create_with" id="oKWtO-yah$;);Hq_Ee1d"> <mutation items="3"> </mutation> <value name="ADD0"> <block type="math_number" id=":bfGD^me*16oEUhGDetW"> <field name="NUM">15</field> </block> </value> <value name="ADD1"> <block type="math_number" id=",.u~uWXVv0Z/j#(U+$uV"> <field name="NUM">12</field> </block> </value> <value name="ADD2"> <block type="math_number" id="4#zK{U=dh$v$^[!Z+,~M"> <field name="NUM">3</field> </block> </value> </block> </value> <next> <block type="variables_set" id=")-7v1-B=YfFx4BjU[~}$"> <field name="VAR" id="E#ZK7*u*s/T05?Ar81uE">chamferGlass</field> <value name="VALUE"> <block type="bitbybit.occt.fillets.chamferEdges" id="0Ou_%MEs4Y5hgWBp09(U"> <value name="Shape"> <block type="bitbybit.occt.operations.extrude" id="eUV+^94T2zd=x{P.M!:q"> <value name="Shape"> <block type="bitbybit.occt.shapes.face.createFaceFromWire" id="nldFH::01.fr]/D,a1ZV"> <value name="Shape"> <block type="bitbybit.occt.shapes.wire.getWire" id="oWx%/4H/,Pj{#G,Sm!j@"> <value name="Shape"> <block type="variables_get" id="CZ37j}%XxPz(}J~[:[(9"> <field name="VAR" id="%5(}p*ezX1vn+ub0o0,%">filletBase</field> </block> </value> <value name="Index"> <block type="math_number" id="}nLKxYTOKCWtOeQ+3L}Q"> <field name="NUM">14</field> </block> </value> </block> </value> <value name="Planar"> <block type="logic_boolean" id="{J*$!,tKK3Ls0y,G)+10"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="Direction"> <block type="bitbybit.point.pointXYZ" id="ilj-x)g-):Xwx)mUP*8n"> <value name="X"> <block type="math_number" id="X0elynbqp.~@LN:fT9iz"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id=":v9LGfz*T_!AH]V_a=V/"> <field name="NUM">1</field> </block> </value> <value name="Z"> <block type="math_number" id="E}MiY6`Cic(=iMI`gm_~"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> <value name="Distance"> <block type="math_number" id="c78`oVl-X6t]n}`;k}YB"> <field name="NUM">0.5</field> </block> </value> <value name="Indexes"> <block type="variables_get" id="b6d,%A2*X7YzM(8l;(64"> <field name="VAR" id="B}dlS./rL5]0g#xOiT[=">chamferEdgeIndexes</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id="=Fz6V|+jf:O)J3jMX(ln" x="-2822" y="-537"> <field name="NAME">rotateTriangleToHexagons</field> <comment pinned="false" h="80" w="160">Describe this function...</comment> <statement name="STACK"> <block type="variables_set" id="YD]L!v9fK~haQ6/`8,R;"> <field name="VAR" id="L^*nFd$$-XqdXoKks6MG">hexagonGlass</field> <value name="VALUE"> <block type="lists_create_with" id="MW}itN1UeooiwDzR)j8t"> <mutation items="0"> </mutation> </block> </value> <next> <block type="variables_set" id="3)l+]bGi:NUV*:dhzQ[A"> <field name="VAR" id="m;we^sq=tw]*PAEpOa1=">hexagonBase</field> <value name="VALUE"> <block type="lists_create_with" id="K=ZRvwLw=6EZ*lXIdrrK"> <mutation items="0"> </mutation> </block> </value> <next> <block type="variables_set" id="lc|`UCh7L4Mh^4LcHv{C"> <field name="VAR" id="!0p6ApRy`{K@6$_|`LSU">hexagonGlassOnSrf</field> <value name="VALUE"> <block type="lists_create_with" id="7kru!7`(K6T/9lJHE4Gg"> <mutation items="0"> </mutation> </block> </value> <next> <block type="variables_set" id="Czevlw3GEr+)Fmn=(JwQ"> <field name="VAR" id="h(45Hn~+gx0.6%Q8o}#~">hexagonBaseOnSrf</field> <value name="VALUE"> <block type="lists_create_with" id="Jp/2T6@X{s!7LK?=R*/X"> <mutation items="0"> </mutation> </block> </value> <next> <block type="controls_for" id="G.KqQnaP.cTP[He}Ghn#"> <field name="VAR" id="JMa2`*NQ}|rl)i:Gc.ax">i</field> <value name="FROM"> <block type="math_number" id="N27VHI-Xrtr#vPlq`Ts3"> <field name="NUM">60</field> </block> </value> <value name="TO"> <block type="math_number" id="MeH*oMR5~[aoODs,#q]U"> <field name="NUM">300</field> </block> </value> <value name="BY"> <block type="math_number" id="Q![t3gW?[FAH?2@/v`~("> <field name="NUM">60</field> </block> </value> <statement name="DO"> <block type="lists_setIndex" id="*c8*_ry=B*5E0.%9zn@/"> <mutation at="false"> </mutation> <field name="MODE">INSERT</field> <field name="WHERE">LAST</field> <value name="LIST"> <block type="variables_get" id="e@]A~~U?qdHKGGTLfX0."> <field name="VAR" id="L^*nFd$$-XqdXoKks6MG">hexagonGlass</field> </block> </value> <value name="TO"> <block type="bitbybit.occt.transforms.rotate" id="lt*w^}.8S$ucCbA0-3L}"> <value name="Shape"> <block type="variables_get" id="o)0;e,n]!ZVWdOPldyqS"> <field name="VAR" id="E#ZK7*u*s/T05?Ar81uE">chamferGlass</field> </block> </value> <value name="Axis"> <block type="bitbybit.point.pointXYZ" id="I]5i_)]a)Zc^aF9!vA%1"> <value name="X"> <block type="math_number" id="0vMFy=,~O,I;gWL6n.)6"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="%gxeXtAy(K||4z6.EhCR"> <field name="NUM">1</field> </block> </value> <value name="Z"> <block type="math_number" id="?CT~@$aK(r:]9+|h3cV="> <field name="NUM">0</field> </block> </value> </block> </value> <value name="Angle"> <block type="variables_get" id="A)eh;o#Sr*aWac4@y|z@"> <field name="VAR" id="JMa2`*NQ}|rl)i:Gc.ax">i</field> </block> </value> </block> </value> </block> </statement> <next> <block type="controls_for" id="HOtSZg0LyuVPD;}]$:}c"> <field name="VAR" id="$x1qy{t}ng8GQ*x0E5OX">j</field> <value name="FROM"> <block type="math_number" id="VX@YXR9Sgcvk1AAcGS@s"> <field name="NUM">60</field> </block> </value> <value name="TO"> <block type="math_number" id="|6JEENDt^g2q#?6#REwC"> <field name="NUM">300</field> </block> </value> <value name="BY"> <block type="math_number" id="d0:`s%PWM-MicbXx$dYB"> <field name="NUM">60</field> </block> </value> <statement name="DO"> <block type="lists_setIndex" id="?@#j/PqKmN%Un~m+[_4B"> <mutation at="false"> </mutation> <field name="MODE">INSERT</field> <field name="WHERE">LAST</field> <value name="LIST"> <block type="variables_get" id="jOFY!5Sn:KT]HF]|suLY"> <field name="VAR" id="m;we^sq=tw]*PAEpOa1=">hexagonBase</field> </block> </value> <value name="TO"> <block type="bitbybit.occt.transforms.rotate" id="F4gF2Fu].Uhq9q26EH~0"> <value name="Shape"> <block type="variables_get" id="kRM4ntux;l+De=?/4_MI"> <field name="VAR" id="%5(}p*ezX1vn+ub0o0,%">filletBase</field> </block> </value> <value name="Axis"> <block type="bitbybit.point.pointXYZ" id="=Uwr5qq.fbD@8T`+ma-{"> <value name="X"> <block type="math_number" id="_MBg_r]Mr!}A#/W9wuVA"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="O%%rHT@qQCKCd^K/ZS@$"> <field name="NUM">1</field> </block> </value> <value name="Z"> <block type="math_number" id="eT:J6v?I+K.)u-TzOZ@A"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="Angle"> <block type="variables_get" id="4$@:Vyu#}bl`w`u#Cuyf"> <field name="VAR" id="$x1qy{t}ng8GQ*x0E5OX">j</field> </block> </value> </block> </value> </block> </statement> <next> <block type="controls_for" id="|]2QmzVux5HbtV1i8UBE"> <field name="VAR" id="JMa2`*NQ}|rl)i:Gc.ax">i</field> <value name="FROM"> <block type="math_number" id="FLQJ;ZebSW`YoA.{_|nl"> <field name="NUM">0</field> </block> </value> <value name="TO"> <block type="math_number" id="`?vQ{IWZ_++FbE]@/O,+"> <field name="NUM">300</field> </block> </value> <value name="BY"> <block type="math_number" id="@Uo*a7R)I~1*f;/dk,W4"> <field name="NUM">60</field> </block> </value> <statement name="DO"> <block type="lists_setIndex" id="F=VO5up^^9E*oU/^G4q?"> <mutation at="false"> </mutation> <field name="MODE">INSERT</field> <field name="WHERE">LAST</field> <value name="LIST"> <block type="variables_get" id="P1;JJrzw!Ow^1v@@rCDB"> <field name="VAR" id="!0p6ApRy`{K@6$_|`LSU">hexagonGlassOnSrf</field> </block> </value> <value name="TO"> <block type="bitbybit.occt.transforms.rotate" id="wKb*A[a(mEB(j5L_:~i`"> <value name="Shape"> <block type="variables_get" id="}%pWx._QN};rp5g9MZiN"> <field name="VAR" id="E#ZK7*u*s/T05?Ar81uE">chamferGlass</field> </block> </value> <value name="Axis"> <block type="bitbybit.point.pointXYZ" id="x!!nuN22lSUKI:mB7Ll."> <value name="X"> <block type="math_number" id="xuYg1$$x9}GmIL,X[5i]"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="~2L[~~VggNsTG~{Q1%wt"> <field name="NUM">1</field> </block> </value> <value name="Z"> <block type="math_number" id=".)_Z0I$*l~O^Lu)v$Vbd"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="Angle"> <block type="variables_get" id="tC-}XYb)mN{9]0-67:zR"> <field name="VAR" id="JMa2`*NQ}|rl)i:Gc.ax">i</field> </block> </value> </block> </value> </block> </statement> <next> <block type="controls_for" id="GQ/9~rIv^#oMpe?50nG/"> <field name="VAR" id="$x1qy{t}ng8GQ*x0E5OX">j</field> <value name="FROM"> <block type="math_number" id="p{Zc+|Au5o04)aFgo1lh"> <field name="NUM">0</field> </block> </value> <value name="TO"> <block type="math_number" id="-0d@cL=:K(l{C^(TB#a["> <field name="NUM">300</field> </block> </value> <value name="BY"> <block type="math_number" id=".B5/:$:}}WImtHDMPAf1"> <field name="NUM">60</field> </block> </value> <statement name="DO"> <block type="lists_setIndex" id="1N{~s!dn~[aMIkQOzCIR"> <mutation at="false"> </mutation> <field name="MODE">INSERT</field> <field name="WHERE">LAST</field> <value name="LIST"> <block type="variables_get" id="nrSI2_80G)UI$mT`vx,p"> <field name="VAR" id="h(45Hn~+gx0.6%Q8o}#~">hexagonBaseOnSrf</field> </block> </value> <value name="TO"> <block type="bitbybit.occt.transforms.rotate" id="3-bYe/[d(Swu6vlM(!*v"> <value name="Shape"> <block type="variables_get" id="]fo%aS#Kh!^c(gv=SC%8"> <field name="VAR" id="%5(}p*ezX1vn+ub0o0,%">filletBase</field> </block> </value> <value name="Axis"> <block type="bitbybit.point.pointXYZ" id="(ir=Zc6*/PG+3#Q3yhU`"> <value name="X"> <block type="math_number" id="eArcS-z|=z$j8@qQv?sf"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="SeR6asjAd9V|U#..}%Zm"> <field name="NUM">1</field> </block> </value> <value name="Z"> <block type="math_number" id=")D?V^XbNf51m]MKAy_}R"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="Angle"> <block type="variables_get" id="%s#@@MLeaA]RRbiSy|%Q"> <field name="VAR" id="$x1qy{t}ng8GQ*x0E5OX">j</field> </block> </value> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id="|}k[%}O)?E_^`_42lf5*" x="-1930" y="-544"> <field name="NAME">createAndDrawGround</field> <comment pinned="false" h="80" w="160">Describe this function...</comment> <statement name="STACK"> <block type="variables_set" id="yMI#}zz,,oQNtUn9M^Ft"> <field name="VAR" id="_tmj52.^)E~]![ZE4DgW">drawnGround</field> <value name="VALUE"> <block type="procedures_callreturn" id="|Bpbf{XXSrjSb44X4uQ4"> <mutation name="drawOcctShape"> <arg name="shape"> </arg> <arg name="faceColour"> </arg> <arg name="faceOpacity"> </arg> <arg name="precision"> </arg> </mutation> <value name="ARG0"> <block type="bitbybit.occt.transforms.translate" id="VOCHwD$|KPL3}d!h|4?R"> <value name="Shape"> <block type="bitbybit.occt.shapes.solid.createBox" id="Ko3;}OqU7@)BV6}r-5pC"> <value name="Width"> <block type="math_number" id="$I:d9|IQ_uh(qDDzBC~p"> <field name="NUM">500</field> </block> </value> <value name="Length"> <block type="math_number" id="@)([tV1gs);*H.p{fqWH"> <field name="NUM">500</field> </block> </value> <value name="Height"> <block type="math_number" id="(03@]ZZ58D;M7:E:x-4n"> <field name="NUM">1</field> </block> </value> <value name="Center"> <block type="bitbybit.point.pointXYZ" id="qp#=x|2DI=j!^+2HGGRq"> <value name="X"> <block type="math_number" id="^c`JDIybfkqr|KyPrvLa"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="l4ba;Y%{gf%;4*#j~_Xz"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_number" id="[M6M~fC{;qbT?1*AinC-"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> <value name="Translation"> <block type="bitbybit.point.pointXYZ" id="|)U~V$Jk9p6Mf.b~=G6G"> <value name="X"> <block type="math_number" id="t}Ar)sEkQz2UWK[::WiX"> <field name="NUM">125</field> </block> </value> <value name="Y"> <block type="math_number" id="n06]2zmA#!)U7^20ulYZ"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_number" id="W/-Hu|#vAy]POBeur-[e"> <field name="NUM">125</field> </block> </value> </block> </value> </block> </value> <value name="ARG1"> <block type="colour_picker" id="KwW4!*:}(}:!1.;$#f2N"> <field name="COLOUR">#000000</field> </block> </value> <value name="ARG2"> <block type="math_number" id="c2|$v9}TX;(G**[~8Vea"> <field name="NUM">0.99</field> </block> </value> <value name="ARG3"> <block type="math_number" id="rycqWT_6y|z(.$zB:~/}"> <field name="NUM">0.5</field> </block> </value> </block> </value> </block> </statement> </block> <block type="procedures_defnoreturn" id="{RyY+!Ea2ZH?E5+0*0Ju" x="-1023" y="-524"> <field name="NAME">drawOptimizedMeshInstances</field> <comment pinned="false" h="80" w="160">Describe this function...</comment> <statement name="STACK"> <block type="variables_set" id="bJ6EzN(L;{Zph_6m?#|2"> <field name="VAR" id="P=|){?hEsDq=EBy5/n3b">movedPointsForTops</field> <value name="VALUE"> <block type="bitbybit.point.transformPoints" id="{b(IdYR}d;GIdu:L;5X8"> <value name="Points"> <block type="variables_get" id="WC!%nfK4.JW[Wef@.(5e"> <field name="VAR" id=":1*%s_jb6mlTX^IXip?q">pointsOnSurface</field> </block> </value> <value name="Transformation"> <block type="bitbybit.babylon.transforms.translationXYZ" id="sg9o!8#a=]Pt#Kp.prP*"> <value name="Translation"> <block type="bitbybit.vector.vectorXYZ" id="u_FG_aa-0$+HC%$(1=QG"> <value name="X"> <block type="math_number" id="wYD^1%InZ0LpH,fWJr`-"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="UY(50Ou4B6TW[xJ5K]qb"> <field name="NUM">15</field> </block> </value> <value name="Z"> <block type="math_number" id="Sbyb5pf|vZH1B6ER+L{`"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> </block> </value> <next> <block type="base_time_async_context" id="!`=-Px`5rlv)9y`Su$6{"> <statement name="Then"> <block type="variables_set" id="YkmMs4?5b2jhNf{^t8Q%"> <field name="VAR" id="my|Y~G+Aib^EEpdRR;id">bulbBoxMesh</field> <value name="VALUE"> <block type="base_time_await_return" id="w=BQ][7asl+CXiG`oR}m"> <value name="Promise"> <block type="variables_get" id="{:h7?7K}GNOVs%baW!4}"> <field name="VAR" id="at.4_1NUcO=e%+/pU)}H">bulbBox</field> </block> </value> </block> </value> <next> <block type="controls_forEach" id=";l~Y%o:+7J2|h2.q`SFd"> <field name="VAR" id="C_l,t!QA]Z!c2*(=tr}3">n</field> <value name="LIST"> <block type="variables_get" id="%}uC-7NQDGZGttD(n/4l"> <field name="VAR" id="P=|){?hEsDq=EBy5/n3b">movedPointsForTops</field> </block> </value> <statement name="DO"> <block type="bitbybit.babylon.mesh.createMeshInstanceAndTransformNoReturn" id="Z*mVUUYlCpesHp#zp@r|"> <value name="Mesh"> <block type="variables_get" id="xkCX1QLhoMYZ[-vc`Vx."> <field name="VAR" id="my|Y~G+Aib^EEpdRR;id">bulbBoxMesh</field> </block> </value> <value name="Position"> <block type="variables_get" id="N2m]Lf^,rT/{McQ0XZ@#"> <field name="VAR" id="C_l,t!QA]Z!c2*(=tr}3">n</field> </block> </value> <value name="Rotation"> <block type="bitbybit.point.pointXYZ" id="60*!kN]v$-Hh6.BaSnw("> <value name="X"> <block type="math_number" id="a1-$MkLg+F`k#Yzf`YX,"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="s7vSk6W-k%Nl;,Hue`lH"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_number" id="T/cTj_^pPCfAf?+~p=83"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="Scaling"> <block type="bitbybit.point.pointXYZ" id="09Am%t]yrL)kRd+U6Tfn"> <value name="X"> <block type="math_number" id="C23h}Kr;_e0!IVp$UE*V"> <field name="NUM">1</field> </block> </value> <value name="Y"> <block type="math_number" id="}IV~,CmepYBOl$c-5zS;"> <field name="NUM">1</field> </block> </value> <value name="Z"> <block type="math_number" id="vL:fwfi`R2.4Fz0?E9Cj"> <field name="NUM">1</field> </block> </value> </block> </value> </block> </statement> </block> </next> </block> </statement> <next> <block type="variables_set" id="yTH39/,K0zCo6M`V9lMk"> <field name="VAR" id="5hRIZ.lOkM97i3[e)8BA">firstTime</field> <value name="VALUE"> <block type="logic_boolean" id="G^u2,B9_Jh,Lm6q3^P7w"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="base_time_async_context" id="?81lm`|^MJYy[[syq@Q#"> <statement name="Then"> <block type="variables_set" id="F5AP|tZ.Y.Igof@X{d@F"> <field name="VAR" id="^O5PHAYPIZj:)XeB8~o{">glassGroupCompoundMesh</field> <value name="VALUE"> <block type="base_time_await_return" id="%jrbyJ:RHP:8{KZMC-*P"> <value name="Promise"> <block type="variables_get" id="6~::M#@9*mtZ}YSu.[)W"> <field name="VAR" id="qtMp~e:nxaN%`VwUR|gC">glassGroupCompound</field> </block> </value> </block> </value> <next> <block type="variables_set" id="@/~AF,|uk3y|u6|qE_R`"> <field name="VAR" id="k*f._K?3rpWKa~1^%9ih">baseGroupCompoundMesh</field> <value name="VALUE"> <block type="base_time_await_return" id="p|w.qhJo?fCJ!?=XZ|@4"> <value name="Promise"> <block type="variables_get" id="$,/h=5E`o;%#85CYVZUR"> <field name="VAR" id="dABBv7*ou}Uu625}QhUl">baseGroupCompound</field> </block> </value> </block> </value> <next> <block type="controls_forEach" id="*x]8w;/K/E]~`qJS^%CI"> <field name="VAR" id="F/d7r%}[z-=4Hy-G.Pbp">k</field> <value name="LIST"> <block type="variables_get" id="{F=^Fl/Pr!;,(;YO(%{`"> <field name="VAR" id=":1*%s_jb6mlTX^IXip?q">pointsOnSurface</field> </block> </value> <statement name="DO"> <block type="controls_if" id="NjOQ`KWe;_riZbdOTu@r"> <value name="IF0"> <block type="logic_negate" id="!H.BhlMF~{*Ag]U:VHpk"> <value name="BOOL"> <block type="variables_get" id="h8:|?ncxFspjCoXR;wR6"> <field name="VAR" id="5hRIZ.lOkM97i3[e)8BA">firstTime</field> </block> </value> </block> </value> <statement name="DO0"> <block type="bitbybit.babylon.mesh.createMeshInstanceAndTransformNoReturn" id="+o2`?(_(sHAd3S6,5BrI"> <value name="Mesh"> <block type="variables_get" id="S;R9o/I@amXu;Ud7CvFM"> <field name="VAR" id="^O5PHAYPIZj:)XeB8~o{">glassGroupCompoundMesh</field> </block> </value> <value name="Position"> <block type="variables_get" id=":`%k^Z,|#[6g5j8p7y,c"> <field name="VAR" id="F/d7r%}[z-=4Hy-G.Pbp">k</field> </block> </value> <value name="Rotation"> <block type="bitbybit.point.pointXYZ" id="+MdNvy=U$KNdLEkrCbv:"> <value name="X"> <block type="math_number" id="2N,{xiLp40hWD9jtPwvj"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="xolQj8gdiZ.!8xK,G!+s"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_number" id="lYWy,ep3k81@RX%SKQBt"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="Scaling"> <block type="bitbybit.point.pointXYZ" id="fxY1ZS);HZR.Y#=sv+gE"> <value name="X"> <block type="math_number" id="3mvcjg8_Dh(Hfj#;gFxi"> <field name="NUM">1</field> </block> </value> <value name="Y"> <block type="math_number" id="gcu_;PM*IcUFTwhVkU6-"> <field name="NUM">1</field> </block> </value> <value name="Z"> <block type="math_number" id="9)GA~4B?YE);(qop@VKX"> <field name="NUM">1</field> </block> </value> </block> </value> <next> <block type="bitbybit.babylon.mesh.createMeshInstanceAndTransformNoReturn" id="=[rx0-W@/gbB%z+{BJrS"> <value name="Mesh"> <block type="variables_get" id="bt%*(WeswFz:5iXBXiCD"> <field name="VAR" id="k*f._K?3rpWKa~1^%9ih">baseGroupCompoundMesh</field> </block> </value> <value name="Position"> <block type="variables_get" id="%[uy9_=?j7i/0=GjdHx5"> <field name="VAR" id="F/d7r%}[z-=4Hy-G.Pbp">k</field> </block> </value> <value name="Rotation"> <block type="bitbybit.point.pointXYZ" id="5Y_jvFLv$gtoTtY#X9G3"> <value name="X"> <block type="math_number" id="XW`iGk}p^n;O|d8kXYJ0"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="4?A4xfgky=nn9*vg*);g"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_number" id="/i/N-_q.AL0YlXOyDnGn"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="Scaling"> <block type="bitbybit.point.pointXYZ" id="H!%SaX`HEfmj{E]wf(3("> <value name="X"> <block type="math_number" id="TDOb9,r,J8vt`[aF0N8@"> <field name="NUM">1</field> </block> </value> <value name="Y"> <block type="math_number" id="B|x~1d1Pri3_Zz@QZa{3"> <field name="NUM">1</field> </block> </value> <value name="Z"> <block type="math_number" id="Rl@%l;o:Uq(LDPc:KiOv"> <field name="NUM">1</field> </block> </value> </block> </value> </block> </next> </block> </statement> <next> <block type="variables_set" id="S.3{.~cmg9qieo@BtbW~"> <field name="VAR" id="5hRIZ.lOkM97i3[e)8BA">firstTime</field> <value name="VALUE"> <block type="logic_boolean" id="C#?BWGY+t$sR@I!0psoy"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id="b^Y%R4lH9~,Z4RKgv74." x="-5941" y="532"> <field name="NAME">makeHexGridAndVerticalLinesForIntersection</field> <comment pinned="false" h="80" w="160">Describe this function...</comment> <statement name="STACK"> <block type="variables_set" id="c#kJ;C3)uqb;T^/tn@yM"> <field name="VAR" id="*@zwFl?f~xJj7m:}u0LO">hexGridNrX</field> <value name="VALUE"> <block type="math_number" id="3M7F*|t?i8p$AO+:{?_="> <field name="NUM">6</field> </block> </value> <next> <block type="variables_set" id="0HqXNxp@Smk^^D$b[N8]"> <field name="VAR" id="Em0l*h`=,-xuV42;Jzt8">hexGridNrY</field> <value name="VALUE"> <block type="math_number" id="G;=|^)?)r_eUpr4STbFa"> <field name="NUM">7</field> </block> </value> <next> <block type="variables_set" id="]ar-~Pc))3s{krU={lK_"> <field name="VAR" id="ibE`Uhb2`rE^/8i=7@VE">hexGridPoints</field> <value name="VALUE"> <block type="bitbybit.point.transformPoints" id="Ato?WGkW8pg//vBPP@JE"> <value name="Points"> <block type="bitbybit.point.hexGrid" id="I1}WH([sQ022cinN_9KQ"> <value name="NrHexagonsY"> <block type="variables_get" id="jWEVVY$x424ARc7H}Pd1"> <field name="VAR" id="Em0l*h`=,-xuV42;Jzt8">hexGridNrY</field> </block> </value> <value name="NrHexagonsX"> <block type="variables_get" id="/v:08pgKygD9|ytkFWF1"> <field name="VAR" id="*@zwFl?f~xJj7m:}u0LO">hexGridNrX</field> </block> </value> <value name="RadiusHexagon"> <block type="variables_get" id="lDaN{)o./9BbnRcH}xv;"> <field name="VAR" id="RTBglAnS1@9+0]h3}7Mk">length</field> </block> </value> </block> </value> <value name="Transformation"> <block type="bitbybit.babylon.transforms.rotationCenterX" id="T8?j[g6cK/FQTLgu_e@-"> <value name="Angle"> <block type="math_number" id="#1r`@!2ngSSH?I:W;a1x"> <field name="NUM">90</field> </block> </value> <value name="Center"> <block type="bitbybit.vector.vectorXYZ" id="U]r!sgY;A/Jg|3Bc_Iva"> <value name="X"> <block type="math_number" id="e_nFTnZ)@;Fdb)DnXS!Z"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="GMIf}SYSpd}!(l;B;pO!"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_number" id="SPU}oZxX4BTbL{WjuHk6"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="|?PN@Z3.)X1Na9#0E}Jb"> <field name="VAR" id=".:lEfGx]982[{A_Flu?{">hexGridPointsMoved</field> <value name="VALUE"> <block type="bitbybit.point.transformPoints" id="V^+aR)z@qG#YDqcJf9Q3"> <value name="Points"> <block type="variables_get" id="G9je_#jhFB^6;XG9yIYd"> <field name="VAR" id="ibE`Uhb2`rE^/8i=7@VE">hexGridPoints</field> </block> </value> <value name="Transformation"> <block type="bitbybit.babylon.transforms.translationXYZ" id="ky:e5ahoijASBk={%Hef"> <value name="Translation"> <block type="bitbybit.vector.vectorXYZ" id="I39GdtEp(G.}[14H?h`6"> <value name="X"> <block type="math_number" id="PK*#YA.8N2T{Tg^,upGV"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="qASB.+F3z[m}vq^iGGRl"> <field name="NUM">100</field> </block> </value> <value name="Z"> <block type="math_number" id="G:X#d}#G*+?@$$kL|.]c"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="|wIysM2*4hhxYTgggPGq"> <field name="VAR" id="W$l5QY6N?h-b5NX]n}WV">linesForIntersection</field> <value name="VALUE"> <block type="bitbybit.line.linesBetweenStartAndEndPoints" id="/[tR{K7m%[7~2W.(TY$["> <value name="StartPoints"> <block type="variables_get" id="DyWC.2:%T_mg3i#y7_Js"> <field name="VAR" id="ibE`Uhb2`rE^/8i=7@VE">hexGridPoints</field> </block> </value> <value name="EndPoints"> <block type="variables_get" id="}MW+KTi@IlVznL?gb.Es"> <field name="VAR" id=".:lEfGx]982[{A_Flu?{">hexGridPointsMoved</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id="1KB!z){-AE@(S/9IFRP[" x="-3488" y="1106"> <field name="NAME">createCompoundMeshesForDrawing</field> <comment pinned="false" h="80" w="160">Describe this function...</comment> <statement name="STACK"> <block type="variables_set" id="C@aEedb!d.fzrJ/9J}r_"> <field name="VAR" id="qtMp~e:nxaN%`VwUR|gC">glassGroupCompound</field> <value name="VALUE"> <block type="procedures_callreturn" id="F8?evoq[a`{7y~ddqC^B"> <mutation name="drawOcctShape"> <arg name="shape"> </arg> <arg name="faceColour"> </arg> <arg name="faceOpacity"> </arg> <arg name="precision"> </arg> </mutation> <value name="ARG0"> <block type="bitbybit.occt.shapes.compound.makeCompound" id="_~C:;.jO#Y1pb`hL^8Ql"> <value name="Shapes"> <block type="variables_get" id="~IIU]MEmmSq;B:6]cb[="> <field name="VAR" id="!0p6ApRy`{K@6$_|`LSU">hexagonGlassOnSrf</field> </block> </value> </block> </value> <value name="ARG1"> <block type="colour_picker" id="?kmgc7@:^^!##Ao!p~bC"> <field name="COLOUR">#ffcc33</field> </block> </value> <value name="ARG2"> <block type="math_number" id="7:HugSS]X7$~sbdYfd7B"> <field name="NUM">0.3</field> </block> </value> <value name="ARG3"> <block type="math_number" id="UScAF)*]fjz{5-.snI^h"> <field name="NUM">40</field> </block> </value> </block> </value> <next> <block type="variables_set" id="kS=z]ZWu2zM8Iuh*U,m7"> <field name="VAR" id="dABBv7*ou}Uu625}QhUl">baseGroupCompound</field> <value name="VALUE"> <block type="procedures_callreturn" id="u~eX@L7m5,4Szj(.s57I"> <mutation name="drawOcctShape"> <arg name="shape"> </arg> <arg name="faceColour"> </arg> <arg name="faceOpacity"> </arg> <arg name="precision"> </arg> </mutation> <value name="ARG0"> <block type="bitbybit.occt.shapes.compound.makeCompound" id="(!z#fjM-REeZ%A|.|YrT"> <value name="Shapes"> <block type="variables_get" id="aA=Uazq)QgcD;y~n,W}k"> <field name="VAR" id="h(45Hn~+gx0.6%Q8o}#~">hexagonBaseOnSrf</field> </block> </value> </block> </value> <value name="ARG1"> <block type="colour_picker" id="p7-zoCI4lR#/5sOQ:m(~"> <field name="COLOUR">#3366ff</field> </block> </value> <value name="ARG2"> <block type="math_number" id="2^8bHh5#{#jR(zCb=Jwz"> <field name="NUM">1</field> </block> </value> <value name="ARG3"> <block type="math_number" id="R,o9kXI=F:Sh=2_R6lGO"> <field name="NUM">100</field> </block> </value> </block> </value> <next> <block type="variables_set" id="1OSU{BqYujy5ojL_l;3_"> <field name="VAR" id="at.4_1NUcO=e%+/pU)}H">bulbBox</field> <value name="VALUE"> <block type="procedures_callreturn" id="0D=x%EfcCt+o%xff1.$t"> <mutation name="drawOcctShape"> <arg name="shape"> </arg> <arg name="faceColour"> </arg> <arg name="faceOpacity"> </arg> <arg name="precision"> </arg> </mutation> <value name="ARG0"> <block type="bitbybit.occt.shapes.solid.createBox" id="jSH@%zXe]FiNG~dISJhG"> <value name="Width"> <block type="math_number" id="IZ15_*/7e|2l35-a:vUL"> <field name="NUM">1</field> </block> </value> <value name="Length"> <block type="math_number" id="Z54/cp=.QffU4Kq1rxt]"> <field name="NUM">1</field> </block> </value> <value name="Height"> <block type="math_number" id="UNEDI-:^C)uk;,XS?4hd"> <field name="NUM">4</field> </block> </value> <value name="Center"> <block type="bitbybit.point.pointXYZ" id="Jn+1`TTRKzm4V{Yde?mw"> <value name="X"> <block type="math_number" id="r!3f_(x_eiQt^Zw[/FPw"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="V,$E*^:jT+?e}?t$Eh6*"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_number" id="a_jLk}@Kz@[:(/6berQ-"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> <value name="ARG1"> <block type="colour_picker" id="%FIUc7VS]D^XG8@`zjIm"> <field name="COLOUR">#ffffff</field> </block> </value> <value name="ARG2"> <block type="math_number" id="]%yH.$jp199SfE5q/.`8"> <field name="NUM">1</field> </block> </value> <value name="ARG3"> <block type="math_number" id="PZ1kS`diwA@l~7?Q2@_]"> <field name="NUM">30</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_defreturn" id="LoHf^*rbq9a=;d@RlEvT" x="-2473" y="1128"> <mutation> <arg name="shape" varid="4WruCBSlau2%ruGq!04D"> </arg> <arg name="faceColour" varid="en+U|i2=vn%/#3)ye(SD"> </arg> <arg name="faceOpacity" varid="!j+!g5nn:`O9kdtviDLc"> </arg> <arg name="precision" varid=",M+tf-g=1M%qw%s|ZxT)"> </arg> </mutation> <field name="NAME">drawOcctShape</field> <comment pinned="false" h="80" w="160">Describe this function...</comment> <statement name="STACK"> <block type="variables_set" id="bEYI%vmRxWLrf1z@Jp$7"> <field name="VAR" id="CMn7/qoHh~%SLc(|PtQ1">occtShape</field> <value name="VALUE"> <block type="bitbybit.draw.drawAnyAsync" id="pyuo/37cQDQ7Jr5W-}ck"> <value name="Entity"> <block type="variables_get" id="g#[KH+rKA?m^YQ96vXAz"> <field name="VAR" id="4WruCBSlau2%ruGq!04D">shape</field> </block> </value> <value name="Options"> <block type="bitbybit.draw.optionsOcctShape" id=":SqHv?o!1`bSPEV/rMm4"> <value name="FaceOpacity"> <block type="variables_get" id="TR?1SaaoRzV|Mo#*25uO"> <field name="VAR" id="!j+!g5nn:`O9kdtviDLc">faceOpacity</field> </block> </value> <value name="EdgeOpacity"> <block type="math_number" id="dnKGD(ZI,NKzopp4@r}/"> <field name="NUM">1</field> </block> </value> <value name="EdgeColour"> <block type="colour_picker" id="7eKkYPPmzd)g53+6w*wb"> <field name="COLOUR">#bbbbff</field> </block> </value> <value name="FaceColour"> <block type="variables_get" id="=c0B{E87kS?[mrhCP$8b"> <field name="VAR" id="en+U|i2=vn%/#3)ye(SD">faceColour</field> </block> </value> <value name="EdgeWidth"> <block type="math_number" id="rIJG-Y$hA$F/2%PgS13b"> <field name="NUM">2</field> </block> </value> <value name="DrawEdges"> <block type="logic_boolean" id="!WXUcv296X2Su$AThwkz"> <field name="BOOL">FALSE</field> </block> </value> <value name="DrawFaces"> <block type="logic_boolean" id="Glpcy/}(El8P7vpwzFz|"> <field name="BOOL">TRUE</field> </block> </value> <value name="Precision"> <block type="variables_get" id="9o6#XM0[Dght2~6i:Uv2"> <field name="VAR" id=",M+tf-g=1M%qw%s|ZxT)">precision</field> </block> </value> <value name="DrawEdgeIndexes"> <block type="logic_boolean" id="#w[ukJ{Tac4~Mx;n|fK,"> <field name="BOOL">FALSE</field> </block> </value> <value name="EdgeIndexHeight"> <block type="math_number" id="Zb,t,e@Q587%$s_zL?4G"> <field name="NUM">0.06</field> </block> </value> <value name="EdgeIndexColour"> <block type="colour_picker" id="O-ZFXSC+;EU6*/,i1g]j"> <field name="COLOUR">#bbbbff</field> </block> </value> <value name="DrawFaceIndexes"> <block type="logic_boolean" id="*|bp~t?~B~IfE8V,P4ex"> <field name="BOOL">FALSE</field> </block> </value> <value name="FaceIndexHeight"> <block type="math_number" id="W~fUzbKv3bT1eamvv%rh"> <field name="NUM">0.06</field> </block> </value> <value name="FaceIndexColour"> <block type="colour_picker" id="bFCQaMUmBSvXF4=+WJB#"> <field name="COLOUR">#0000ff</field> </block> </value> </block> </value> </block> </value> </block> </statement> <value name="RETURN"> <block type="variables_get" id=";a}4#}maP|k@HKYAJXLx"> <field name="VAR" id="CMn7/qoHh~%SLc(|PtQ1">occtShape</field> </block> </value> </block> <block type="procedures_defnoreturn" id="nEPQ`!^w!Oj]/NpXUhg." x="-5943" y="1316"> <field name="NAME">createNurbsSurfaceForHexGridProjections</field> <comment pinned="false" h="80" w="160">Describe this function...</comment> <statement name="STACK"> <block type="variables_set" id="Q{r{-_Nr$8rI6e0K]EMa"> <field name="VAR" id="tBlJB)v83o3exilg.RS7">nurbsSurface</field> <value name="VALUE"> <block type="bitbybit.verb.surface.transformSurface" id="j@.s(qv]1oFOqi~`B7U!"> <value name="Surface"> <block type="bitbybit.verb.surface.createSurfaceByCorners" id="XE^*mhNL%(t-l~{)F8B%"> <value name="Point1"> <block type="bitbybit.point.transformPoint" id="u$006C!Lm(ZhOxNV]T@*"> <value name="Point"> <block type="lists_getIndex" id="[@AJ9G!E2!zrqyUXU}*r"> <mutation statement="false" at="false"> </mutation> <field name="MODE">GET</field> <field name="WHERE">FIRST</field> <value name="VALUE"> <block type="variables_get" id="=o4R?NgbQrR*}|M^{I-X"> <field name="VAR" id="ibE`Uhb2`rE^/8i=7@VE">hexGridPoints</field> </block> </value> </block> </value> <value name="Transformation"> <block type="bitbybit.babylon.transforms.translationXYZ" id="]GDdfU::#l_=3KfU!]9S"> <value name="Translation"> <block type="bitbybit.vector.vectorXYZ" id="h;=6nV1IC+|;YSgb[i%M"> <value name="X"> <block type="math_number" id="J+?JZS7`c+$#FBOz6Kd["> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="o^{cNVk^00d@+;#e()C("> <field name="NUM">100</field> </block> </value> <value name="Z"> <block type="math_number" id="qcZs;@3.zAYGKTx62glv"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> </block> </value> <value name="Point2"> <block type="bitbybit.point.transformPoint" id="q;VZ?v=Q^nU|4A?zaYsw"> <value name="Point"> <block type="lists_getIndex" id="%BMIqzh{l.vc#WP,gDUl"> <mutation statement="false" at="true"> </mutation> <field name="MODE">GET</field> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="1H70%(G^;|oFUx1KTx9:"> <field name="VAR" id="ibE`Uhb2`rE^/8i=7@VE">hexGridPoints</field> </block> </value> <value name="AT"> <block type="variables_get" id="=yu7a2qbR%d*]^2Ki$mk"> <field name="VAR" id="Em0l*h`=,-xuV42;Jzt8">hexGridNrY</field> </block> </value> </block> </value> <value name="Transformation"> <block type="bitbybit.babylon.transforms.translationXYZ" id="QaRDSqIXm1u_Uh{A{^Y_"> <value name="Translation"> <block type="bitbybit.vector.vectorXYZ" id="Pb{yto-.L_-r3C#KM;qy"> <value name="X"> <block type="math_number" id="9(E8]CNO_U^[R]/s(iTn"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="(@R`jP[AOO@~NA68#?N="> <field name="NUM">50</field> </block> </value> <value name="Z"> <block type="math_number" id="@nn-o[wN6!z1#Du%S*/M"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> </block> </value> <value name="Point3"> <block type="bitbybit.point.transformPoint" id="`iCwYGhbhg=`sqsWwQ{J"> <value name="Point"> <block type="lists_getIndex" id="^FPN6$`%R35pyOe[2yGI"> <mutation statement="false" at="false"> </mutation> <field name="MODE">GET</field> <field name="WHERE">LAST</field> <value name="VALUE"> <block type="variables_get" id="8Sn]S``P!u+hw5}.a7E,"> <field name="VAR" id="ibE`Uhb2`rE^/8i=7@VE">hexGridPoints</field> </block> </value> </block> </value> <value name="Transformation"> <block type="bitbybit.babylon.transforms.translationXYZ" id="Y)G3p{C6OLLJJ8yie[tB"> <value name="Translation"> <block type="bitbybit.vector.vectorXYZ" id="0/2KUxgc[+TNv=%+YoN{"> <value name="X"> <block type="math_number" id="r={+Ae%C+qflh@wt$4:u"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="s(*2}0:BEKhqvmm+gEqG"> <field name="NUM">90</field> </block> </value> <value name="Z"> <block type="math_number" id="zr+p*GP=iF35D;Ipl?5a"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> </block> </value> <value name="Point4"> <block type="bitbybit.point.transformPoint" id="4t1vmosr^$.XV/|zDV3a"> <value name="Point"> <block type="lists_getIndex" id="=Vo^29..!0lzGFZ}H?Fw"> <mutation statement="false" at="true"> </mutation> <field name="MODE">GET</field> <field name="WHERE">FROM_END</field> <value name="VALUE"> <block type="variables_get" id="czx]0%jFXgCOJuof;8gw"> <field name="VAR" id="ibE`Uhb2`rE^/8i=7@VE">hexGridPoints</field> </block> </value> <value name="AT"> <block type="variables_get" id="ynN,i_6g~T-!t_3^DBXB"> <field name="VAR" id="Em0l*h`=,-xuV42;Jzt8">hexGridNrY</field> </block> </value> </block> </value> <value name="Transformation"> <block type="bitbybit.babylon.transforms.translationXYZ" id="23.jDjx~86*Dapg(n3@A"> <value name="Translation"> <block type="bitbybit.vector.vectorXYZ" id=".kk[TPgUskX,`2+vvP[7"> <value name="X"> <block type="math_number" id="NP~ncB?.8Q0VtBTF;Zu!"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="9[I$rl`/oa!%P?Nqok1a"> <field name="NUM">40</field> </block> </value> <value name="Z"> <block type="math_number" id="];h^C-@BkU]e+=0@Z{WA"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> </block> </value> </block> </value> <value name="Transformation"> <block type="lists_create_with" id="+$TZFbcu6nZPQx~j%-N]"> <mutation items="2"> </mutation> <value name="ADD0"> <block type="bitbybit.babylon.transforms.scaleXYZ" id="=.eG9Q0#ho$73=ct/ynw"> <value name="ScaleXyz"> <block type="bitbybit.vector.vectorXYZ" id="3~9G8Ed2-6NuWwKiT03_"> <value name="X"> <block type="math_number" id="kS3dZD|$lF|B+$xU@^i="> <field name="NUM">1.5</field> </block> </value> <value name="Y"> <block type="math_number" id="IYEF:ZU,SXBNu|MCxR($"> <field name="NUM">1</field> </block> </value> <value name="Z"> <block type="math_number" id="8?EikjUP%L.PgeM5ldTh"> <field name="NUM">1.5</field> </block> </value> </block> </value> </block> </value> <value name="ADD1"> <block type="bitbybit.babylon.transforms.translationXYZ" id="W1oJ#ZlZVs@}rPvr)nqZ"> <value name="Translation"> <block type="bitbybit.vector.vectorXYZ" id="+g`TK8XW/cXYKRBiotAy"> <value name="X"> <block type="math_number" id="Uge9;EG;o=xztKF4s:vD"> <field name="NUM">-20</field> </block> </value> <value name="Y"> <block type="math_number" id="Qxjaj$Sa82/6_7A!3*=)"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_number" id="x/4:{WkC6C+,j?69Pi`N"> <field name="NUM">-20</field> </block> </value> </block> </value> </block> </value> </block> </value> </block> </value> </block> </statement> </block> <block type="procedures_defnoreturn" id="kfBt}_BmCFrw$^wRrQ3K" x="-4427" y="1774"> <field name="NAME">higherQualityDrawingOfOCCModel</field> <comment pinned="false" h="80" w="160">Describe this function...</comment> <statement name="STACK"> <block type="bitbybit.draw.drawAnyAsyncNoReturn" id="$+vy)UYtc)}1!R49+xwN"> <value name="Entity"> <block type="bitbybit.occt.transforms.translate" id="m%8NZW^l7n}Wg3X$=)yk"> <value name="Shape"> <block type="bitbybit.occt.shapes.compound.makeCompound" id="4lbG:G):*GZI{}5[R6!1"> <value name="Shapes"> <block type="variables_get" id="PvIPt6@V^T8z|VDE${aW"> <field name="VAR" id="m;we^sq=tw]*PAEpOa1=">hexagonBase</field> </block> </value> </block> </value> <value name="Translation"> <block type="lists_getIndex" id="5mKIBxHfU+mYkFk:$AN}"> <mutation statement="false" at="false"> </mutation> <field name="MODE">GET</field> <field name="WHERE">FIRST</field> <value name="VALUE"> <block type="variables_get" id="l!YaTr86J+6|]qd#ys,R"> <field name="VAR" id=":1*%s_jb6mlTX^IXip?q">pointsOnSurface</field> </block> </value> </block> </value> </block> </value> <value name="Options"> <block type="bitbybit.draw.optionsOcctShape" id="S3xVqkNM|Cbc:{WI+WD5"> <value name="FaceOpacity"> <block type="math_number" id="b1cA)P4|m_aQ!s[|jyBu"> <field name="NUM">0.2</field> </block> </value> <value name="EdgeOpacity"> <block type="math_number" id="qKVc9[89qW%Y*`81LTg6"> <field name="NUM">0.5</field> </block> </value> <value name="EdgeColour"> <block type="colour_picker" id="XqR??(F%$eq5w8Y?HLA}"> <field name="COLOUR">#ffffff</field> </block> </value> <value name="FaceColour"> <block type="colour_picker" id="iAp9#8xlS;8QNWr~$/Y!"> <field name="COLOUR">#cc33cc</field> </block> </value> <value name="EdgeWidth"> <block type="math_number" id="%F_^rBc[8+I/$Ab{Yl`~"> <field name="NUM">5</field> </block> </value> <value name="DrawEdges"> <block type="logic_boolean" id=");[u$Rk5c*ylLBCU1Yre"> <field name="BOOL">TRUE</field> </block> </value> <value name="DrawFaces"> <block type="logic_boolean" id="|!veKL5#?d=fj$+QgR1n"> <field name="BOOL">TRUE</field> </block> </value> <value name="Precision"> <block type="math_number" id="rh^^)xs)QYlk61ZsC4D_"> <field name="NUM">1</field> </block> </value> <value name="DrawEdgeIndexes"> <block type="logic_boolean" id="kxD70SaUYwSw/1%O081~"> <field name="BOOL">FALSE</field> </block> </value> <value name="EdgeIndexHeight"> <block type="math_number" id="$w+|DPD;/_)xK3/6zvLq"> <field name="NUM">0.06</field> </block> </value> <value name="EdgeIndexColour"> <block type="colour_picker" id="5XkW5{9!%i%)KrNtzU0E"> <field name="COLOUR">#bbbbff</field> </block> </value> <value name="DrawFaceIndexes"> <block type="logic_boolean" id="0Z7Kp|W.Y.)~,CVIi7;^"> <field name="BOOL">FALSE</field> </block> </value> <value name="FaceIndexHeight"> <block type="math_number" id="jk)cM^P.rSD/Q/*FyDdO"> <field name="NUM">0.06</field> </block> </value> <value name="FaceIndexColour"> <block type="colour_picker" id=".g4bsCReqIl.{`dRwz-F"> <field name="COLOUR">#0000ff</field> </block> </value> </block> </value> <next> <block type="bitbybit.draw.drawAnyAsyncNoReturn" id="Rw648@6SUP2F.oQ!XOOJ"> <value name="Entity"> <block type="bitbybit.occt.transforms.translate" id="C+BakQ8k#0`A/!t=4$kS"> <value name="Shape"> <block type="variables_get" id="*s-f$}/c{DKp;Os8cSGo"> <field name="VAR" id="%5(}p*ezX1vn+ub0o0,%">filletBase</field> </block> </value> <value name="Translation"> <block type="lists_getIndex" id="`9t*NP0=ek/gBWPYgt_R"> <mutation statement="false" at="false"> </mutation> <field name="MODE">GET</field> <field name="WHERE">FIRST</field> <value name="VALUE"> <block type="variables_get" id="Bn.-TY0`c!|cJn~]}h@Z"> <field name="VAR" id=":1*%s_jb6mlTX^IXip?q">pointsOnSurface</field> </block> </value> </block> </value> </block> </value> <value name="Options"> <block type="bitbybit.draw.optionsOcctShape" id=",zl$)?rVvY#5)k+kHjLS"> <value name="FaceOpacity"> <block type="math_number" id="mhhdOIS9d@pkW]dfrD)l"> <field name="NUM">1</field> </block> </value> <value name="EdgeOpacity"> <block type="math_number" id="OknW^_wlyiAe,qhhsw^X"> <field name="NUM">1</field> </block> </value> <value name="EdgeColour"> <block type="colour_picker" id="QHL@h]29lzUn(awHRRvT"> <field name="COLOUR">#bbbbff</field> </block> </value> <value name="FaceColour"> <block type="colour_picker" id="z/m5ir/]U+RE5f?ge6Bg"> <field name="COLOUR">#993399</field> </block> </value> <value name="EdgeWidth"> <block type="math_number" id="2oj1_/@-!YQ:Pbv7%q!v"> <field name="NUM">2</field> </block> </value> <value name="DrawEdges"> <block type="logic_boolean" id="zG0rT(zoV-`_r*C-S?0M"> <field name="BOOL">TRUE</field> </block> </value> <value name="DrawFaces"> <block type="logic_boolean" id="0X:2hxdaRyonQN*P9KpL"> <field name="BOOL">TRUE</field> </block> </value> <value name="Precision"> <block type="math_number" id="T^1+liL;p]hLXE/m*q83"> <field name="NUM">1</field> </block> </value> <value name="DrawEdgeIndexes"> <block type="logic_boolean" id="/DstrGJtJ`$r_UC;M_I@"> <field name="BOOL">FALSE</field> </block> </value> <value name="EdgeIndexHeight"> <block type="math_number" id="bsH?6}qu5yuJ1{$tSL}Y"> <field name="NUM">0.06</field> </block> </value> <value name="EdgeIndexColour"> <block type="colour_picker" id="H-?1o.Wyp)OwygKDJNt1"> <field name="COLOUR">#bbbbff</field> </block> </value> <value name="DrawFaceIndexes"> <block type="logic_boolean" id=".#Yc7e*E}66j34z?Kowy"> <field name="BOOL">FALSE</field> </block> </value> <value name="FaceIndexHeight"> <block type="math_number" id="0Awwnh_=|%(uHRC@TK_E"> <field name="NUM">0.06</field> </block> </value> <value name="FaceIndexColour"> <block type="colour_picker" id="k3xad4r`{2oi,57kR@ZF"> <field name="COLOUR">#0000ff</field> </block> </value> </block> </value> <next> <block type="bitbybit.draw.drawAnyAsyncNoReturn" id="zEAwA+!NMH`(tgx4/YcW"> <value name="Entity"> <block type="bitbybit.occt.transforms.translate" id="cUz5F#j{Ke,*7o]k@m(;"> <value name="Shape"> <block type="variables_get" id="#5c*T@=Baa)O9P/_qEM7"> <field name="VAR" id="E#ZK7*u*s/T05?Ar81uE">chamferGlass</field> </block> </value> <value name="Translation"> <block type="lists_getIndex" id="7:]hJ0]_+to,j]CR_D8?"> <mutation statement="false" at="false"> </mutation> <field name="MODE">GET</field> <field name="WHERE">FIRST</field> <value name="VALUE"> <block type="variables_get" id="U{%((RZ7!jI-s!*@af!b"> <field name="VAR" id=":1*%s_jb6mlTX^IXip?q">pointsOnSurface</field> </block> </value> </block> </value> </block> </value> <value name="Options"> <block type="bitbybit.draw.optionsOcctShape" id="{OzM}LXt.0IXfvrdG[Ba"> <value name="FaceOpacity"> <block type="math_number" id="?4h1g?zMhp:PX}DQr1,8"> <field name="NUM">0.2</field> </block> </value> <value name="EdgeOpacity"> <block type="math_number" id=",Nu][HhteR%VCXX^5l/["> <field name="NUM">1</field> </block> </value> <value name="EdgeColour"> <block type="colour_picker" id="B7718(JUUVX*aPnxC[5q"> <field name="COLOUR">#bbbbff</field> </block> </value> <value name="FaceColour"> <block type="colour_picker" id="cOjWO-|7dLo(^XMK6V(L"> <field name="COLOUR">#ffcc33</field> </block> </value> <value name="EdgeWidth"> <block type="math_number" id="i+0c3:t:.S%7Q`-(Eg9/"> <field name="NUM">2</field> </block> </value> <value name="DrawEdges"> <block type="logic_boolean" id="E9#;3!ydM)z_hG[s}%!g"> <field name="BOOL">TRUE</field> </block> </value> <value name="DrawFaces"> <block type="logic_boolean" id="G[Gtfwz[..Yr5!WhOU-)"> <field name="BOOL">TRUE</field> </block> </value> <value name="Precision"> <block type="math_number" id="sGY?neaud@x4`H={1A8X"> <field name="NUM">1</field> </block> </value> <value name="DrawEdgeIndexes"> <block type="logic_boolean" id="#r]k4zIo[i1$]$]OLG2y"> <field name="BOOL">FALSE</field> </block> </value> <value name="EdgeIndexHeight"> <block type="math_number" id="I-^ji#.S3TUXY9/D~{_i"> <field name="NUM">0.06</field> </block> </value> <value name="EdgeIndexColour"> <block type="colour_picker" id="ugrl3+8Lx8!9M#be8Ve^"> <field name="COLOUR">#bbbbff</field> </block> </value> <value name="DrawFaceIndexes"> <block type="logic_boolean" id="bL|hbFx`{jV.8=.!4_Ke"> <field name="BOOL">FALSE</field> </block> </value> <value name="FaceIndexHeight"> <block type="math_number" id="oe|d3g#p^vO$q*3vw3P="> <field name="NUM">0.06</field> </block> </value> <value name="FaceIndexColour"> <block type="colour_picker" id="-?)5dV@/J[lr*aT.Zr`N"> <field name="COLOUR">#0000ff</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id="oXwn0r(Y._:,lB?WPd@]" x="-5950" y="2172"> <field name="NAME">drawVerticalColumns</field> <comment pinned="false" h="80" w="160">Describe this function...</comment> <statement name="STACK"> <block type="bitbybit.draw.drawAnyAsyncNoReturn" id="VPKjNj{R0k%`^9{O?Mf8"> <value name="Entity"> <block type="bitbybit.line.linesBetweenStartAndEndPoints" id="{!uwgb;.pUEK,Y1@AB0Q"> <value name="StartPoints"> <block type="variables_get" id="%p(]=35Al]o4p1!nOJ?`"> <field name="VAR" id="ibE`Uhb2`rE^/8i=7@VE">hexGridPoints</field> </block> </value> <value name="EndPoints"> <block type="variables_get" id="(ByuZ/DL86{c|;wFq%qv"> <field name="VAR" id="P=|){?hEsDq=EBy5/n3b">movedPointsForTops</field> </block> </value> </block> </value> <value name="Options"> <block type="bitbybit.draw.optionsSimple" id="DXFA`XbSw9T}pv!cZYgj"> <value name="Colours"> <block type="colour_picker" id="dZtU~0*`~dfCTW6/1:aZ"> <field name="COLOUR">#ffffff</field> </block> </value> <value name="Size"> <block type="math_number" id="b)3iCYe!(E3(Hwe|~Y}4"> <field name="NUM">50</field> </block> </value> <value name="Opacity"> <block type="math_number" id="?hD[Iib96a}(L:Pwm%x."> <field name="NUM">0.5</field> </block> </value> <value name="Updatable"> <block type="logic_boolean" id="G+oztpcqj}Mv~`]O+gOT"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </statement> </block> <block type="procedures_defnoreturn" id="AKX5j#fLbs0.Ig{!%G7j" x="-5957" y="2688"> <field name="NAME">findIntersectionsOnSurface</field> <comment pinned="false" h="80" w="160">Describe this function...</comment> <statement name="STACK"> <block type="variables_set" id="1V{#R.4oU_iXi2o+GiL!"> <field name="VAR" id=":1*%s_jb6mlTX^IXip?q">pointsOnSurface</field> <value name="VALUE"> <block type="lists_create_with" id="-Ghjn[%7cP{M4A(OT|EV"> <mutation items="0"> </mutation> </block> </value> <next> <block type="controls_forEach" id=".o,!(HH*$o;|bbAf~Ep@"> <field name="VAR" id="m:AuG!cTPboqR76Eb`FC">m</field> <value name="LIST"> <block type="bitbybit.line.convertLinesToNurbsCurves" id=")T@v(#owu{oYsjaC%tvi"> <value name="Lines"> <block type="variables_get" id="Y6uci=}l)*Q+2FL8!x%$"> <field name="VAR" id="W$l5QY6N?h-b5NX]n}WV">linesForIntersection</field> </block> </value> </block> </value> <statement name="DO"> <block type="lists_setIndex" id="x#o0$j;2Mg[9i6s^=B:."> <mutation at="false"> </mutation> <field name="MODE">INSERT</field> <field name="WHERE">LAST</field> <value name="LIST"> <block type="variables_get" id="Rpi1!PtEb^W@58~!V{DT"> <field name="VAR" id=":1*%s_jb6mlTX^IXip?q">pointsOnSurface</field> </block> </value> <value name="TO"> <block type="lists_getIndex" id="cyE#TX?}sAUy+v~n-B;,"> <mutation statement="false" at="false"> </mutation> <field name="MODE">GET</field> <field name="WHERE">FIRST</field> <value name="VALUE"> <block type="bitbybit.verb.intersect.curveSurfaceCurvePoints" id="W~7cw[bH9w,_-KAN]Dkf"> <value name="Intersections"> <block type="bitbybit.verb.intersect.curveAndSurface" id="Elr]NCw[VGg|YWcm*D/B"> <value name="Curve"> <block type="variables_get" id="NxE299(=M^Ba2sgbVopU"> <field name="VAR" id="m:AuG!cTPboqR76Eb`FC">m</field> </block> </value> <value name="Surface"> <block type="variables_get" id=":Q3eUqY4tmZ.3as/TIfm"> <field name="VAR" id="tBlJB)v83o3exilg.RS7">nurbsSurface</field> </block> </value> </block> </value> </block> </value> </block> </value> </block> </statement> </block> </next> </block> </statement> </block> </xml>