Structural Roof Script

Structural Roof Script script details
Type
Blockly logo image
blockly
App Version
0.14.0
Visibility
public
Date Created
Dec 23, 2022, 12:58:28 PM
Last Edit Date
Jan 18, 2024, 9:57:04 AM

Script Details

The Code
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="CDZ0yV9i^/I4D(1hh:5N">points</variable> <variable id="(w_I)eNw(w^A2^!fDaoR">roofElements</variable> <variable id="Obk[vz^n7Mv)Cg?T^FJ^">columnElements</variable> <variable id="No-.@!ajW`iZNhtYFs:|">walkway</variable> <variable id=")JDd/$?9d@/)Q;8uHsOh">pts1</variable> <variable id="D?;jOf0wLZbE4dA0t0jA">surfaceMain</variable> <variable id="[zm1f7j{n!%h6krajW07">transformedPoints</variable> <variable id="z1)P]:Q8Nc^e2e?^rZg7">grid</variable> <variable id="OC![oF$0|+P/T?a;yJTj">pts2</variable> <variable id="m$+ZiW?SBj/+-L2AGg1h">j</variable> <variable id="zY,-3Xz-hVmXZ4oCNr_f">uvsPromise</variable> <variable id="$yivl^(Am[EkP_A06+[|">uDivColumns</variable> <variable id=":{:pInCv~v4mN}VULXJe">roofTopOptions</variable> <variable id="~wVJAVr.~@%#AYbA:a-N">pts3</variable> <variable id="^rvuq!wt/JF*90FsJOeQ">vDivColumns</variable> <variable id="uTzH((#w}Ij;zzjur!5F">roofBottomOptions</variable> <variable id="{KFi.~;$`.^:S~:pGPLG">resSurfaceMain</variable> <variable id="SP{8^mo@bpDq_GT6lTS?">pts4</variable> <variable id="^FR)0Ddc/OYd-|yG}z1g">faceToEvaluate</variable> <variable id="5M/tUeLH#WBo8c9eS6B=">uSubdivisions</variable> <variable id="K|Koc`l+CDW}3!pNIo!l">vSubdivisions</variable> <variable id="$p2$U}Vb3*GvO2k$]Om%">uStepDist</variable> <variable id="/%(HsU-ilHZm{!Zif:#Y">groundFace</variable> <variable id="_sI/G~-@l^Q$uG9O*Iee">roofGlassOptions</variable> <variable id="_)rR8pCl7ac0%(xJKy_K">surfaceBottom</variable> <variable id="MhMGcmNTJe=DNNHgm5?q">vStepDistance</variable> <variable id="SXdUZ]|Yz(6xfEDCx_wd">uvs</variable> <variable id="*lx^8ZUn[Q^L|qSZuhHY">uvsGroundPromise</variable> <variable id="(c**hXH!56[y}eFm`:om">columnBaseOptions</variable> <variable id="ldD+4LNvts!5w[Pn%{pu">offsetResSurfaceMain</variable> <variable id="CBa30-Qz_F3Vu!Lw2u=|">pts5</variable> <variable id="VuD}(DXs1m6QMh7.FUZw">prlOuterTranslatedPromise</variable> <variable id="TdcI-~EpnVX}!RhQtDWM">wireOnMiddleColumn</variable> <variable id="Lb#;CZTb.U=]?/FE0R}d">columnTopOptions</variable> <variable id="[KonGC98P9UI$KTOaZ0x">prlTranslatedInnerPromise</variable> <variable id="6Ev54^^AhgVN#L,t([Zf">wireOnGroundForColumn</variable> <variable id="mvsRC!k3oyO4_t%xUm=B">walkwayOptions</variable> <variable id="|$PN]{}GVX[u:7#KZ}]j">prlTranslatedCenterPromise</variable> <variable id="V/60%4QKJ38i9{K=U9N,">wireOnRoofForColumn</variable> <variable id="%JzY:cK3~3fxNUBozxc8">groundOptions</variable> <variable id="z=G]bU^k~e{7NB?oW4^D">parallelogramOuter</variable> <variable id="!eaT~+j[NqITtgX2;rg[">faceToEvalColumns</variable> <variable id=")jFwhfJ64YHbuNK27:RE">roofTopMeshPromise</variable> <variable id="i*GbLP4K*{nZ^r(aot$0">parallelogramCenter</variable> <variable id="cSfBm{4/in%#SI5u3ZMy">uvsGround</variable> <variable id="0G}AZ%IK~JyC.!ows@Uc">roofBottomMeshPromise</variable> <variable id="1u?USp-?Oz$`IwPQ*#hc">uMin</variable> <variable id="r+/!Yi8+#X!-eR|s|rGI">prallelogramInner</variable> <variable id=":rhC^bPjxDTND+_A6FP8">columnBase</variable> <variable id="f$6G-eXhk_lJ,Cn=?1iA">roofGlassMeshPromise</variable> <variable id="}6uDqz(r(CCA}*my._s!">uMax</variable> <variable id="{MJv/x02PeZvH9A#m?Jo">i</variable> <variable id="b@rIR_v#^_UW:xWos{C#">columnTop</variable> <variable id="V8rL(y|lr.Q.8[Zsf/mE">columnBaseMeshPromise</variable> <variable id="@ROlmvf}?w%|vAC}5/Uv">vMin</variable> <variable id="O_u*Wzv|Z#}3]p:S#s[R">uvPoint</variable> <variable id="[aGwA%Xg!t{a)tJ5}eD:">prlOuterOnFace</variable> <variable id="{en%a36.!YbF*V[[j7?|">m</variable> <variable id="Xmx4o3$9iSkLnYrnJW3,">columnTopMeshPromise</variable> <variable id="B4GJ,/r+G;0*@cpcz.h*">vMax</variable> <variable id="3={IRQ9.s+1YNZC(R|C[">prlInnerOnFace</variable> <variable id="NP)@GjOv4@SCk.GDOX39">groundMeshPromise</variable> <variable id="XDJ,1#`g?AW/H4JSh$W;">uTotal</variable> <variable id="-bZIDPD6jxuP!iFMX[((">prlCenterOnFace</variable> <variable id="A,Y.pPFWC(TWX%*j5qX=">walkwayMeshPromise</variable> <variable id="VO{bl0#LNo4KR/~%?sQy">vTotal</variable> <variable id=",gKkM!R;f4g;gS^{t8fI">framesTopPromise</variable> <variable id="R8)c{9+bvT]-=}NW|$n-">roofTopMesh</variable> <variable id="AB[dWnl[/fDKtNAp#;HU">framesBottomPromise</variable> <variable id="+ZT@[lpq#c?%#)3xGEE*">roofBottomMesh</variable> <variable id="jZX5)i68[Y)`yPY_noM^">windowsPromise</variable> <variable id="v=$m@*Rp!Ni=tnXa!HGQ">roofGlassMesh</variable> <variable id="3-ph`bM~;B3iFbn2+4zw">k</variable> <variable id="WksPa84K#Qwk9@IeZaM}">columnBaseMesh</variable> <variable id="xG.4OQ~o,(4v5s+0r$4|">frameThickness</variable> <variable id="#-ty|wDMJZV7nS6Z{dp,">columnTopMesh</variable> <variable id="xMD+Sj|[%O1!3wLk6-Yt">groundMesh</variable> <variable id="3S[CRP*red-@zg#qee,e">walkwayMesh</variable> <variable id="[_r.QsyJ}zx:~r#7dOWs">timeElapsedFromPreviousFrame</variable> </variables> <block type="bitbybit.occt.cleanAllCache" id="QR31vc_rE?~G4LWZn_Ku" x="-1063" y="-497"> <next> <block type="bitbybit.babylon.scene.enableSkybox" id="g2?7,665O9*oKfd`$}{~"> <value name="Skybox"> <block type="bitbybit.babylon.enums.skyboxEnum" id="4smkPD!]:(oA]j_zF%|i"> <field name="bitbybit.babylon.enums.skyboxEnum">'clearSky'</field> </block> </value> <value name="Size"> <block type="math_number" id="iE[@_w58.dWZ|B9/^)g*"> <field name="NUM">1000</field> </block> </value> <value name="Blur"> <block type="math_number" id="w4AUNRb;`qdvsxTyP|zt"> <field name="NUM">0.4</field> </block> </value> <value name="EnvironmentIntensity"> <block type="math_number" id="mX+to:~Mr!k3a~gavCfz"> <field name="NUM">0.8</field> </block> </value> <next> <block type="variables_set" id="h3/^N9un?cK)xZI`])qQ"> <field name="VAR" id="z1)P]:Q8Nc^e2e?^rZg7">grid</field> <value name="VALUE"> <block type="bitbybit.draw.drawGridMesh" id="Z.U!)WMPm8C^~67p|8]A"> <value name="Width"> <block type="math_number" id="NlJ]uMr+_?b[Wd0Ib;D["> <field name="NUM">400</field> </block> </value> <value name="Height"> <block type="math_number" id="@YFnT7jVtGBbCR6DcLIf"> <field name="NUM">400</field> </block> </value> <value name="Subdivisions"> <block type="math_number" id="{)F[+MfbWm~k`wFc]#8~"> <field name="NUM">10</field> </block> </value> <value name="MajorUnitFrequency"> <block type="math_number" id="BbavQrC_+#uYV#G5mALj"> <field name="NUM">10</field> </block> </value> <value name="MinorUnitVisibility"> <block type="math_number" id="+-9s2%fS0A^sqT3vB}%4"> <field name="NUM">0.45</field> </block> </value> <value name="GridRatio"> <block type="math_number" id="u|iuQuBZ@T_;D6{*Q{p$"> <field name="NUM">0.5</field> </block> </value> <value name="Opacity"> <block type="math_number" id="epC/Uy;ogFUOLXE0XFyE"> <field name="NUM">0.5</field> </block> </value> <value name="BackFaceCulling"> <block type="logic_boolean" id="%a3Oaia[ZHi.2:o1e@Ee"> <field name="BOOL">TRUE</field> </block> </value> <value name="MainColor"> <block type="colour_picker" id="[;icG=(wU$JjtN;Y3!7T"> <field name="COLOUR">#ffffff</field> </block> </value> <value name="SecondaryColor"> <block type="colour_picker" id="3fNOZ*=TRfgb8aW23vGX"> <field name="COLOUR">#ffffff</field> </block> </value> </block> </value> <next> <block type="bitbybit.babylon.scene.drawDirectionalLightNoReturn" id=":N!lMyflO|DXPXkvvx!R"> <value name="Direction"> <block type="bitbybit.point.pointXYZ" id=",IpyUl+*$W!B%}{i;@;m"> <value name="X"> <block type="math_number" id="0~lWavHT+9Y411E],{i("> <field name="NUM">-50</field> </block> </value> <value name="Y"> <block type="math_number" id="f/iQErYhZ,D/3X{JGtX`"> <field name="NUM">-100</field> </block> </value> <value name="Z"> <block type="math_number" id="TPF96OWWzHfKt#)04Ba9"> <field name="NUM">-50</field> </block> </value> </block> </value> <value name="Intensity"> <block type="math_number" id="+E}Jx.qJ1`.S3h[6+%MK"> <field name="NUM">2</field> </block> </value> <value name="Diffuse"> <block type="colour_picker" id="lBW%OG[oDPe!/B*.x0(~"> <field name="COLOUR">#ffffff</field> </block> </value> <value name="Specular"> <block type="colour_picker" id="*$j7V%%~~zj/T+G71DD%"> <field name="COLOUR">#ffffff</field> </block> </value> <value name="ShadowGeneratorMapSize"> <block type="math_number" id="b}qIh!iJg-HAHZBLq4_Z"> <field name="NUM">4000</field> </block> </value> <value name="EnableShadows"> <block type="logic_boolean" id="Ca%;AMi}=jm+6d+K#([`"> <field name="BOOL">TRUE</field> </block> </value> <value name="ShadowDarkness"> <block type="math_number" id="+rfYp/$yTvb!?J4/U{+f"> <field name="NUM">0</field> </block> </value> <next> <block type="variables_set" id="U`AV*w=ri,yufr9m%AD0"> <field name="VAR" id="{KFi.~;$`.^:S~:pGPLG">resSurfaceMain</field> <value name="VALUE"> <block type="bitbybit.occt.transforms.translate" id=",jCT7HOat4a0Zwiri#2X"> <value name="Shape"> <block type="procedures_callreturn" id="^rg*oH5cttihO(x.{E23"> <mutation name="createInitialSurface"> </mutation> </block> </value> <value name="Translation"> <block type="bitbybit.point.pointXYZ" id="e]GkJZ3G-p(Gr1qPn6Ke"> <value name="X"> <block type="math_number" id="7j;WB6x#]%8/o}h6u]8W"> <field name="NUM">-15</field> </block> </value> <value name="Y"> <block type="math_number" id="L6UCqCWn~OXWDS_XJur."> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_number" id="wEJr{.=0`e*`#ICg_gy!"> <field name="NUM">15</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="q`E(_JYLNTLtS27gVHS0"> <field name="VAR" id="_)rR8pCl7ac0%(xJKy_K">surfaceBottom</field> <value name="VALUE"> <block type="bitbybit.occt.transforms.translate" id="pfWa{4R#I~$ogaBuC),m"> <value name="Shape"> <block type="variables_get" id="1W?Yp?8k!cbk*uPX9`iH"> <field name="VAR" id="_)rR8pCl7ac0%(xJKy_K">surfaceBottom</field> </block> </value> <value name="Translation"> <block type="bitbybit.point.pointXYZ" id="{1L93+shNFb*cKF,h,u("> <value name="X"> <block type="math_number" id="13!/U7hd,C+,b=1HyGmg"> <field name="NUM">-15</field> </block> </value> <value name="Y"> <block type="math_number" id="^mQ$_53d=Z0Z^NmDJ1?e"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_number" id="+)ps3VPs?Tcl*NwjqvWJ"> <field name="NUM">15</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="jNbyiNew1z}R}$`g/W=m"> <field name="VAR" id="ldD+4LNvts!5w[Pn%{pu">offsetResSurfaceMain</field> <value name="VALUE"> <block type="bitbybit.occt.operations.offset" id="hcpro2*:1(Ji+UrNSwXp"> <value name="Shape"> <block type="variables_get" id="t19_|)mg8BmoF6-xY!$q"> <field name="VAR" id="{KFi.~;$`.^:S~:pGPLG">resSurfaceMain</field> </block> </value> <value name="Distance"> <block type="math_number" id="b_6wKb*vsEHf|]mU44BR"> <field name="NUM">0.3</field> </block> </value> <value name="Tolerance"> <block type="math_number" id="{gvo:YVzkyxxp+O9AE$^"> <field name="NUM">1e-7</field> </block> </value> </block> </value> <next> <block type="variables_set" id="V0r*[^mnIL]%*k1mx9f?"> <field name="VAR" id="^FR)0Ddc/OYd-|yG}z1g">faceToEvaluate</field> <value name="VALUE"> <block type="bitbybit.occt.shapes.face.getFace" id=".[T0lx+!5#QYj[J$7x;w"> <value name="Shape"> <block type="variables_get" id="#LRlhX/p$G2#|Z(*^l!$"> <field name="VAR" id="ldD+4LNvts!5w[Pn%{pu">offsetResSurfaceMain</field> </block> </value> <value name="Index"> <block type="math_number" id="ywQ+~-ofxNlqrI3*SYzI"> <field name="NUM">0</field> </block> </value> </block> </value> <next> <block type="variables_set" id="6USfM^i^L-63QUpZ(a^`"> <field name="VAR" id="5M/tUeLH#WBo8c9eS6B=">uSubdivisions</field> <value name="VALUE"> <block type="math_number" id="O|.8z7}+?fk]4uhUzPq="> <field name="NUM">30</field> </block> </value> <next> <block type="variables_set" id="aThZj],C::+7?U$=bpO?"> <field name="VAR" id="K|Koc`l+CDW}3!pNIo!l">vSubdivisions</field> <value name="VALUE"> <block type="math_number" id="+:U6D3d,g#`w_+kDwxR9"> <field name="NUM">33</field> </block> </value> <next> <block type="base_time_async_context" id="s!$up=7i^PSSX:lpgW/m"> <statement name="Then"> <block type="variables_set" id="/{*ZrCh7f=U/wS~N1Vm["> <field name="VAR" id="1u?USp-?Oz$`IwPQ*#hc">uMin</field> <value name="VALUE"> <block type="base_time_await_return" id="4dt{cK=5Ho~mBa7bt,yN"> <value name="Promise"> <block type="bitbybit.occt.shapes.face.getUMinBound" id="2b:g7+MCbn@L@|ooWJBy"> <value name="Shape"> <block type="variables_get" id="T2,FwPbA}G_I,U6uj`Pv"> <field name="VAR" id="^FR)0Ddc/OYd-|yG}z1g">faceToEvaluate</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="e]WEZt%^ah[uecM1^yxc"> <field name="VAR" id="}6uDqz(r(CCA}*my._s!">uMax</field> <value name="VALUE"> <block type="base_time_await_return" id="g0E6;wR2=zCKy2c2/~n5"> <value name="Promise"> <block type="bitbybit.occt.shapes.face.getUMaxBound" id="lQKlMQsDGAfuSzO`1N^#"> <value name="Shape"> <block type="variables_get" id="K.n.)l0/w!DMY6k[:C(t"> <field name="VAR" id="^FR)0Ddc/OYd-|yG}z1g">faceToEvaluate</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="AB|GBlcQnn!q0bvb$=a~"> <field name="VAR" id="@ROlmvf}?w%|vAC}5/Uv">vMin</field> <value name="VALUE"> <block type="base_time_await_return" id="##`d}t/RBS1|y37~ES8k"> <value name="Promise"> <block type="bitbybit.occt.shapes.face.getVMinBound" id="l61u2q2Ql-=XrU){tl|~"> <value name="Shape"> <block type="variables_get" id="@IpwkcF+w*ExD-0D|B[Y"> <field name="VAR" id="^FR)0Ddc/OYd-|yG}z1g">faceToEvaluate</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="iJ~2r3MU0T7H,$DCBhlS"> <field name="VAR" id="B4GJ,/r+G;0*@cpcz.h*">vMax</field> <value name="VALUE"> <block type="base_time_await_return" id="g[}?L;ew`jvz_W+..{eu"> <value name="Promise"> <block type="bitbybit.occt.shapes.face.getVMaxBound" id="}nV(gb@}lSq$hN4hgCTj"> <value name="Shape"> <block type="variables_get" id="Tu[3W_``zs+5S`vf%?5J"> <field name="VAR" id="^FR)0Ddc/OYd-|yG}z1g">faceToEvaluate</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id=".B!/WX-Q.zxTRf*-MA`6"> <field name="VAR" id="XDJ,1#`g?AW/H4JSh$W;">uTotal</field> <value name="VALUE"> <block type="math_arithmetic" id="6r+}lK*|ToUZji%^rqP0"> <field name="OP">MINUS</field> <value name="A"> <block type="variables_get" id="*.Q6?Id[y1Ut+%V=oIUC"> <field name="VAR" id="}6uDqz(r(CCA}*my._s!">uMax</field> </block> </value> <value name="B"> <block type="variables_get" id="]FzQ$9d,D1whg{eNmkf8"> <field name="VAR" id="1u?USp-?Oz$`IwPQ*#hc">uMin</field> </block> </value> </block> </value> <next> <block type="variables_set" id="{WQUr;I_cADz)`,@.=mu"> <field name="VAR" id="VO{bl0#LNo4KR/~%?sQy">vTotal</field> <value name="VALUE"> <block type="math_arithmetic" id="k).T-a|se!kdWsz_QuJ`"> <field name="OP">MINUS</field> <value name="A"> <block type="variables_get" id="18;aaa$aV3_!d6gIdk^9"> <field name="VAR" id="B4GJ,/r+G;0*@cpcz.h*">vMax</field> </block> </value> <value name="B"> <block type="variables_get" id="6}:Z)Y`6i1%5R{b|D^y?"> <field name="VAR" id="@ROlmvf}?w%|vAC}5/Uv">vMin</field> </block> </value> </block> </value> <next> <block type="variables_set" id="^dmj1zZdDEJ@bLN#o.{C"> <field name="VAR" id="$p2$U}Vb3*GvO2k$]Om%">uStepDist</field> <value name="VALUE"> <block type="math_arithmetic" id="bp!]v~7DF0W!OHWPn`/b"> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id=")D#tk|zI=`;sH,{{KKLz"> <field name="VAR" id="XDJ,1#`g?AW/H4JSh$W;">uTotal</field> </block> </value> <value name="B"> <block type="math_arithmetic" id="Ym8Q]RYoz[k#2Bise~j("> <field name="OP">MINUS</field> <value name="A"> <block type="variables_get" id="9|H#za6+H7}@6ZgN+QO,"> <field name="VAR" id="5M/tUeLH#WBo8c9eS6B=">uSubdivisions</field> </block> </value> <value name="B"> <block type="math_number" id="o3ch.7#YgYFAm8)Vl=7a"> <field name="NUM">1</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="yig2OSj1^Z-yIjIx3H`)"> <field name="VAR" id="MhMGcmNTJe=DNNHgm5?q">vStepDistance</field> <value name="VALUE"> <block type="math_arithmetic" id="VMl.qmeHyibnjbzrfZgY"> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id="itMaa|EHFyGPrVfEW,n,"> <field name="VAR" id="VO{bl0#LNo4KR/~%?sQy">vTotal</field> </block> </value> <value name="B"> <block type="math_arithmetic" id="hdh%@4L^zei{Nst}2ybe"> <field name="OP">MINUS</field> <value name="A"> <block type="variables_get" id="~uF.`*2^sV.~PooZ1kSK"> <field name="VAR" id="K|Koc`l+CDW}3!pNIo!l">vSubdivisions</field> </block> </value> <value name="B"> <block type="math_number" id="2y9Ta%V/u`R@o]iy5HmS"> <field name="NUM">1</field> </block> </value> </block> </value> </block> </value> <next> <block type="procedures_callnoreturn" id="l-*8PuqTPA3pT+ctk?7S"> <mutation name="createRoof"> </mutation> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> <block type="procedures_defreturn" id="ju+L5%,uFv/B=?j80zW4" x="-139" y="-533"> <field name="NAME">createInitialSurface</field> <comment pinned="false" h="80" w="160">Describe this function...</comment> <statement name="STACK"> <block type="variables_set" id="_qq]ad*hCt3SN~!l)u.T"> <field name="VAR" id=")JDd/$?9d@/)Q;8uHsOh">pts1</field> <value name="VALUE"> <block type="lists_create_with" id="J6UG6uhyng{=#^lv,HDt"> <mutation items="3"> </mutation> <value name="ADD0"> <block type="bitbybit.point.pointXYZ" id="BYsKpqsK*_VL{8_9Iu{z"> <value name="X"> <block type="math_number" id="J1NvH,oQcAMPwKlbl4!_"> <field name="NUM">1</field> </block> </value> <value name="Y"> <block type="math_number" id="B`i!(^E(v!=:WMJcc]E:"> <field name="NUM">5</field> </block> </value> <value name="Z"> <block type="math_number" id="h?tH2=,9*]7k*5,QwuVZ"> <field name="NUM">-15</field> </block> </value> </block> </value> <value name="ADD1"> <block type="bitbybit.point.pointXYZ" id="r:4*n~::v(Mj4$96X?:j"> <value name="X"> <block type="math_number" id=";ovk!HX^FudgbJQ3O/:y"> <field name="NUM">-3</field> </block> </value> <value name="Y"> <block type="math_number" id="7Ii)Uw3z@d7lzs?@pyUJ"> <field name="NUM">12</field> </block> </value> <value name="Z"> <block type="math_number" id="#$P.(a%^b[hlk:o4s)le"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="ADD2"> <block type="bitbybit.point.pointXYZ" id="zOvK0zvD.!V))KiDA{h/"> <value name="X"> <block type="math_number" id="a654DKllMCb@jU}.$Ars"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="toYld}iiZnU|xUau6I{b"> <field name="NUM">4</field> </block> </value> <value name="Z"> <block type="math_number" id="p18muRg7cE^-lu(rFGCj"> <field name="NUM">17</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="n=s!sfT4LM;fk9EOr:~B"> <field name="VAR" id="OC![oF$0|+P/T?a;yJTj">pts2</field> <value name="VALUE"> <block type="lists_create_with" id="HPRWL[Wh.3$a+Nom]k3%"> <mutation items="3"> </mutation> <value name="ADD0"> <block type="bitbybit.point.pointXYZ" id="1x4Q8PALrq`zGnD|0Y}h"> <value name="X"> <block type="math_number" id="UulK2dP4)q(HkSqvZ]6C"> <field name="NUM">10</field> </block> </value> <value name="Y"> <block type="math_number" id="oMVzNUg/8}~8_C)S~EG!"> <field name="NUM">3</field> </block> </value> <value name="Z"> <block type="math_number" id="+eD!52(R?s@x|.(4g~?N"> <field name="NUM">-7</field> </block> </value> </block> </value> <value name="ADD1"> <block type="bitbybit.point.pointXYZ" id="{@em]6C=,XqS4TlX~d1L"> <value name="X"> <block type="math_number" id="h9}EFOn^H22bEPcw*qzi"> <field name="NUM">9</field> </block> </value> <value name="Y"> <block type="math_number" id="q86K4_hi_)C`N9neVi1~"> <field name="NUM">5</field> </block> </value> <value name="Z"> <block type="math_number" id="}TWYhqM1L}Qzv6c^Hy,o"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="ADD2"> <block type="bitbybit.point.pointXYZ" id="6rv62!cP:(!KNF+eT9k2"> <value name="X"> <block type="math_number" id="*OU#e=p1Yr4LA?Y5EQ7{"> <field name="NUM">10</field> </block> </value> <value name="Y"> <block type="math_number" id="4f.%fzV/Mq#|*.o,;)Rq"> <field name="NUM">4</field> </block> </value> <value name="Z"> <block type="math_number" id="-tHrn1LP}W(gnupGz]mE"> <field name="NUM">8</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="RHRbQo8!$=-]H6aWkFx("> <field name="VAR" id="~wVJAVr.~@%#AYbA:a-N">pts3</field> <value name="VALUE"> <block type="lists_create_with" id="*V/el0#zm^jeZWC`=Rz3"> <mutation items="3"> </mutation> <value name="ADD0"> <block type="bitbybit.point.pointXYZ" id="5x5OaB_VeEaWc:p]3#K:"> <value name="X"> <block type="math_number" id="?SJ(01E^1v$:8U[8]evR"> <field name="NUM">20</field> </block> </value> <value name="Y"> <block type="math_number" id="26;.tZAMR/y5w*_iEJe;"> <field name="NUM">1</field> </block> </value> <value name="Z"> <block type="math_number" id="#SFRVns:bGcx-?QNzJ!2"> <field name="NUM">-8</field> </block> </value> </block> </value> <value name="ADD1"> <block type="bitbybit.point.pointXYZ" id="Nj)xr*z,^A1hUi:sGRY5"> <value name="X"> <block type="math_number" id="*B*PA@0s[1$n+azxDOly"> <field name="NUM">22</field> </block> </value> <value name="Y"> <block type="math_number" id="-L61yq/z8uxCw[zXU|$F"> <field name="NUM">5</field> </block> </value> <value name="Z"> <block type="math_number" id=",G[MK6O3$B7_-YZ%LX_s"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="ADD2"> <block type="bitbybit.point.pointXYZ" id="G_!3wqm[X[vg{aq_n7s?"> <value name="X"> <block type="math_number" id="1:y.yK(d[/0/xvL9N([K"> <field name="NUM">23</field> </block> </value> <value name="Y"> <block type="math_number" id="SxJPKg2@a#6Q4k/cMUth"> <field name="NUM">4</field> </block> </value> <value name="Z"> <block type="math_number" id=":XE6CZv}y1SS,]Y,_Ik]"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="|1]N56Ni=HED)jY6GkSF"> <field name="VAR" id="SP{8^mo@bpDq_GT6lTS?">pts4</field> <value name="VALUE"> <block type="lists_create_with" id="Odai^.gLO[IxT^%^;m[~"> <mutation items="3"> </mutation> <value name="ADD0"> <block type="bitbybit.point.pointXYZ" id="*)reQV/zG8~YIzi%5Px}"> <value name="X"> <block type="math_number" id="^]=sY5s06J[Zz@O+0(._"> <field name="NUM">25</field> </block> </value> <value name="Y"> <block type="math_number" id="Ma:+dnys^1ci.mq@+Gz("> <field name="NUM">2</field> </block> </value> <value name="Z"> <block type="math_number" id="l}Oo!QF5s|UR~/8@XUL*"> <field name="NUM">-30</field> </block> </value> </block> </value> <value name="ADD1"> <block type="bitbybit.point.pointXYZ" id="wP!R)srCyHm33=S_OmOY"> <value name="X"> <block type="math_number" id="g:.CsIpW(K(:|S=gZ!f2"> <field name="NUM">30</field> </block> </value> <value name="Y"> <block type="math_number" id="g=Xs)`WhqV078-F_ie~+"> <field name="NUM">8</field> </block> </value> <value name="Z"> <block type="math_number" id="b%Z0byh6ykh5Oq$fP0/s"> <field name="NUM">-25</field> </block> </value> </block> </value> <value name="ADD2"> <block type="bitbybit.point.pointXYZ" id="_3dkm8@;D3gPe+8Y16kH"> <value name="X"> <block type="math_number" id="Ct~$WT|6$ElK8$TvIEPB"> <field name="NUM">40</field> </block> </value> <value name="Y"> <block type="math_number" id="GuiwLMh)^Bh|nR8W4:t`"> <field name="NUM">4</field> </block> </value> <value name="Z"> <block type="math_number" id="1svK(.;zvKd^!a1_QCSH"> <field name="NUM">-10</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="X!d)M*dMgk$46?X4/~@w"> <field name="VAR" id="SP{8^mo@bpDq_GT6lTS?">pts4</field> <value name="VALUE"> <block type="lists_create_with" id="~2tAx06PVOd}CywA0VEV"> <mutation items="3"> </mutation> <value name="ADD0"> <block type="bitbybit.point.pointXYZ" id="=XAz=?-6v1W.{I*t(uP)"> <value name="X"> <block type="math_number" id="1njGl$6!3x@(~e+)Zf7R"> <field name="NUM">25</field> </block> </value> <value name="Y"> <block type="math_number" id="yR]^m[lP2+|1RV)F%Eed"> <field name="NUM">2</field> </block> </value> <value name="Z"> <block type="math_number" id="ndPOw{{@XK6$B/q]5!/y"> <field name="NUM">-20</field> </block> </value> </block> </value> <value name="ADD1"> <block type="bitbybit.point.pointXYZ" id="IT,cAcS2W~XDEniV?y!8"> <value name="X"> <block type="math_number" id="1X8Culy0[xHHNS}m6LwT"> <field name="NUM">30</field> </block> </value> <value name="Y"> <block type="math_number" id="pK#$^dkJBsOGR0FH!m[J"> <field name="NUM">5</field> </block> </value> <value name="Z"> <block type="math_number" id="7E9p[Kd0IP|[j4n:|@~Y"> <field name="NUM">-20</field> </block> </value> </block> </value> <value name="ADD2"> <block type="bitbybit.point.pointXYZ" id="j9P+udYZ,A)Z,G#DnZ16"> <value name="X"> <block type="math_number" id="k,FMfTu=Rn_L;2e~$-G@"> <field name="NUM">40</field> </block> </value> <value name="Y"> <block type="math_number" id="e4Fa#g3h)Gxt^r=oUVR="> <field name="NUM">4</field> </block> </value> <value name="Z"> <block type="math_number" id="(ohp1my!d;?%AQ^pr.JY"> <field name="NUM">-21</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="`kFQi~A]Q9$yCA7`s_x-"> <field name="VAR" id="CBa30-Qz_F3Vu!Lw2u=|">pts5</field> <value name="VALUE"> <block type="lists_create_with" id="`tXy@[wXzR(FbU$r,JbP"> <mutation items="3"> </mutation> <value name="ADD0"> <block type="bitbybit.point.pointXYZ" id="r}|#;P~A@|d^I6ZAwCCy"> <value name="X"> <block type="math_number" id=";j~).p+xEX#%PC+h6Pp:"> <field name="NUM">15</field> </block> </value> <value name="Y"> <block type="math_number" id="o]eB+ZbsIP`QkNS.WL.N"> <field name="NUM">5</field> </block> </value> <value name="Z"> <block type="math_number" id="is7b)e,P{7v=NLki@des"> <field name="NUM">-30</field> </block> </value> </block> </value> <value name="ADD1"> <block type="bitbybit.point.pointXYZ" id="gfRkVQ=wMo[l]kLJ%p{X"> <value name="X"> <block type="math_number" id="|NU)Fxt_ihA~is1k_K_P"> <field name="NUM">30</field> </block> </value> <value name="Y"> <block type="math_number" id="sPP+v:J7m(igjg4sp;Q%"> <field name="NUM">1</field> </block> </value> <value name="Z"> <block type="math_number" id="hOV%_PdC,uaqkO*_|9Mh"> <field name="NUM">-35</field> </block> </value> </block> </value> <value name="ADD2"> <block type="bitbybit.point.pointXYZ" id="e*7!4N5E)fa2$si849}K"> <value name="X"> <block type="math_number" id="%;`?C6Fs,!oK]vJPAPBz"> <field name="NUM">35</field> </block> </value> <value name="Y"> <block type="math_number" id="|0sO_t3n}_yYCU9`Qi0W"> <field name="NUM">5</field> </block> </value> <value name="Z"> <block type="math_number" id="t9-!GpeV@*`WP,a(MX2m"> <field name="NUM">-37</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id=".hSQd?g*6Tq-)eHHVerK"> <field name="VAR" id="D?;jOf0wLZbE4dA0t0jA">surfaceMain</field> <value name="VALUE"> <block type="bitbybit.occt.operations.loft" id="UW;Bu0qOJyjy7peVQaGo"> <value name="Shapes"> <block type="lists_create_with" id="3+eAn}}hSzD]a+mmZo1%"> <mutation items="5"> </mutation> <value name="ADD0"> <block type="bitbybit.occt.shapes.wire.createBSpline" id="K:8PoY;R^5m}ZDMbt6ks"> <value name="Points"> <block type="variables_get" id="ntFj^@#?fRicjNXMN~d5"> <field name="VAR" id=")JDd/$?9d@/)Q;8uHsOh">pts1</field> </block> </value> <value name="Closed"> <block type="logic_boolean" id="Y.D@17qU+5Gs$`(4be%4"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <value name="ADD1"> <block type="bitbybit.occt.shapes.wire.createBSpline" id="]^ckaOaEDc}O#L6I_jCf"> <value name="Points"> <block type="variables_get" id="RiS@z8)k)g`Km+45o{H#"> <field name="VAR" id="OC![oF$0|+P/T?a;yJTj">pts2</field> </block> </value> <value name="Closed"> <block type="logic_boolean" id="VF3%k}u0+^7PP2y^(?}z"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <value name="ADD2"> <block type="bitbybit.occt.shapes.wire.createBSpline" id="y.EQWitz7zOVim|hRkq{"> <value name="Points"> <block type="variables_get" id="Ej|,AxtEB{BGuRz+RN$O"> <field name="VAR" id="~wVJAVr.~@%#AYbA:a-N">pts3</field> </block> </value> <value name="Closed"> <block type="logic_boolean" id="6`0?!f_+DB:Ie.;//H37"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <value name="ADD3"> <block type="bitbybit.occt.shapes.wire.createBSpline" id="!}G70,ZlT#b2$,|7O[s*"> <value name="Points"> <block type="variables_get" id="8nn+*MJR-E1jZqk0h0Eg"> <field name="VAR" id="SP{8^mo@bpDq_GT6lTS?">pts4</field> </block> </value> <value name="Closed"> <block type="logic_boolean" id="/++#!]nOa8kW;POS9Ud5"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <value name="ADD4"> <block type="bitbybit.occt.shapes.wire.createBSpline" id="Vb+#tA-iE5a/N!m%CI)B"> <value name="Points"> <block type="variables_get" id="y,+rHrw^C;,!S+tZ`iCC"> <field name="VAR" id="CBa30-Qz_F3Vu!Lw2u=|">pts5</field> </block> </value> <value name="Closed"> <block type="logic_boolean" id="mQp{DAebGSZuR?nxK%67"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> <value name="MakeSolid"> <block type="logic_boolean" id="j=V8G*(R@3lNN^21{$cY"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <next> <block type="variables_set" id="m!TP!$p-g)09-Kz``u:l"> <field name="VAR" id="_)rR8pCl7ac0%(xJKy_K">surfaceBottom</field> <value name="VALUE"> <block type="bitbybit.occt.operations.loft" id="H={z8AjJ`HQ79/.7SZ94"> <value name="Shapes"> <block type="lists_create_with" id="HGnR^*Y4wI+7UJ#3/Dy4"> <mutation items="5"> </mutation> <value name="ADD0"> <block type="bitbybit.occt.shapes.wire.createBSpline" id="0|a*$wPd,Ski8TNZs247"> <value name="Points"> <block type="procedures_callreturn" id="W!#tv,Ni~9cMY7LIQ:_9"> <mutation name="flattenPointsOnY"> <arg name="points"> </arg> </mutation> <value name="ARG0"> <block type="variables_get" id="=+d$yPkgYcy||MFcu0F="> <field name="VAR" id=")JDd/$?9d@/)Q;8uHsOh">pts1</field> </block> </value> </block> </value> <value name="Closed"> <block type="logic_boolean" id="T=PA/T.$S=xRp(T+gMj2"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <value name="ADD1"> <block type="bitbybit.occt.shapes.wire.createBSpline" id="z?#@sW5Wui~09;|J]]9`"> <value name="Points"> <block type="procedures_callreturn" id=")Dx$i=![Rhslwb[5BT/v"> <mutation name="flattenPointsOnY"> <arg name="points"> </arg> </mutation> <value name="ARG0"> <block type="variables_get" id="SEmtZRb_BJnAhc.OUY09"> <field name="VAR" id="OC![oF$0|+P/T?a;yJTj">pts2</field> </block> </value> </block> </value> <value name="Closed"> <block type="logic_boolean" id="+k*-I{}Ew.,LN+_+|/9^"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <value name="ADD2"> <block type="bitbybit.occt.shapes.wire.createBSpline" id="@Rp^[|@z,C;li((-MPI%"> <value name="Points"> <block type="procedures_callreturn" id="!O,GVV6ZCdsf)6(VeO2P"> <mutation name="flattenPointsOnY"> <arg name="points"> </arg> </mutation> <value name="ARG0"> <block type="variables_get" id="r_.2)5)a*]hw23#^~[gp"> <field name="VAR" id="~wVJAVr.~@%#AYbA:a-N">pts3</field> </block> </value> </block> </value> <value name="Closed"> <block type="logic_boolean" id="yom}NTsxM(LW%Q~8E]]h"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <value name="ADD3"> <block type="bitbybit.occt.shapes.wire.createBSpline" id="PQI1/auBnIox;W5bsWg8"> <value name="Points"> <block type="procedures_callreturn" id="6UFwp@@rZ_]02/tP%lxA"> <mutation name="flattenPointsOnY"> <arg name="points"> </arg> </mutation> <value name="ARG0"> <block type="variables_get" id="Y=!)4BnL3+pv!j{62CT*"> <field name="VAR" id="SP{8^mo@bpDq_GT6lTS?">pts4</field> </block> </value> </block> </value> <value name="Closed"> <block type="logic_boolean" id="$w;=(H!^rHj,*Mh=]El3"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <value name="ADD4"> <block type="bitbybit.occt.shapes.wire.createBSpline" id="7}E8[ES[X:[1bDUf%M,6"> <value name="Points"> <block type="procedures_callreturn" id="0EuC!5LgwK(/J+hl+5t4"> <mutation name="flattenPointsOnY"> <arg name="points"> </arg> </mutation> <value name="ARG0"> <block type="variables_get" id="oCN*^/X6od4@G3bU/);("> <field name="VAR" id="CBa30-Qz_F3Vu!Lw2u=|">pts5</field> </block> </value> </block> </value> <value name="Closed"> <block type="logic_boolean" id="H-V~-jSgIBZ+a[B3U$j,"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> <value name="MakeSolid"> <block type="logic_boolean" id="T*j+TgR}uBHhUdEkM)nU"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <value name="RETURN"> <block type="variables_get" id="=rB]L`pDBn#lUGJd(w|^"> <field name="VAR" id="D?;jOf0wLZbE4dA0t0jA">surfaceMain</field> </block> </value> </block> <block type="procedures_defreturn" id="-=WWu0iLKdY#,[b36hq@" x="730" y="-535"> <mutation> <arg name="points" varid="CDZ0yV9i^/I4D(1hh:5N"> </arg> </mutation> <field name="NAME">flattenPointsOnY</field> <comment pinned="false" h="80" w="160">Describe this function...</comment> <statement name="STACK"> <block type="variables_set" id="}Cr1=O3B7b3YtZS`-xlK"> <field name="VAR" id="[zm1f7j{n!%h6krajW07">transformedPoints</field> <value name="VALUE"> <block type="lists_create_with" id="y[?(UIQnUgHRoJ|qJwdh"> <mutation items="0"> </mutation> </block> </value> <next> <block type="controls_forEach" id="IPL/,{h5cJ$$Cj66ZS}U"> <field name="VAR" id="m$+ZiW?SBj/+-L2AGg1h">j</field> <value name="LIST"> <block type="variables_get" id="8NJjDhMPMxS7mYyMHwQ6"> <field name="VAR" id="CDZ0yV9i^/I4D(1hh:5N">points</field> </block> </value> <statement name="DO"> <block type="lists_setIndex" id="_(~Nq}cr+=xG^4|ES[%B"> <mutation at="false"> </mutation> <field name="MODE">INSERT</field> <field name="WHERE">LAST</field> <value name="LIST"> <block type="variables_get" id="ziY%l6fFGtR8O]UGAfXW"> <field name="VAR" id="[zm1f7j{n!%h6krajW07">transformedPoints</field> </block> </value> <value name="TO"> <block type="bitbybit.point.pointXYZ" id="WG-]k^w[LKc,s0;z:!sR"> <value name="X"> <block type="bitbybit.point.getX" id="Do;)A0@vfw.]x$}Xz3dm"> <value name="Point"> <block type="variables_get" id="i?=}Y|Kr(tJQ9+U[OatU"> <field name="VAR" id="m$+ZiW?SBj/+-L2AGg1h">j</field> </block> </value> </block> </value> <value name="Y"> <block type="math_number" id="x-HZi3Ga_FJ^SMHYi8/d"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="bitbybit.point.getZ" id="qN!4)2^%t32T/y14BOJz"> <value name="Point"> <block type="variables_get" id="mG;BOL#[R2w+,IE[CTRk"> <field name="VAR" id="m$+ZiW?SBj/+-L2AGg1h">j</field> </block> </value> </block> </value> </block> </value> </block> </statement> </block> </next> </block> </statement> <value name="RETURN"> <block type="variables_get" id="IIgd)RQG!pH]oPM5aQiQ"> <field name="VAR" id="[zm1f7j{n!%h6krajW07">transformedPoints</field> </block> </value> </block> <block type="procedures_defnoreturn" id="~91$Fsn%zTRQD3-tl^S9" x="1871" y="-552"> <field name="NAME">createRoof</field> <comment pinned="false" h="80" w="160">Describe this function...</comment> <statement name="STACK"> <block type="base_time_async_context" id="CsQs]l,BYvw@4`qrn@A3"> <statement name="Then"> <block type="variables_set" id="oB3]uK}u~_$p;?z?geU("> <field name="VAR" id="zY,-3Xz-hVmXZ4oCNr_f">uvsPromise</field> <value name="VALUE"> <block type="bitbybit.occt.shapes.face.subdivideToUV" id="ryy1OvF!cH@wn_IkmA2{"> <value name="Shape"> <block type="variables_get" id="TZXi(/yyZIY6asR:OjW_"> <field name="VAR" id="^FR)0Ddc/OYd-|yG}z1g">faceToEvaluate</field> </block> </value> <value name="NrDivisionsU"> <block type="variables_get" id="3zTprA;y0={byDP,16Pu"> <field name="VAR" id="5M/tUeLH#WBo8c9eS6B=">uSubdivisions</field> </block> </value> <value name="NrDivisionsV"> <block type="variables_get" id="g$KOz!y/Vna?D%{!BVuw"> <field name="VAR" id="K|Koc`l+CDW}3!pNIo!l">vSubdivisions</field> </block> </value> <value name="ShiftHalfStepU"> <block type="logic_boolean" id="UjsS`h$#_;s2G(HUwH%u"> <field name="BOOL">FALSE</field> </block> </value> <value name="RemoveStartEdgeU"> <block type="logic_boolean" id="PU`X8Af8yuNZmrXnoPxb"> <field name="BOOL">TRUE</field> </block> </value> <value name="RemoveEndEdgeU"> <block type="logic_boolean" id="@K~Nh~:8^6qEK#/8E#8I"> <field name="BOOL">TRUE</field> </block> </value> <value name="ShiftHalfStepV"> <block type="logic_boolean" id="=r)6)Zk|HCm3+Puxdg?E"> <field name="BOOL">FALSE</field> </block> </value> <value name="RemoveStartEdgeV"> <block type="logic_boolean" id="3:1rA8z;fp@0|Gsr;PL*"> <field name="BOOL">TRUE</field> </block> </value> <value name="RemoveEndEdgeV"> <block type="logic_boolean" id="RIVMPOzEcj)$I~T;GNg."> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <next> <block type="base_io_console_log" id="zvrm[.BOgur.!B-y(=IL"> <value name="Text"> <block type="variables_get" id="8r8E@6{wAGwZSmKQiP`{"> <field name="VAR" id="$p2$U}Vb3*GvO2k$]Om%">uStepDist</field> </block> </value> <next> <block type="base_io_console_log" id="f]APWtNthH]7(SX)pvPH"> <value name="Text"> <block type="variables_get" id="eZ),$wD;yE4QR0B6Y-)G"> <field name="VAR" id="MhMGcmNTJe=DNNHgm5?q">vStepDistance</field> </block> </value> <next> <block type="variables_set" id="=AeAiN5{Pm!E93uvk`9v"> <field name="VAR" id="SXdUZ]|Yz(6xfEDCx_wd">uvs</field> <value name="VALUE"> <block type="base_time_await_return" id="a^:7^@2#FPF|X0PCd9Y9"> <value name="Promise"> <block type="variables_get" id="%uN8voveC3bpR[37gPNc"> <field name="VAR" id="zY,-3Xz-hVmXZ4oCNr_f">uvsPromise</field> </block> </value> </block> </value> <next> <block type="variables_set" id="R]BQtk1{KUh/vO8Vx66x"> <field name="VAR" id="VuD}(DXs1m6QMh7.FUZw">prlOuterTranslatedPromise</field> <value name="VALUE"> <block type="lists_create_with" id="Z:tG1]H4Y2+SPL,/PUw0"> <mutation items="0"> </mutation> </block> </value> <next> <block type="variables_set" id="ml};7F*KuWL2m1MV_4$v"> <field name="VAR" id="[KonGC98P9UI$KTOaZ0x">prlTranslatedInnerPromise</field> <value name="VALUE"> <block type="lists_create_with" id="qzfs1Uw0GeBZ1Q-]}@CO"> <mutation items="0"> </mutation> </block> </value> <next> <block type="variables_set" id="eH{Jtqi]k/`IQ=t+slg4"> <field name="VAR" id="|$PN]{}GVX[u:7#KZ}]j">prlTranslatedCenterPromise</field> <value name="VALUE"> <block type="lists_create_with" id="KFCiz/s,x!*Up.)bL[P;"> <mutation items="0"> </mutation> </block> </value> <next> <block type="variables_set" id="%RR@yCMOliTCZP}VafP`"> <field name="VAR" id="z=G]bU^k~e{7NB?oW4^D">parallelogramOuter</field> <value name="VALUE"> <block type="bitbybit.occt.shapes.wire.createParallelogramWire" id="OBZi}1w=6zwJiRZ+I?Pc"> <value name="Center"> <block type="bitbybit.point.pointXYZ" id="x|1CBg^R[v_s-^k=WI76"> <value name="X"> <block type="math_number" id="DIDe^J}7{-F=}zFQ+^^e"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="GL^@ZYY3G5HXFSyi.hk)"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_number" id="wb5Y?%][CKnhR0-o$X}_"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="Direction"> <block type="bitbybit.point.pointXYZ" id="~E}|b1.D(g[*U~Z`CG!L"> <value name="X"> <block type="math_number" id="v0h[h8d?lc?2Yb0`|I1%"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="Zf@4za*$OjML*C1{qOBn"> <field name="NUM">1</field> </block> </value> <value name="Z"> <block type="math_number" id="#/+fzrD*vwxZMpg!%C},"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="AroundCenter"> <block type="logic_boolean" id="4L1T}BU[9S-FY(_06$aK"> <field name="BOOL">TRUE</field> </block> </value> <value name="Width"> <block type="variables_get" id="$B%^hvh1CCR}FMLG!g?U"> <field name="VAR" id="MhMGcmNTJe=DNNHgm5?q">vStepDistance</field> </block> </value> <value name="Height"> <block type="variables_get" id="TmT(^J5|S^,;dTsEPetF"> <field name="VAR" id="$p2$U}Vb3*GvO2k$]Om%">uStepDist</field> </block> </value> <value name="Angle"> <block type="math_number" id="gg6/3gXMzTFK.+M{:Vml"> <field name="NUM">30</field> </block> </value> </block> </value> <next> <block type="variables_set" id="^.F#QR8l9Uio.bsF#EO;"> <field name="VAR" id="i*GbLP4K*{nZ^r(aot$0">parallelogramCenter</field> <value name="VALUE"> <block type="bitbybit.occt.shapes.wire.createParallelogramWire" id="$g0Xc.sor^6Xzu(QhS(5"> <value name="Center"> <block type="bitbybit.point.pointXYZ" id="A}p/k8cjY6T_@!feDD}!"> <value name="X"> <block type="math_number" id="m/Nx#S#(T,%tU#4d!NAt"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="lR3g_Y##8UhYSvwaX1@Q"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_number" id="0fugz~!vx3@^oPU_pWK9"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="Direction"> <block type="bitbybit.point.pointXYZ" id="HT(,S4+culR|h(:nM`E^"> <value name="X"> <block type="math_number" id="W+A^`?;Vv-`5`3j$)9%9"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="mE66_LC2H5?]ql#k;x)H"> <field name="NUM">1</field> </block> </value> <value name="Z"> <block type="math_number" id="4iCWMc{GUZH9ib,4bF:#"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="AroundCenter"> <block type="logic_boolean" id="-r-mQ-sTg,1W/h%Q(yd_"> <field name="BOOL">TRUE</field> </block> </value> <value name="Width"> <block type="math_number" id="IaHdt!7f2R,a`+uzzI;u"> <field name="NUM">0.00002</field> </block> </value> <value name="Height"> <block type="math_number" id="6]7kV9:hI6Zmj!Yuy/Dn"> <field name="NUM">0.00002</field> </block> </value> <value name="Angle"> <block type="math_number" id="-vMeTrcqbD)+g%l:Y5.;"> <field name="NUM">30</field> </block> </value> </block> </value> <next> <block type="variables_set" id="9)A`%`F.#=V%ndYCcqC+"> <field name="VAR" id="r+/!Yi8+#X!-eR|s|rGI">prallelogramInner</field> <value name="VALUE"> <block type="bitbybit.occt.shapes.wire.createParallelogramWire" id="vg+]|IAB|fm-%?(KgeP["> <value name="Center"> <block type="bitbybit.point.pointXYZ" id="Phi8*p4=|/_5Hv7mcYTy"> <value name="X"> <block type="math_number" id="V72P[4e9Izj7|%Mf{:}3"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="6}*4]wF)pMWC).pr$E{J"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_number" id=";M)iuP9uvAU^:O@4=`3w"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="Direction"> <block type="bitbybit.point.pointXYZ" id="3W^z30`I4n%nh/xS,G,Z"> <value name="X"> <block type="math_number" id="q2mW,_r@o`~eZ[+PU.0H"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="j[5|cfUg]Y-)[+?24f_K"> <field name="NUM">1</field> </block> </value> <value name="Z"> <block type="math_number" id="K$2j;)i44u8$GLWrrH_,"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="AroundCenter"> <block type="logic_boolean" id="Z~p}}X[wOw-x.T#RL1H@"> <field name="BOOL">TRUE</field> </block> </value> <value name="Width"> <block type="math_arithmetic" id="3p0Hg$wX*U]217x?Earm"> <field name="OP">MULTIPLY</field> <value name="A"> <block type="variables_get" id="#_yN=u#}JsvdwlU,t,[3"> <field name="VAR" id="MhMGcmNTJe=DNNHgm5?q">vStepDistance</field> </block> </value> <value name="B"> <block type="math_number" id="0QjV:_!TCH:jfYBGD0Se"> <field name="NUM">0.8</field> </block> </value> </block> </value> <value name="Height"> <block type="math_arithmetic" id="y2{y^%]M7YRfwOnM4#qn"> <field name="OP">MULTIPLY</field> <value name="A"> <block type="variables_get" id="QM^Tmxy=I,^Tb)`7xUrO"> <field name="VAR" id="$p2$U}Vb3*GvO2k$]Om%">uStepDist</field> </block> </value> <value name="B"> <block type="math_number" id="1q.MHX-SVEEKayHR)n;;"> <field name="NUM">0.8</field> </block> </value> </block> </value> <value name="Angle"> <block type="math_number" id="s1;mV0MFE-mu+6E@Es0l"> <field name="NUM">30</field> </block> </value> </block> </value> <next> <block type="controls_forEach" id="|=_O_O8=DIE2fm|g%h+d"> <field name="VAR" id="{MJv/x02PeZvH9A#m?Jo">i</field> <value name="LIST"> <block type="variables_get" id="C~-1JA@y6gwH4(MeFPy["> <field name="VAR" id="SXdUZ]|Yz(6xfEDCx_wd">uvs</field> </block> </value> <statement name="DO"> <block type="variables_set" id="+-a(/2}m}LwkuU@Y:2fX"> <field name="VAR" id="O_u*Wzv|Z#}3]p:S#s[R">uvPoint</field> <value name="VALUE"> <block type="bitbybit.point.pointXYZ" id="M,t/`7X2kWAc?k*waO@y"> <value name="X"> <block type="lists_getIndex" id="e5%k35~k4/(H:9L5c(fl"> <mutation statement="false" at="false"> </mutation> <field name="MODE">GET</field> <field name="WHERE">LAST</field> <value name="VALUE"> <block type="variables_get" id="t}Q2:~.e.E*HuhTY9?B#"> <field name="VAR" id="{MJv/x02PeZvH9A#m?Jo">i</field> </block> </value> </block> </value> <value name="Y"> <block type="math_number" id="*@!qD]!%-yR5=8n]*t3:"> <field name="NUM">1</field> </block> </value> <value name="Z"> <block type="lists_getIndex" id="=e4:PHT5uQ[lG9O0.a[C"> <mutation statement="false" at="false"> </mutation> <field name="MODE">GET</field> <field name="WHERE">FIRST</field> <value name="VALUE"> <block type="variables_get" id="N0%-.a=.V|a,/4VKbQ=C"> <field name="VAR" id="{MJv/x02PeZvH9A#m?Jo">i</field> </block> </value> </block> </value> </block> </value> <next> <block type="lists_setIndex" id="#wtH85KfXo:9yw.H75m]"> <mutation at="false"> </mutation> <field name="MODE">INSERT</field> <field name="WHERE">LAST</field> <value name="LIST"> <block type="variables_get" id="YIaFF^!0jNiL7MoN1yU="> <field name="VAR" id="VuD}(DXs1m6QMh7.FUZw">prlOuterTranslatedPromise</field> </block> </value> <value name="TO"> <block type="bitbybit.occt.transforms.translate" id="d~oGvOuxuV?7Li=ODE#i"> <value name="Shape"> <block type="variables_get" id="iG_zQ^x86CT2I4*5u7Iu"> <field name="VAR" id="z=G]bU^k~e{7NB?oW4^D">parallelogramOuter</field> </block> </value> <value name="Translation"> <block type="variables_get" id="4RNf13zP;fZk@pccRVAr"> <field name="VAR" id="O_u*Wzv|Z#}3]p:S#s[R">uvPoint</field> </block> </value> </block> </value> <next> <block type="lists_setIndex" id=",Ds$A]U#*oKcsbA5q3SY"> <mutation at="false"> </mutation> <field name="MODE">INSERT</field> <field name="WHERE">LAST</field> <value name="LIST"> <block type="variables_get" id="WkIQpIS9./wl2MpE58$n"> <field name="VAR" id="[KonGC98P9UI$KTOaZ0x">prlTranslatedInnerPromise</field> </block> </value> <value name="TO"> <block type="bitbybit.occt.transforms.translate" id="WvsLZAoEGM|VF.kF|xHE"> <value name="Shape"> <block type="variables_get" id="[dsMtJ66*m45PGqyTWVW"> <field name="VAR" id="r+/!Yi8+#X!-eR|s|rGI">prallelogramInner</field> </block> </value> <value name="Translation"> <block type="variables_get" id="(eBvl!(m=dNBf[5B4;I,"> <field name="VAR" id="O_u*Wzv|Z#}3]p:S#s[R">uvPoint</field> </block> </value> </block> </value> <next> <block type="lists_setIndex" id="tRd~82O4_%+^m|;l=9Gq"> <mutation at="false"> </mutation> <field name="MODE">INSERT</field> <field name="WHERE">LAST</field> <value name="LIST"> <block type="variables_get" id="Q]QZ;uO~w4oy.,x(~m8*"> <field name="VAR" id="|$PN]{}GVX[u:7#KZ}]j">prlTranslatedCenterPromise</field> </block> </value> <value name="TO"> <block type="bitbybit.occt.transforms.translate" id="%vokxyPh6b?#4we8Qa1("> <value name="Shape"> <block type="variables_get" id="%;6zQ(6:Kkh%d:|y``j!"> <field name="VAR" id="i*GbLP4K*{nZ^r(aot$0">parallelogramCenter</field> </block> </value> <value name="Translation"> <block type="variables_get" id="Yx5N%~Nlev|Im9DcJ[ov"> <field name="VAR" id="O_u*Wzv|Z#}3]p:S#s[R">uvPoint</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="variables_set" id="Rfuw+6XfU{,jfXXgz0Ur"> <field name="VAR" id="[aGwA%Xg!t{a)tJ5}eD:">prlOuterOnFace</field> <value name="VALUE"> <block type="base_time_await_return" id="7wxRZ.~)6BcX~?|qmR`z"> <value name="Promise"> <block type="bitbybit.occt.shapes.wire.placeWiresOnFace" id="[A%2k@sC*yap^O#5V}z*"> <value name="Wires"> <block type="variables_get" id="93{n4}2}|*CfuM5}+m^H"> <field name="VAR" id="VuD}(DXs1m6QMh7.FUZw">prlOuterTranslatedPromise</field> </block> </value> <value name="Face"> <block type="bitbybit.occt.shapes.face.getFace" id="FG08Q)blH%0$7uPUzlkc"> <value name="Shape"> <block type="variables_get" id="E_E6Wl2.V~R}TLMmNKIN"> <field name="VAR" id="ldD+4LNvts!5w[Pn%{pu">offsetResSurfaceMain</field> </block> </value> <value name="Index"> <block type="math_number" id="QjL#._UobfPxEjBEau12"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="1X4:l=`AG:,].81J;k!R"> <field name="VAR" id="3={IRQ9.s+1YNZC(R|C[">prlInnerOnFace</field> <value name="VALUE"> <block type="base_time_await_return" id="^Hy07fbP~E`V`h*-NeO|"> <value name="Promise"> <block type="bitbybit.occt.shapes.wire.placeWiresOnFace" id="vC](q=7D[3P*B+vS#NI4"> <value name="Wires"> <block type="variables_get" id="4=wzF32Mlj0/+7sJyQ6y"> <field name="VAR" id="[KonGC98P9UI$KTOaZ0x">prlTranslatedInnerPromise</field> </block> </value> <value name="Face"> <block type="bitbybit.occt.shapes.face.getFace" id=";i~RVl.|BGu1(rAwy6Oi"> <value name="Shape"> <block type="variables_get" id="r+8StO]LfNBQV)_CQxR3"> <field name="VAR" id="ldD+4LNvts!5w[Pn%{pu">offsetResSurfaceMain</field> </block> </value> <value name="Index"> <block type="math_number" id="Er}3Cr4P^5d._2k:X/yA"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="]P0H)Jzm$G3k)ulq|qn_"> <field name="VAR" id="-bZIDPD6jxuP!iFMX[((">prlCenterOnFace</field> <value name="VALUE"> <block type="base_time_await_return" id="jPB4`7gdslwnTMJDZzJ^"> <value name="Promise"> <block type="bitbybit.occt.shapes.wire.placeWiresOnFace" id="cNZhURwpItB@?roOCw;d"> <value name="Wires"> <block type="variables_get" id="~maF4)7^c8/m[S4?YP|["> <field name="VAR" id="|$PN]{}GVX[u:7#KZ}]j">prlTranslatedCenterPromise</field> </block> </value> <value name="Face"> <block type="bitbybit.occt.shapes.face.getFace" id="p6;LYau52dxu@m~-MG+X"> <value name="Shape"> <block type="variables_get" id="O7sF2rScE%rLU2kq90bM"> <field name="VAR" id="ldD+4LNvts!5w[Pn%{pu">offsetResSurfaceMain</field> </block> </value> <value name="Index"> <block type="math_number" id="Gbjwf,0j?RFuX:Vf.7%l"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="maO)e=c+F)st6x,THPJb"> <field name="VAR" id=",gKkM!R;f4g;gS^{t8fI">framesTopPromise</field> <value name="VALUE"> <block type="lists_create_with" id="IY@q.7C^8*b(trJm6d70"> <mutation items="0"> </mutation> </block> </value> <next> <block type="variables_set" id="E;=#Jtzr9]pqz1{UyY!F"> <field name="VAR" id="AB[dWnl[/fDKtNAp#;HU">framesBottomPromise</field> <value name="VALUE"> <block type="lists_create_with" id="!H#XSMq1({S=B.NMgaw$"> <mutation items="0"> </mutation> </block> </value> <next> <block type="variables_set" id="R#M^!xJTElt-ojmc8GR="> <field name="VAR" id="jZX5)i68[Y)`yPY_noM^">windowsPromise</field> <value name="VALUE"> <block type="lists_create_with" id="a~O`iQ(+61vT(i)MMm}W"> <mutation items="0"> </mutation> </block> </value> <next> <block type="controls_for" id=")mhw6F1N~g_5LuN@}*NW"> <field name="VAR" id="3-ph`bM~;B3iFbn2+4zw">k</field> <value name="FROM"> <block type="math_number" id="pN;l6@n]5u^y]HJ|6kX~"> <field name="NUM">1</field> </block> </value> <value name="TO"> <block type="lists_length" id="qj7!kV^zRl:hlE)?+we5"> <value name="VALUE"> <block type="variables_get" id="ydL[+*-143sz.kT,nM:k"> <field name="VAR" id="3={IRQ9.s+1YNZC(R|C[">prlInnerOnFace</field> </block> </value> </block> </value> <value name="BY"> <block type="math_number" id="LmO@}SN+5tR.,H9K0l+3"> <field name="NUM">1</field> </block> </value> <statement name="DO"> <block type="variables_set" id="g)P@[f6[ak@va2H:0PTr"> <field name="VAR" id="xG.4OQ~o,(4v5s+0r$4|">frameThickness</field> <value name="VALUE"> <block type="math_number" id="xHNtoG9*VvOJxB.u#gUr"> <field name="NUM">0</field> </block> </value> <next> <block type="controls_if" id="bW35iP{+u]}KpDY;~DeH"> <mutation else="1"> </mutation> <value name="IF0"> <block type="logic_compare" id="q`|QOy}pc_9!)m1;eE!!"> <field name="OP">EQ</field> <value name="A"> <block type="bitbybit.math.modulus" id="yCE.$PO*`eh?pF;n*:i0"> <value name="Number"> <block type="variables_get" id="TXuh`9K}vVyVD`,_ieg+"> <field name="VAR" id="3-ph`bM~;B3iFbn2+4zw">k</field> </block> </value> <value name="Modulus"> <block type="math_number" id="zZD06E4+t5.=X%%6nPxR"> <field name="NUM">2</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="@PX]ty=UUtjQ+Puz+sq}"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="Eg@FNU^PR]E*BUyJZSIp"> <field name="VAR" id="xG.4OQ~o,(4v5s+0r$4|">frameThickness</field> <value name="VALUE"> <block type="math_number" id="jDB*/FYaU4Wo@y?Hsi3m"> <field name="NUM">-0.1</field> </block> </value> </block> </statement> <statement name="ELSE"> <block type="variables_set" id="ar:ZF=8ur){^T@,}F.+x"> <field name="VAR" id="xG.4OQ~o,(4v5s+0r$4|">frameThickness</field> <value name="VALUE"> <block type="math_number" id="yxXDftNo|NJ1ZWfgol=U"> <field name="NUM">-0.2</field> </block> </value> </block> </statement> <next> <block type="lists_setIndex" id="YLwFx:PG_=*M`cq83Rg9"> <mutation at="false"> </mutation> <field name="MODE">INSERT</field> <field name="WHERE">LAST</field> <value name="LIST"> <block type="variables_get" id="*N[,4S-hs;tHxI2qX!eH"> <field name="VAR" id=",gKkM!R;f4g;gS^{t8fI">framesTopPromise</field> </block> </value> <value name="TO"> <block type="bitbybit.occt.operations.makeThickSolidSimple" id="Z!5?#6tN58UB#uY1d^)@"> <value name="Shape"> <block type="bitbybit.occt.operations.loft" id="D;(IfsS/Rk14?-l6Bxa_"> <value name="Shapes"> <block type="lists_create_with" id="BC`x1Cow$jcMN[UrguWc"> <mutation items="2"> </mutation> <value name="ADD0"> <block type="lists_getIndex" id="KH4pDuzeOkL4djdQPTYp"> <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="G[{I=3Qw7/Jec90Km/*C"> <field name="VAR" id="[aGwA%Xg!t{a)tJ5}eD:">prlOuterOnFace</field> </block> </value> <value name="AT"> <block type="variables_get" id=";XEM5L|(Ril8o6%4L*T["> <field name="VAR" id="3-ph`bM~;B3iFbn2+4zw">k</field> </block> </value> </block> </value> <value name="ADD1"> <block type="lists_getIndex" id="n6T|EOCW=]4lvVPnbN$r"> <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="=c6URBR[~Z$qA(bF.Bu^"> <field name="VAR" id="3={IRQ9.s+1YNZC(R|C[">prlInnerOnFace</field> </block> </value> <value name="AT"> <block type="variables_get" id="[2|g;Kdhz`tpUaxwFK7G"> <field name="VAR" id="3-ph`bM~;B3iFbn2+4zw">k</field> </block> </value> </block> </value> </block> </value> <value name="MakeSolid"> <block type="logic_boolean" id="E5uI|U4i#Ej-[1uHoDRr"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <value name="Offset"> <block type="variables_get" id="m#1V0t]]`h3n};Dg1nx:"> <field name="VAR" id="xG.4OQ~o,(4v5s+0r$4|">frameThickness</field> </block> </value> </block> </value> <next> <block type="lists_setIndex" id="8qx{ZnFtXdC~rj0zclr("> <mutation at="false"> </mutation> <field name="MODE">INSERT</field> <field name="WHERE">LAST</field> <value name="LIST"> <block type="variables_get" id="*(~a^*zvK5bwj@RXsGcE"> <field name="VAR" id="AB[dWnl[/fDKtNAp#;HU">framesBottomPromise</field> </block> </value> <value name="TO"> <block type="bitbybit.occt.operations.makeThickSolidSimple" id="_||o`DN{#Jty,N=d4M(y"> <value name="Shape"> <block type="bitbybit.occt.operations.loft" id="%yv=zKoElZFn`1Rm-#,@"> <value name="Shapes"> <block type="lists_create_with" id="spNyE@m(0_n9*OxBG|2}"> <mutation items="2"> </mutation> <value name="ADD0"> <block type="lists_getIndex" id="aun[vH=YU)rhS7M/o%~*"> <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="CQ;yJoX|sAdX*.*_HM4E"> <field name="VAR" id="3={IRQ9.s+1YNZC(R|C[">prlInnerOnFace</field> </block> </value> <value name="AT"> <block type="variables_get" id="3.evBP)Q@WK7um4U^P5r"> <field name="VAR" id="3-ph`bM~;B3iFbn2+4zw">k</field> </block> </value> </block> </value> <value name="ADD1"> <block type="lists_getIndex" id="DsgW@pw66jF_,BdygkUZ"> <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="$mq9/2T8cm}dsH7rdHY3"> <field name="VAR" id="[aGwA%Xg!t{a)tJ5}eD:">prlOuterOnFace</field> </block> </value> <value name="AT"> <block type="variables_get" id="/.x(mi`b!@PgM%MD05IZ"> <field name="VAR" id="3-ph`bM~;B3iFbn2+4zw">k</field> </block> </value> </block> </value> </block> </value> <value name="MakeSolid"> <block type="logic_boolean" id="KLsm`:(okFmO:0_Tg7;K"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <value name="Offset"> <block type="math_arithmetic" id="kZ;pEF6[Nh#0xY{U:qMs"> <field name="OP">MULTIPLY</field> <value name="A"> <block type="variables_get" id="~uhP4)bj;i_~NCa*iImV"> <field name="VAR" id="xG.4OQ~o,(4v5s+0r$4|">frameThickness</field> </block> </value> <value name="B"> <block type="math_number" id="!b+H;_ep~(F/MY4evT*8"> <field name="NUM">1</field> </block> </value> </block> </value> </block> </value> <next> <block type="lists_setIndex" id=".@O-h0rqe.)A#O#0%z^R"> <mutation at="false"> </mutation> <field name="MODE">INSERT</field> <field name="WHERE">LAST</field> <value name="LIST"> <block type="variables_get" id="EGb[4}bG7j/43yhOVrSP"> <field name="VAR" id="jZX5)i68[Y)`yPY_noM^">windowsPromise</field> </block> </value> <value name="TO"> <block type="bitbybit.occt.shapes.face.reversedFace" id="WX_K4!kENH3;#Y)![lZ|"> <value name="Shape"> <block type="bitbybit.occt.operations.loft" id="=rLB:oi-q^UItsM.*=I)"> <value name="Shapes"> <block type="lists_create_with" id="e`!]{nn,+y2{`vsqy/:-"> <mutation items="2"> </mutation> <value name="ADD0"> <block type="lists_getIndex" id="[|auIqrU7`5a-kR|i8zm"> <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="]X6o:@Lk+lNzRhG893?k"> <field name="VAR" id="3={IRQ9.s+1YNZC(R|C[">prlInnerOnFace</field> </block> </value> <value name="AT"> <block type="variables_get" id="7`tHRiTJJxCnSuP~PUt]"> <field name="VAR" id="3-ph`bM~;B3iFbn2+4zw">k</field> </block> </value> </block> </value> <value name="ADD1"> <block type="lists_getIndex" id="88(P|%kQ:puB+L+yKM[M"> <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="^]_HJwPSk4fKx,VA6Fo["> <field name="VAR" id="-bZIDPD6jxuP!iFMX[((">prlCenterOnFace</field> </block> </value> <value name="AT"> <block type="variables_get" id="]W{)LnY9da*Ahbd6WC,I"> <field name="VAR" id="3-ph`bM~;B3iFbn2+4zw">k</field> </block> </value> </block> </value> </block> </value> <value name="MakeSolid"> <block type="logic_boolean" id="bBRquJMD(3DrH6TEKR;O"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="variables_set" id="BT?x^*{r(_K/#NCHF)!6"> <field name="VAR" id="(w_I)eNw(w^A2^!fDaoR">roofElements</field> <value name="VALUE"> <block type="lists_create_with" id="AoW)Ux2vp+1n1~HuvImg"> <mutation items="3"> </mutation> <value name="ADD0"> <block type="bitbybit.occt.shapes.compound.makeCompound" id="QM~opaA(DQI2`P:q!o]6"> <value name="Shapes"> <block type="variables_get" id="xL1I,vt/)HZr@-pR+B!g"> <field name="VAR" id=",gKkM!R;f4g;gS^{t8fI">framesTopPromise</field> </block> </value> </block> </value> <value name="ADD1"> <block type="bitbybit.occt.shapes.compound.makeCompound" id="|78tHs6JP$CSk)S6OE:P"> <value name="Shapes"> <block type="variables_get" id="|TFJWb?{qJ75(_4SVnop"> <field name="VAR" id="AB[dWnl[/fDKtNAp#;HU">framesBottomPromise</field> </block> </value> </block> </value> <value name="ADD2"> <block type="bitbybit.occt.shapes.compound.makeCompound" id="i1rh;eh8dI]|@gDxP#~T"> <value name="Shapes"> <block type="variables_get" id="z7CUmG|-?o%/t{n%-VEX"> <field name="VAR" id="jZX5)i68[Y)`yPY_noM^">windowsPromise</field> </block> </value> </block> </value> </block> </value> <next> <block type="procedures_callnoreturn" id="%]qRLAU:_m:m^QQYE}Bf"> <mutation name="createColumns"> <arg name="roofElements"> </arg> </mutation> <value name="ARG0"> <block type="variables_get" id="SF=2@C,@=+m#wlBdh6BY"> <field name="VAR" id="(w_I)eNw(w^A2^!fDaoR">roofElements</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> <block type="procedures_defnoreturn" id=":W.^|z$(WGWsLeJlw(aV" x="3492" y="-538"> <mutation> <arg name="roofElements" varid="(w_I)eNw(w^A2^!fDaoR"> </arg> </mutation> <field name="NAME">createColumns</field> <comment pinned="false" h="80" w="160">Describe this function...</comment> <statement name="STACK"> <block type="base_time_async_context" id="Y`~l+CuW/+_T2{OE%_yZ"> <statement name="Then"> <block type="variables_set" id="-JFB0C?jqRB)As{;8?Y5"> <field name="VAR" id="$yivl^(Am[EkP_A06+[|">uDivColumns</field> <value name="VALUE"> <block type="math_number" id="zIDb,g?@TU4AK{Ax=b+Q"> <field name="NUM">6</field> </block> </value> <next> <block type="variables_set" id="qDV=172Ay~?*yoJYDs}w"> <field name="VAR" id="^rvuq!wt/JF*90FsJOeQ">vDivColumns</field> <value name="VALUE"> <block type="math_number" id="n-7oR%VQ./h^2m_pRBM("> <field name="NUM">3</field> </block> </value> <next> <block type="variables_set" id=")5P={|[c$LRM9g=,cwsc"> <field name="VAR" id="/%(HsU-ilHZm{!Zif:#Y">groundFace</field> <value name="VALUE"> <block type="bitbybit.occt.shapes.face.getFace" id="A{kgn$fN4d./FfS`$/.:"> <value name="Shape"> <block type="variables_get" id="r_u@X$H^QyD+8p%OV~/I"> <field name="VAR" id="_)rR8pCl7ac0%(xJKy_K">surfaceBottom</field> </block> </value> <value name="Index"> <block type="math_number" id="O=%CLqw;1(VQyNTY_:)y"> <field name="NUM">0</field> </block> </value> </block> </value> <next> <block type="variables_set" id="O+Ut{v0v/7?)IpbGV8k)"> <field name="VAR" id="*lx^8ZUn[Q^L|qSZuhHY">uvsGroundPromise</field> <value name="VALUE"> <block type="bitbybit.occt.shapes.face.subdivideToUV" id="q$wR7z3kIOIJ%)|~LM^N"> <value name="Shape"> <block type="variables_get" id="LcH+3jhfUNutlxL-s[S0"> <field name="VAR" id="/%(HsU-ilHZm{!Zif:#Y">groundFace</field> </block> </value> <value name="NrDivisionsU"> <block type="math_number" id="fWr(Yiw5!9o*/FBa#cAM"> <field name="NUM">3</field> </block> </value> <value name="NrDivisionsV"> <block type="math_arithmetic" id="oYq:Yd;cT,UQiz;a296="> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id=",KDXKD!BS%2.!jgnOJ$D"> <field name="VAR" id="K|Koc`l+CDW}3!pNIo!l">vSubdivisions</field> </block> </value> <value name="B"> <block type="variables_get" id="f,BqYKm0r-1b!b@%$e;2"> <field name="VAR" id="^rvuq!wt/JF*90FsJOeQ">vDivColumns</field> </block> </value> </block> </value> <value name="ShiftHalfStepU"> <block type="logic_boolean" id="IMnuG)}8%H99Waswpbup"> <field name="BOOL">FALSE</field> </block> </value> <value name="RemoveStartEdgeU"> <block type="logic_boolean" id="Yu]DCGNCV1G/Zr{0;*1n"> <field name="BOOL">TRUE</field> </block> </value> <value name="RemoveEndEdgeU"> <block type="logic_boolean" id="M2`WopN23;;#N:B*(jEP"> <field name="BOOL">TRUE</field> </block> </value> <value name="ShiftHalfStepV"> <block type="logic_boolean" id="5zPSj`[U2*SjJ.U-{8I?"> <field name="BOOL">FALSE</field> </block> </value> <value name="RemoveStartEdgeV"> <block type="logic_boolean" id="7RQjlGg:]NyDm|)4n66}"> <field name="BOOL">TRUE</field> </block> </value> <value name="RemoveEndEdgeV"> <block type="logic_boolean" id="eMFxngzsdG_cG$:L#/BC"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <next> <block type="variables_set" id="VA+APF:$uuih/Uy~uyrX"> <field name="VAR" id="TdcI-~EpnVX}!RhQtDWM">wireOnMiddleColumn</field> <value name="VALUE"> <block type="bitbybit.occt.shapes.wire.createParallelogramWire" id="chULa?@$cs(3|F%+RheF"> <value name="Center"> <block type="bitbybit.point.pointXYZ" id="Y{?}|3(AzfmzYo{TZhb["> <value name="X"> <block type="math_number" id="^[PqG`@Jihs*bW]j0;Pa"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id=")(=fWBhn~g^C63ooMys5"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_number" id="$XuBJ02C?i#.7%g7:SPt"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="Direction"> <block type="bitbybit.point.pointXYZ" id="]o_JdqlZs5aHIG$UJhUV"> <value name="X"> <block type="math_number" id="SoWA`v3$22Qy(4!^qvfH"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="Mc9uTXp;yj6D3YgZ60a_"> <field name="NUM">1</field> </block> </value> <value name="Z"> <block type="math_number" id="nC[Vm_=}JW)@2}0i@ec6"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="AroundCenter"> <block type="logic_boolean" id="o2,+qgX/whbt}6/AcnP1"> <field name="BOOL">TRUE</field> </block> </value> <value name="Width"> <block type="math_arithmetic" id="mq`fc++yKn((;kL7JgNK"> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id="-BZKb`TNMc}PIM)#.48]"> <field name="VAR" id="MhMGcmNTJe=DNNHgm5?q">vStepDistance</field> </block> </value> <value name="B"> <block type="math_number" id="L,.d7`Pb+R]F$,`l`GrE"> <field name="NUM">4</field> </block> </value> </block> </value> <value name="Height"> <block type="math_arithmetic" id="g[0J07(q}x4zwMZb$Y9Z"> <field name="OP">MULTIPLY</field> <value name="A"> <block type="variables_get" id="wj|g$V[[dwmFkrL0Fk-+"> <field name="VAR" id="MhMGcmNTJe=DNNHgm5?q">vStepDistance</field> </block> </value> <value name="B"> <block type="math_number" id="H~qK71(wmFK0y9j#R@|}"> <field name="NUM">-7</field> </block> </value> </block> </value> <value name="Angle"> <block type="math_number" id="/$Vb[R?vN4#RA?)F:(:y"> <field name="NUM">30</field> </block> </value> </block> </value> <next> <block type="variables_set" id="+U$vEXZZq%3x,;ACHmc$"> <field name="VAR" id="6Ev54^^AhgVN#L,t([Zf">wireOnGroundForColumn</field> <value name="VALUE"> <block type="bitbybit.occt.shapes.wire.createParallelogramWire" id="9vKmrB+L_*5^*N81Cj9`"> <value name="Center"> <block type="bitbybit.point.pointXYZ" id="M8PZ{K:y{tv3R~LVk@2!"> <value name="X"> <block type="math_number" id=".QR*ZxXt7uWe*5i3{[zj"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="qdTYA)Y;+-uM%uIQr.Xs"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_number" id="TL7%m6a/sBg3SZuT8F%n"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="Direction"> <block type="bitbybit.point.pointXYZ" id=".7@XbQMZ`5EDP4!$AuG5"> <value name="X"> <block type="math_number" id="[1v-pjIAK?V=A{{ocZH?"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="qvViHgI)IZ(4q,Q+Zfl{"> <field name="NUM">1</field> </block> </value> <value name="Z"> <block type="math_number" id="{XW?fd5[`K1sKE^}frG#"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="AroundCenter"> <block type="logic_boolean" id="j)CwlJ^r2;^Sx?X,=B?]"> <field name="BOOL">TRUE</field> </block> </value> <value name="Width"> <block type="math_arithmetic" id="EeD)D3J}l=1`kR8,#^5B"> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id="U#md1@*}09C{,6Fo*a-^"> <field name="VAR" id="MhMGcmNTJe=DNNHgm5?q">vStepDistance</field> </block> </value> <value name="B"> <block type="math_number" id="JAEl@P8G#sO~WE#n+Fk-"> <field name="NUM">3</field> </block> </value> </block> </value> <value name="Height"> <block type="math_arithmetic" id="ey,SmD{.yu`yn,X8|WcI"> <field name="OP">MULTIPLY</field> <value name="A"> <block type="variables_get" id="z[uqhVn)KAVv6g%t%@_q"> <field name="VAR" id="MhMGcmNTJe=DNNHgm5?q">vStepDistance</field> </block> </value> <value name="B"> <block type="math_number" id="9sxe%^B{xvCT[nvH?6xd"> <field name="NUM">-3</field> </block> </value> </block> </value> <value name="Angle"> <block type="math_number" id="aFTw;2G3g!--ukodn]gu"> <field name="NUM">15</field> </block> </value> </block> </value> <next> <block type="variables_set" id="ns;XtZ;Is8ysDh$1G67z"> <field name="VAR" id="V/60%4QKJ38i9{K=U9N,">wireOnRoofForColumn</field> <value name="VALUE"> <block type="bitbybit.occt.shapes.wire.createParallelogramWire" id="!fjkbpjtqP@}LM+cl.FE"> <value name="Center"> <block type="bitbybit.point.pointXYZ" id="/uTQE?M8)LhOQ(T/791B"> <value name="X"> <block type="math_number" id="]KmO{FejHTlH]]3K%tcj"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="#E@4)y5ha[?LB[Usfh~X"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_number" id="E]::F3#*E{,=jU$ws(z8"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="Direction"> <block type="bitbybit.point.pointXYZ" id="JG2.ekbs+|,rKG20,(E("> <value name="X"> <block type="math_number" id="*(3nw1:Q~5cG4%nj[~^V"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="I;=UQ.Rr-!{pdtw}pY=5"> <field name="NUM">1</field> </block> </value> <value name="Z"> <block type="math_number" id="0?C;;U3$@%n,2xCR_QrJ"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="AroundCenter"> <block type="logic_boolean" id="MRkke!W#vi_SQYI*)@46"> <field name="BOOL">TRUE</field> </block> </value> <value name="Width"> <block type="math_arithmetic" id="*zlFQt?dj.5VP@kX?p)?"> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id="ZPv#xB,YegD5jvYl9Zio"> <field name="VAR" id="MhMGcmNTJe=DNNHgm5?q">vStepDistance</field> </block> </value> <value name="B"> <block type="math_number" id="uXY*)G-I6Sn|B~Pp%RBm"> <field name="NUM">2</field> </block> </value> </block> </value> <value name="Height"> <block type="math_arithmetic" id="{)qat%5a},@]{og|9Vn@"> <field name="OP">MULTIPLY</field> <value name="A"> <block type="variables_get" id=";/g!R1q[J~6}*Pn%5_0t"> <field name="VAR" id="MhMGcmNTJe=DNNHgm5?q">vStepDistance</field> </block> </value> <value name="B"> <block type="math_number" id="v!aqRd[YbSwiIgk7cqF,"> <field name="NUM">-8</field> </block> </value> </block> </value> <value name="Angle"> <block type="math_number" id="D8`iJ}D_GO+(]!W$SrGf"> <field name="NUM">30</field> </block> </value> </block> </value> <next> <block type="variables_set" id="/zH=IV(eTk$9;552Bd@V"> <field name="VAR" id="!eaT~+j[NqITtgX2;rg[">faceToEvalColumns</field> <value name="VALUE"> <block type="bitbybit.occt.shapes.face.getFace" id="og@z[pK)OEh73n6x|%A#"> <value name="Shape"> <block type="bitbybit.occt.operations.offset" id="LZZ`geA;VpWDn]2!`mX+"> <value name="Shape"> <block type="variables_get" id="~OZ+3m@d$(YLM922~3#("> <field name="VAR" id="^FR)0Ddc/OYd-|yG}z1g">faceToEvaluate</field> </block> </value> <value name="Distance"> <block type="math_number" id="n_#u|=O?~J`xLYn;%+$J"> <field name="NUM">-0.23</field> </block> </value> <value name="Tolerance"> <block type="math_number" id="9jPfM=CRUfgJeNo9gCcz"> <field name="NUM">1e-7</field> </block> </value> </block> </value> <value name="Index"> <block type="math_number" id="x`{hAPysj|nLk-vZyb:z"> <field name="NUM">0</field> </block> </value> </block> </value> <next> <block type="variables_set" id=",QgXQ~s/m)8-`Tb4rRnc"> <field name="VAR" id="cSfBm{4/in%#SI5u3ZMy">uvsGround</field> <value name="VALUE"> <block type="base_time_await_return" id="XRxtrk)6s?h_iG~N+fMk"> <value name="Promise"> <block type="variables_get" id="|U?PRQRv|:,p_7js];i."> <field name="VAR" id="*lx^8ZUn[Q^L|qSZuhHY">uvsGroundPromise</field> </block> </value> </block> </value> <next> <block type="variables_set" id="u/HtNRL|vmV$h;wwEB_1"> <field name="VAR" id=":rhC^bPjxDTND+_A6FP8">columnBase</field> <value name="VALUE"> <block type="lists_create_with" id="S$+.oR;YST8[BO`:oMQ3"> <mutation items="0"> </mutation> </block> </value> <next> <block type="variables_set" id="fX#F5]D/S/tyoZ$?K4|M"> <field name="VAR" id="b@rIR_v#^_UW:xWos{C#">columnTop</field> <value name="VALUE"> <block type="lists_create_with" id="ePnKUzkup49^FTeACaIY"> <mutation items="0"> </mutation> </block> </value> <next> <block type="controls_forEach" id=";DzU6|$-J9/BIw1H[RCd"> <field name="VAR" id="{en%a36.!YbF*V[[j7?|">m</field> <value name="LIST"> <block type="variables_get" id="v)Z+:~G}~)?,?`dtz+6`"> <field name="VAR" id="cSfBm{4/in%#SI5u3ZMy">uvsGround</field> </block> </value> <statement name="DO"> <block type="variables_set" id="L5G1rV[JQeLe1TYVMC)J"> <field name="VAR" id="O_u*Wzv|Z#}3]p:S#s[R">uvPoint</field> <value name="VALUE"> <block type="bitbybit.point.pointXYZ" id="f|vF43[]uoNefWJ;B].1"> <value name="X"> <block type="lists_getIndex" id="YLW4uiU?[6^c#_b;172l"> <mutation statement="false" at="false"> </mutation> <field name="MODE">GET</field> <field name="WHERE">LAST</field> <value name="VALUE"> <block type="variables_get" id="F$#Bf/6.F^Y=!;Po(Q$]"> <field name="VAR" id="{en%a36.!YbF*V[[j7?|">m</field> </block> </value> </block> </value> <value name="Y"> <block type="math_number" id="a8}.!3VJfb^qKS[*|7k:"> <field name="NUM">1</field> </block> </value> <value name="Z"> <block type="lists_getIndex" id="BeYY?fyIz=xBH(*U(6N{"> <mutation statement="false" at="false"> </mutation> <field name="MODE">GET</field> <field name="WHERE">FIRST</field> <value name="VALUE"> <block type="variables_get" id="!}I*3F6.oCNjzuMA]*mZ"> <field name="VAR" id="{en%a36.!YbF*V[[j7?|">m</field> </block> </value> </block> </value> </block> </value> <next> <block type="lists_setIndex" id=")eJ{L|Jzv@g,fwkX$|go"> <mutation at="false"> </mutation> <field name="MODE">INSERT</field> <field name="WHERE">LAST</field> <value name="LIST"> <block type="variables_get" id="9k:!4MCMQ@uQK$@@Xk|k"> <field name="VAR" id=":rhC^bPjxDTND+_A6FP8">columnBase</field> </block> </value> <value name="TO"> <block type="bitbybit.occt.operations.loft" id="pSi*)}BQt^c2:Q!+XXBw"> <value name="Shapes"> <block type="lists_create_with" id=",`4hoHT6r_IzvYJ={6A#"> <mutation items="2"> </mutation> <value name="ADD0"> <block type="bitbybit.occt.transforms.translate" id="-h?zS1l}NWXAE9VsBBLr"> <value name="Shape"> <block type="bitbybit.occt.shapes.wire.placeWireOnFace" id="f.[x^Em/P=fq:%~F3=)U"> <value name="Wire"> <block type="bitbybit.occt.transforms.translate" id="WVav%fSX96.rsm1CA3I6"> <value name="Shape"> <block type="variables_get" id="/)qs(q1R6-1Tmm#SAc(E"> <field name="VAR" id="TdcI-~EpnVX}!RhQtDWM">wireOnMiddleColumn</field> </block> </value> <value name="Translation"> <block type="variables_get" id="o^BykVriW4za}1Nk(8!;"> <field name="VAR" id="O_u*Wzv|Z#}3]p:S#s[R">uvPoint</field> </block> </value> </block> </value> <value name="Face"> <block type="variables_get" id="]hvs9s/ImVbOd[ARQ(p$"> <field name="VAR" id="!eaT~+j[NqITtgX2;rg[">faceToEvalColumns</field> </block> </value> </block> </value> <value name="Translation"> <block type="bitbybit.point.pointXYZ" id="YlNFde]_l`ib@V^ps/|a"> <value name="X"> <block type="math_number" id="f;fo+Wv-Y=h61jUI{@cR"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id=")e_:y:wi1gdsM5Z33bTU"> <field name="NUM">-1</field> </block> </value> <value name="Z"> <block type="math_number" id="sx~qOBoKanZ.8m{QQ}Iy"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> <value name="ADD1"> <block type="bitbybit.occt.shapes.wire.placeWireOnFace" id="^BJu#ue^{db;`z+dl,kg"> <value name="Wire"> <block type="bitbybit.occt.transforms.translate" id="Lkn@ddIy`Q|cEfSmBP=l"> <value name="Shape"> <block type="variables_get" id=",#p,)~vhCvhK|!0`||CE"> <field name="VAR" id="6Ev54^^AhgVN#L,t([Zf">wireOnGroundForColumn</field> </block> </value> <value name="Translation"> <block type="variables_get" id="HY/?zqx:g4tsZ4Jwq(tp"> <field name="VAR" id="O_u*Wzv|Z#}3]p:S#s[R">uvPoint</field> </block> </value> </block> </value> <value name="Face"> <block type="variables_get" id="#/Oow5RsAktzcmWJI57:"> <field name="VAR" id="/%(HsU-ilHZm{!Zif:#Y">groundFace</field> </block> </value> </block> </value> </block> </value> <value name="MakeSolid"> <block type="logic_boolean" id="2G%l26`1XlA`fI:8@#X~"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <next> <block type="lists_setIndex" id="0CIb]bE,!TB:W|n4fe2t"> <mutation at="false"> </mutation> <field name="MODE">INSERT</field> <field name="WHERE">LAST</field> <value name="LIST"> <block type="variables_get" id="!0FRqbo3w(e2R3o-qJKK"> <field name="VAR" id="b@rIR_v#^_UW:xWos{C#">columnTop</field> </block> </value> <value name="TO"> <block type="bitbybit.occt.operations.loft" id="WqrmowW]GPxpm*h!-Mz7"> <value name="Shapes"> <block type="lists_create_with" id="3Q:?m@ry@titP:$|PLOs"> <mutation items="2"> </mutation> <value name="ADD0"> <block type="bitbybit.occt.transforms.translate" id="Nx1yqoA?ERRzYEIWu,$Q"> <value name="Shape"> <block type="bitbybit.occt.shapes.wire.placeWireOnFace" id="GpM5C0F=H/hyR;^S!*C?"> <value name="Wire"> <block type="bitbybit.occt.transforms.translate" id="_G=;hK~o)p47qn=XBe^0"> <value name="Shape"> <block type="variables_get" id="v7{6n|1E~F+lK*6TL}O*"> <field name="VAR" id="TdcI-~EpnVX}!RhQtDWM">wireOnMiddleColumn</field> </block> </value> <value name="Translation"> <block type="variables_get" id="1TfhK-RDI#Nh:ok7a|zk"> <field name="VAR" id="O_u*Wzv|Z#}3]p:S#s[R">uvPoint</field> </block> </value> </block> </value> <value name="Face"> <block type="variables_get" id="5x]Sz]?3fn(Z#H)=6|ba"> <field name="VAR" id="!eaT~+j[NqITtgX2;rg[">faceToEvalColumns</field> </block> </value> </block> </value> <value name="Translation"> <block type="bitbybit.point.pointXYZ" id="Hw)Y5G36U;^cbKjW-|F0"> <value name="X"> <block type="math_number" id="~13l}PHGtN-p3SKi+uK:"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="/5qONZjwvcN03E:(Fx*="> <field name="NUM">-1</field> </block> </value> <value name="Z"> <block type="math_number" id="2E{,b@1xj=dq=mj#ycag"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> <value name="ADD1"> <block type="bitbybit.occt.shapes.wire.placeWireOnFace" id="/:g-),Q$#5deltG1UH^G"> <value name="Wire"> <block type="bitbybit.occt.transforms.translate" id="eV`elciuax/)zq,+?|5n"> <value name="Shape"> <block type="variables_get" id="X4t_,2wKaU7aAPS$h:xL"> <field name="VAR" id="V/60%4QKJ38i9{K=U9N,">wireOnRoofForColumn</field> </block> </value> <value name="Translation"> <block type="variables_get" id="YZh80~2vgtm$Y]h-s@r*"> <field name="VAR" id="O_u*Wzv|Z#}3]p:S#s[R">uvPoint</field> </block> </value> </block> </value> <value name="Face"> <block type="variables_get" id="c_%q)]|Rr?N8HiZ-bA-r"> <field name="VAR" id="!eaT~+j[NqITtgX2;rg[">faceToEvalColumns</field> </block> </value> </block> </value> </block> </value> <value name="MakeSolid"> <block type="logic_boolean" id="Q1kM*/tp/=NAS^J?04{J"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="variables_set" id="F!}fIaRtwlqbp`5}iW6A"> <field name="VAR" id="Obk[vz^n7Mv)Cg?T^FJ^">columnElements</field> <value name="VALUE"> <block type="lists_create_with" id="zZ]j1kd;G]},!}8Esn6Q"> <mutation items="2"> </mutation> <value name="ADD0"> <block type="bitbybit.occt.shapes.compound.makeCompound" id="?f58nX1N?$B!4erftLD|"> <value name="Shapes"> <block type="variables_get" id="L$TdvB:D=Wv-P}#5Pp[9"> <field name="VAR" id=":rhC^bPjxDTND+_A6FP8">columnBase</field> </block> </value> </block> </value> <value name="ADD1"> <block type="bitbybit.occt.shapes.compound.makeCompound" id="[,5g;mH-Ta}e7Dp+iLr9"> <value name="Shapes"> <block type="variables_get" id="2oOF$_Izs#(ti8~k,Pxk"> <field name="VAR" id="b@rIR_v#^_UW:xWos{C#">columnTop</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="cgDhE11NfE#qPi,YOr0F"> <field name="VAR" id="No-.@!ajW`iZNhtYFs:|">walkway</field> <value name="VALUE"> <block type="bitbybit.occt.operations.makeThickSolidSimple" id="j3A5!92q#w_^$tt~*@tl"> <value name="Shape"> <block type="bitbybit.occt.fillets.filletEdges" id="7f]M8|nS^O(eaaF#6EB3"> <value name="Shape"> <block type="bitbybit.occt.operations.extrude" id="FK59LnodoH(p5u~1/Kg`"> <value name="Shape"> <block type="bitbybit.occt.shapes.wire.getWire" id="qZkl{1DU:a,Lw+F4gw|Y"> <value name="Shape"> <block type="variables_get" id="y7=OHgQUvQ2w]i@Q(Ds@"> <field name="VAR" id="_)rR8pCl7ac0%(xJKy_K">surfaceBottom</field> </block> </value> <value name="Index"> <block type="math_number" id="5jG!7RHl%OQ)6PL[U_?,"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="Direction"> <block type="bitbybit.point.pointXYZ" id="5VT#@,qwV||dP$}mDs[:"> <value name="X"> <block type="math_number" id="i=FS|Dt|zgU~E+y;mR~p"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="ugI?{B45#~M4uUs_2uO`"> <field name="NUM">0.2</field> </block> </value> <value name="Z"> <block type="math_number" id="i{-x*n-NU]n[TRWD8de;"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> <value name="Radius"> <block type="math_number" id="nXwZ..j~tW.5HOT0OHi-"> <field name="NUM">5</field> </block> </value> </block> </value> <value name="Offset"> <block type="math_number" id=":q1/lXs|C8,$p]STB1zw"> <field name="NUM">-4</field> </block> </value> </block> </value> <next> <block type="procedures_callnoreturn" id="FxP7qO(:)*S1hNAF?B@z"> <mutation name="drawEverything"> <arg name="roofElements"> </arg> <arg name="columnElements"> </arg> <arg name="walkway"> </arg> </mutation> <value name="ARG0"> <block type="variables_get" id="a~J$`b_8B]h*W1TSflTk"> <field name="VAR" id="(w_I)eNw(w^A2^!fDaoR">roofElements</field> </block> </value> <value name="ARG1"> <block type="variables_get" id="wzVY(AE|ROsu[HjLm{tl"> <field name="VAR" id="Obk[vz^n7Mv)Cg?T^FJ^">columnElements</field> </block> </value> <value name="ARG2"> <block type="variables_get" id="V[uMYmo37/@Z$huEm*y;"> <field name="VAR" id="No-.@!ajW`iZNhtYFs:|">walkway</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> <block type="procedures_defnoreturn" id=",I!i8qQNgzepZ=RV[-1;" x="5453" y="-601"> <mutation> <arg name="roofElements" varid="(w_I)eNw(w^A2^!fDaoR"> </arg> <arg name="columnElements" varid="Obk[vz^n7Mv)Cg?T^FJ^"> </arg> <arg name="walkway" varid="No-.@!ajW`iZNhtYFs:|"> </arg> </mutation> <field name="NAME">drawEverything</field> <comment pinned="false" h="80" w="160">Describe this function...</comment> <statement name="STACK"> <block type="base_time_async_context" id=";B#x_pc4x:LE={f4Ul0?"> <statement name="Then"> <block type="variables_set" id="!xZ;GVarH1oL6t:`q~-f"> <field name="VAR" id=":{:pInCv~v4mN}VULXJe">roofTopOptions</field> <value name="VALUE"> <block type="bitbybit.draw.optionsOcctShapeMaterial" id="L+J4Ngjqlk,PMVR/`d}a"> <value name="Precision"> <block type="math_number" id="y7Ih2Is-r?:@,-c1hBH%"> <field name="NUM">0.005</field> </block> </value> <value name="FaceMaterial"> <block type="bitbybit.babylon.material.pbrMetallicRoughness.create" id="/vN0HpK+dlOq)y2N*lb`"> <value name="Name"> <block type="text" id="gMA,(,FNTlP(]hSP]pEF"> <field name="TEXT">TopRoof</field> </block> </value> <value name="BaseColor"> <block type="colour_picker" id="DtTjt+rM6@(N6gp`9B9$"> <field name="COLOUR">#333333</field> </block> </value> <value name="Metallic"> <block type="math_number" id="bY6+e[$2|*l%r`Jx.y(f"> <field name="NUM">0.6</field> </block> </value> <value name="Roughness"> <block type="math_number" id="Bg%F-*l7Lhqo1K#OWl~n"> <field name="NUM">0.5</field> </block> </value> <value name="Alpha"> <block type="math_number" id="KTzPts?vD`zd=LT^YPc%"> <field name="NUM">1</field> </block> </value> <value name="BackFaceCulling"> <block type="logic_boolean" id="hE|ACps}aCI6BK3`~bmM"> <field name="BOOL">FALSE</field> </block> </value> <value name="ZOffset"> <block type="math_number" id="A#/2-+#*ugG#yT|vz`@;"> <field name="NUM">2</field> </block> </value> </block> </value> <value name="DrawEdges"> <block type="logic_boolean" id="6u`2~Pgas]6q,J~x.oR9"> <field name="BOOL">TRUE</field> </block> </value> <value name="EdgeColour"> <block type="colour_picker" id="c/_}#+FhB/5cy_j%S/D*"> <field name="COLOUR">#000000</field> </block> </value> <value name="EdgeWidth"> <block type="math_number" id=":M~o{n53%C!Ik%J{j^]-"> <field name="NUM">0.05</field> </block> </value> </block> </value> <next> <block type="variables_set" id="zfM]{!gKdfr{5i$mu-Cg"> <field name="VAR" id="uTzH((#w}Ij;zzjur!5F">roofBottomOptions</field> <value name="VALUE"> <block type="bitbybit.draw.optionsOcctShapeMaterial" id="^H@@r0W6o*o*)8`obj32"> <value name="Precision"> <block type="math_number" id="vorD8D;:EmA@iXnjwr9N"> <field name="NUM">0.005</field> </block> </value> <value name="FaceMaterial"> <block type="bitbybit.babylon.material.pbrMetallicRoughness.create" id="ZuOBVU8tNXc8`b*0z$gF"> <value name="Name"> <block type="text" id="d3uBVHWHVaF0eci;E?vR"> <field name="TEXT">BottomRoof</field> </block> </value> <value name="BaseColor"> <block type="colour_picker" id="6L-]/ySk[Yqa#6`6YSs["> <field name="COLOUR">#6600cc</field> </block> </value> <value name="Metallic"> <block type="math_number" id="/g0SeOUJ?!X-`CkXVXrL"> <field name="NUM">0.7</field> </block> </value> <value name="Roughness"> <block type="math_number" id="owZ|SvtRXCzTGjq0S=nU"> <field name="NUM">0.4</field> </block> </value> <value name="Alpha"> <block type="math_number" id="_=*v%VMr=i14hqrzGyT*"> <field name="NUM">1</field> </block> </value> <value name="BackFaceCulling"> <block type="logic_boolean" id=";s@VpMXW1p{(ZT~28!k6"> <field name="BOOL">FALSE</field> </block> </value> <value name="ZOffset"> <block type="math_number" id="]G*0/z*0~#O)Fva-$jf."> <field name="NUM">2</field> </block> </value> </block> </value> <value name="DrawEdges"> <block type="logic_boolean" id="av~|vW=A(gSM0MW)z,+E"> <field name="BOOL">TRUE</field> </block> </value> <value name="EdgeColour"> <block type="colour_picker" id="3=93*#-6r3oRn$U;Bbza"> <field name="COLOUR">#333399</field> </block> </value> <value name="EdgeWidth"> <block type="math_number" id="{iB{y)ga{GYM@fm?qE7I"> <field name="NUM">0.05</field> </block> </value> </block> </value> <next> <block type="variables_set" id="-Wr,`Oe,a-%(/t?ukEio"> <field name="VAR" id="_sI/G~-@l^Q$uG9O*Iee">roofGlassOptions</field> <value name="VALUE"> <block type="bitbybit.draw.optionsOcctShapeMaterial" id="VVZVq]N6hr}J+vS((E]~"> <value name="Precision"> <block type="math_number" id="BvVxbB;294j_pme(aa-A"> <field name="NUM">0.1</field> </block> </value> <value name="FaceMaterial"> <block type="bitbybit.babylon.material.pbrMetallicRoughness.create" id="),.g)%to_j;rC32=X2,C"> <value name="Name"> <block type="text" id="Hi;N5($S|80IEi8BE1T5"> <field name="TEXT">Glass</field> </block> </value> <value name="BaseColor"> <block type="colour_picker" id="WkOe!S^Nm~NZYu}Hc1bR"> <field name="COLOUR">#3366ff</field> </block> </value> <value name="Metallic"> <block type="math_number" id="!h!2sY^BQoJz*/a!5Y5Q"> <field name="NUM">0.7</field> </block> </value> <value name="Roughness"> <block type="math_number" id="rfCm.NjwTg]s.WW*.bqv"> <field name="NUM">0.1</field> </block> </value> <value name="Alpha"> <block type="math_number" id="wtq#Y4Nq!=`*2rW?@kAg"> <field name="NUM">0.5</field> </block> </value> <value name="BackFaceCulling"> <block type="logic_boolean" id="e,X6)wOZRT=1[m@WN?,L"> <field name="BOOL">FALSE</field> </block> </value> <value name="ZOffset"> <block type="math_number" id="ugp=6!poL*`Szz[$`flJ"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="DrawEdges"> <block type="logic_boolean" id=":UCANEIAn0_Fbcal89Be"> <field name="BOOL">FALSE</field> </block> </value> <value name="EdgeColour"> <block type="colour_picker" id=".$Kcb)}/RbJkIs8;wcH%"> <field name="COLOUR">#ffffff</field> </block> </value> <value name="EdgeWidth"> <block type="math_number" id="W04:=z8UX}t~p0PSjFyK"> <field name="NUM">0.05</field> </block> </value> </block> </value> <next> <block type="variables_set" id="Drf`E@j`euHVGjW@6X47"> <field name="VAR" id="(c**hXH!56[y}eFm`:om">columnBaseOptions</field> <value name="VALUE"> <block type="bitbybit.draw.optionsOcctShapeSimple" id="0nwCZ%s!AI4*4$w,!VvP"> <value name="Precision"> <block type="math_number" id="ULdDDv6N#wd;RD*XApjc"> <field name="NUM">0.05</field> </block> </value> <value name="DrawFaces"> <block type="logic_boolean" id="?VPEa{JIlzcnhVy+Gv9T"> <field name="BOOL">FALSE</field> </block> </value> <value name="FaceColour"> <block type="colour_picker" id="AOdg#d}0O.SrS-ApcBD|"> <field name="COLOUR">#0000ff</field> </block> </value> <value name="DrawEdges"> <block type="logic_boolean" id="E|%0Yu.7ZjGsJB(`)~cC"> <field name="BOOL">TRUE</field> </block> </value> <value name="EdgeColour"> <block type="colour_picker" id="qIaFl|B0h0bdO=9~/54o"> <field name="COLOUR">#000000</field> </block> </value> <value name="EdgeWidth"> <block type="math_number" id="Koz!VX$6W%(+GoNDBSPa"> <field name="NUM">5</field> </block> </value> </block> </value> <next> <block type="variables_set" id="9IVO+T-E+Q^7CLY|I(ve"> <field name="VAR" id="Lb#;CZTb.U=]?/FE0R}d">columnTopOptions</field> <value name="VALUE"> <block type="bitbybit.draw.optionsOcctShapeMaterial" id="y[zlH2zbq^}/?6IZ-;N."> <value name="Precision"> <block type="math_number" id="bmcs~.X|XhPjKmjwcHjZ"> <field name="NUM">0.001</field> </block> </value> <value name="FaceMaterial"> <block type="bitbybit.babylon.material.pbrMetallicRoughness.create" id="|reF8kzRjxZOf!|_7:|["> <value name="Name"> <block type="text" id="C2wrm:(U$b6~gLMf?zJK"> <field name="TEXT">Custom Name1</field> </block> </value> <value name="BaseColor"> <block type="colour_picker" id="KpoPy^b%9,J94oZMUMMH"> <field name="COLOUR">#6600cc</field> </block> </value> <value name="Metallic"> <block type="math_number" id="M$UsYfI{2@daMygeZ?%k"> <field name="NUM">0.6</field> </block> </value> <value name="Roughness"> <block type="math_number" id="OX8X(0T.uTrjbfXTr@4h"> <field name="NUM">0.5</field> </block> </value> <value name="Alpha"> <block type="math_number" id="_32PRgU}9EaHizkw:qpC"> <field name="NUM">0.1</field> </block> </value> <value name="BackFaceCulling"> <block type="logic_boolean" id="Klx*fFtoI6eQt%Nm|Y_r"> <field name="BOOL">FALSE</field> </block> </value> <value name="ZOffset"> <block type="math_number" id="XK,|IU:A.)/MO6/1M7R8"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="DrawEdges"> <block type="logic_boolean" id="dUd7cgzr~$!QdIR$tQd}"> <field name="BOOL">FALSE</field> </block> </value> <value name="EdgeColour"> <block type="colour_picker" id="9~_($YjtX-$*GPFjRUo|"> <field name="COLOUR">#000000</field> </block> </value> <value name="EdgeWidth"> <block type="math_number" id="x$?$Nnsb7BL71S;LWyve"> <field name="NUM">5</field> </block> </value> </block> </value> <next> <block type="variables_set" id="vbUDkFJI(d(8%/bv3tv_"> <field name="VAR" id="mvsRC!k3oyO4_t%xUm=B">walkwayOptions</field> <value name="VALUE"> <block type="bitbybit.draw.optionsOcctShapeMaterial" id="EtI-vrEYcU?q4Iaz#o29"> <value name="Precision"> <block type="math_number" id="wqEvFIQ%^Ct*4Hi(Juh8"> <field name="NUM">0.001</field> </block> </value> <value name="FaceMaterial"> <block type="bitbybit.babylon.material.pbrMetallicRoughness.create" id="8SQK)??UeP0+(s(VFry;"> <value name="Name"> <block type="text" id="~w%~nwq6coVE)+^7!Y9H"> <field name="TEXT">Custom Name2</field> </block> </value> <value name="BaseColor"> <block type="colour_picker" id="^/[Wid?*r3)z%Hl-E@_y"> <field name="COLOUR">#000000</field> </block> </value> <value name="Metallic"> <block type="math_number" id="Nb?fS4Li{s1oVRe0rf~p"> <field name="NUM">0.7</field> </block> </value> <value name="Roughness"> <block type="math_number" id="caW)Kt(gWZ#_jjZ*8_hr"> <field name="NUM">0.4</field> </block> </value> <value name="Alpha"> <block type="math_number" id="(v]xw.]^UJ!gp;Nq!QJi"> <field name="NUM">1</field> </block> </value> <value name="BackFaceCulling"> <block type="logic_boolean" id="B;%4}|-~V~@I,jl?C9;)"> <field name="BOOL">FALSE</field> </block> </value> <value name="ZOffset"> <block type="math_number" id="7J,7^FZS`ntQkt|_X7`G"> <field name="NUM">2</field> </block> </value> </block> </value> <value name="DrawEdges"> <block type="logic_boolean" id="YE(@pDHaidbS/!6m]~[Z"> <field name="BOOL">TRUE</field> </block> </value> <value name="EdgeColour"> <block type="colour_picker" id="x[DX0r4`h|;$MS)nP*^S"> <field name="COLOUR">#6666cc</field> </block> </value> <value name="EdgeWidth"> <block type="math_number" id="aC@KBj=Ub^7HxWUC3F[|"> <field name="NUM">0.05</field> </block> </value> </block> </value> <next> <block type="variables_set" id="td4hZ8Pu@k9=i#gXEuDs"> <field name="VAR" id="%JzY:cK3~3fxNUBozxc8">groundOptions</field> <value name="VALUE"> <block type="bitbybit.draw.optionsOcctShapeMaterial" id="4t);#jaAzq$kYGd}.5=F"> <value name="Precision"> <block type="math_number" id="S?%v7H?e`-?0e|hBPDC1"> <field name="NUM">0.05</field> </block> </value> <value name="FaceMaterial"> <block type="bitbybit.babylon.material.pbrMetallicRoughness.create" id="^1gt$?uG;x+PD:2Nw3i2"> <value name="Name"> <block type="text" id="h-ESyIQObIpo?}l+)tgn"> <field name="TEXT">Custom Name2</field> </block> </value> <value name="BaseColor"> <block type="colour_picker" id="tLUfB]QsZG40mA-ozC[7"> <field name="COLOUR">#3366ff</field> </block> </value> <value name="Metallic"> <block type="math_number" id="`+5PwCqO+:xeWoZ*h^Kc"> <field name="NUM">0.7</field> </block> </value> <value name="Roughness"> <block type="math_number" id="fKLz{aSlA,4XENz8o/q5"> <field name="NUM">0.4</field> </block> </value> <value name="Alpha"> <block type="math_number" id="JC%N7pF|nrscsb!.TZcH"> <field name="NUM">1</field> </block> </value> <value name="BackFaceCulling"> <block type="logic_boolean" id="AbXODPkg.aT!tR7WxoiW"> <field name="BOOL">FALSE</field> </block> </value> <value name="ZOffset"> <block type="math_number" id="XVmaOxrmxEzx_bk3mDTD"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="DrawEdges"> <block type="logic_boolean" id="}sAx7Vm_mHr)~:rn=Y-{"> <field name="BOOL">FALSE</field> </block> </value> <value name="EdgeColour"> <block type="colour_picker" id="j)(b^j;hCw+zm_J?/y=W"> <field name="COLOUR">#000000</field> </block> </value> <value name="EdgeWidth"> <block type="math_number" id="0Gaa2}V0OFf7[Y9Fw1/K"> <field name="NUM">0.05</field> </block> </value> </block> </value> <next> <block type="variables_set" id="lBi@1vx_sR)H+G.B~zI;"> <field name="VAR" id=")jFwhfJ64YHbuNK27:RE">roofTopMeshPromise</field> <value name="VALUE"> <block type="bitbybit.draw.drawAnyAsync" id="oo-zcEuxrah#r|@#i*Ne"> <value name="Entity"> <block type="lists_getIndex" id="+C+?#AIwG9)3fT0%,6Gf"> <mutation statement="false" at="false"> </mutation> <field name="MODE">GET</field> <field name="WHERE">FIRST</field> <value name="VALUE"> <block type="variables_get" id="!_t`FtWNC.b?gwO/F6p="> <field name="VAR" id="(w_I)eNw(w^A2^!fDaoR">roofElements</field> </block> </value> </block> </value> <value name="Options"> <block type="variables_get" id="1B}IRa.Gv`0=P~x%+d0a"> <field name="VAR" id=":{:pInCv~v4mN}VULXJe">roofTopOptions</field> </block> </value> </block> </value> <next> <block type="variables_set" id="c1]bWeu6+rB3=VbS_Q]u"> <field name="VAR" id="0G}AZ%IK~JyC.!ows@Uc">roofBottomMeshPromise</field> <value name="VALUE"> <block type="bitbybit.draw.drawAnyAsync" id="xymiMbn`;y75b!1rD2_+"> <value name="Entity"> <block type="lists_getIndex" id="S!,f7bvb]Axx,^GW/zd|"> <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="Q?4aJdtkd86STUM5zo@H"> <field name="VAR" id="(w_I)eNw(w^A2^!fDaoR">roofElements</field> </block> </value> <value name="AT"> <block type="math_number" id="1Jp$P*H7gY;*tsPEyF/2"> <field name="NUM">2</field> </block> </value> </block> </value> <value name="Options"> <block type="variables_get" id="7*EQFk5r~curYQOxaT7E"> <field name="VAR" id="uTzH((#w}Ij;zzjur!5F">roofBottomOptions</field> </block> </value> </block> </value> <next> <block type="variables_set" id="W^$X8#MMteI*mTvgN@(l"> <field name="VAR" id="f$6G-eXhk_lJ,Cn=?1iA">roofGlassMeshPromise</field> <value name="VALUE"> <block type="bitbybit.draw.drawAnyAsync" id="(i45ib`7k6s:I$_1$eND"> <value name="Entity"> <block type="lists_getIndex" id="rW7T/X}uZnCrVpxx0efR"> <mutation statement="false" at="false"> </mutation> <field name="MODE">GET</field> <field name="WHERE">LAST</field> <value name="VALUE"> <block type="variables_get" id="3mhD;i%Ak[AVn})pP7b@"> <field name="VAR" id="(w_I)eNw(w^A2^!fDaoR">roofElements</field> </block> </value> </block> </value> <value name="Options"> <block type="variables_get" id="OvMt;4v[*DC]~lI~!D%f"> <field name="VAR" id="_sI/G~-@l^Q$uG9O*Iee">roofGlassOptions</field> </block> </value> </block> </value> <next> <block type="variables_set" id="J3@F}a:U48YNPh73eMk4"> <field name="VAR" id="V8rL(y|lr.Q.8[Zsf/mE">columnBaseMeshPromise</field> <value name="VALUE"> <block type="bitbybit.draw.drawAnyAsync" id="r;:uCr3m8XuPd5F{PzsP"> <value name="Entity"> <block type="lists_getIndex" id="7y:uJONm{w%-)Hk%kgWr"> <mutation statement="false" at="false"> </mutation> <field name="MODE">GET</field> <field name="WHERE">FIRST</field> <value name="VALUE"> <block type="variables_get" id="@EmbPK7JD(arO*9_|!4a"> <field name="VAR" id="Obk[vz^n7Mv)Cg?T^FJ^">columnElements</field> </block> </value> </block> </value> <value name="Options"> <block type="variables_get" id="zZ6q_0$||w*T!|K%|XCS"> <field name="VAR" id="(c**hXH!56[y}eFm`:om">columnBaseOptions</field> </block> </value> </block> </value> <next> <block type="variables_set" id="ggob9Z,Cj0793WdObVgw"> <field name="VAR" id="Xmx4o3$9iSkLnYrnJW3,">columnTopMeshPromise</field> <value name="VALUE"> <block type="bitbybit.draw.drawAnyAsync" id="ph8w8Fof5`~c@D7NNz/="> <value name="Entity"> <block type="lists_getIndex" id="#OSBH7y`ARB~qX2^9!3@"> <mutation statement="false" at="false"> </mutation> <field name="MODE">GET</field> <field name="WHERE">LAST</field> <value name="VALUE"> <block type="variables_get" id="vj1_p~p-.]-A8q,k#gI7"> <field name="VAR" id="Obk[vz^n7Mv)Cg?T^FJ^">columnElements</field> </block> </value> </block> </value> <value name="Options"> <block type="variables_get" id="u1SB;YOUEA]/0U1k2F8+"> <field name="VAR" id="Lb#;CZTb.U=]?/FE0R}d">columnTopOptions</field> </block> </value> </block> </value> <next> <block type="variables_set" id="`I2=MT)m0~57h;KCOg$z"> <field name="VAR" id="NP)@GjOv4@SCk.GDOX39">groundMeshPromise</field> <value name="VALUE"> <block type="bitbybit.draw.drawAnyAsync" id="Nc4Q?1g0hRf8kvG.w(I_"> <value name="Entity"> <block type="bitbybit.occt.shapes.face.createCircleFace" id="O3}s]r]GR+AhAeX83fa,"> <value name="Radius"> <block type="math_number" id="@9aLSZ05{uQLsI=rhCe]"> <field name="NUM">40</field> </block> </value> <value name="Center"> <block type="bitbybit.point.pointXYZ" id="Wg`%Pw~MRgCsGnq}oX$K"> <value name="X"> <block type="math_number" id="m##=,hSnUz+r.mY~F8k6"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id=".hiwMKqlskF$UX0;#xMV"> <field name="NUM">-0.2</field> </block> </value> <value name="Z"> <block type="math_number" id="6+6?7_17~4?VO_tgj6!M"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="Direction"> <block type="bitbybit.point.pointXYZ" id="XK0bg|x;@24z[=qWIkpx"> <value name="X"> <block type="math_number" id="(tz@?]TuSa]g{bpp1O.u"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="ns;H#=ij+1^W_4g$g6y,"> <field name="NUM">1</field> </block> </value> <value name="Z"> <block type="math_number" id="VO|S]248.F[*BZOqHArS"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> <value name="Options"> <block type="variables_get" id="Z-PuQPk~)n!.%Z@D[P%,"> <field name="VAR" id="%JzY:cK3~3fxNUBozxc8">groundOptions</field> </block> </value> </block> </value> <next> <block type="variables_set" id="22uY-5O+rASSRK!HWJp`"> <field name="VAR" id="A,Y.pPFWC(TWX%*j5qX=">walkwayMeshPromise</field> <value name="VALUE"> <block type="bitbybit.draw.drawAnyAsync" id="DdTne$(W$cj$;tZntFA/"> <value name="Entity"> <block type="variables_get" id="Y%Vt.GuS1a~*)i3EF;,3"> <field name="VAR" id="No-.@!ajW`iZNhtYFs:|">walkway</field> </block> </value> <value name="Options"> <block type="variables_get" id="4O9P};dPki$k[ig%()8b"> <field name="VAR" id="mvsRC!k3oyO4_t%xUm=B">walkwayOptions</field> </block> </value> </block> </value> <next> <block type="variables_set" id="6q-C8O8Q1f-QHix:C4*O"> <field name="VAR" id="R8)c{9+bvT]-=}NW|$n-">roofTopMesh</field> <value name="VALUE"> <block type="base_time_await_return" id="xGC2gy{4kF:H)Qq%8K-2"> <value name="Promise"> <block type="variables_get" id="7{Dlf-06W5y3[AVl4~sd"> <field name="VAR" id=")jFwhfJ64YHbuNK27:RE">roofTopMeshPromise</field> </block> </value> </block> </value> <next> <block type="variables_set" id="_.@56CZp3e/k5#zfC9Ne"> <field name="VAR" id="+ZT@[lpq#c?%#)3xGEE*">roofBottomMesh</field> <value name="VALUE"> <block type="base_time_await_return" id="h|=1R,f*/+v6tFw1n9uM"> <value name="Promise"> <block type="variables_get" id="*j/7RXf|v9E*o]f03All"> <field name="VAR" id="0G}AZ%IK~JyC.!ows@Uc">roofBottomMeshPromise</field> </block> </value> </block> </value> <next> <block type="variables_set" id="blN_].OYXi{rpbx!#e%w"> <field name="VAR" id="v=$m@*Rp!Ni=tnXa!HGQ">roofGlassMesh</field> <value name="VALUE"> <block type="base_time_await_return" id="vc5wz9D`eH#NKRu|V30b"> <value name="Promise"> <block type="variables_get" id="da1x:UCuZ#f.Sg)#|^({"> <field name="VAR" id="f$6G-eXhk_lJ,Cn=?1iA">roofGlassMeshPromise</field> </block> </value> </block> </value> <next> <block type="variables_set" id="C@}x_g3n-b4[yl(Vx5ml"> <field name="VAR" id="WksPa84K#Qwk9@IeZaM}">columnBaseMesh</field> <value name="VALUE"> <block type="base_time_await_return" id="dj^]9PB[v?yEO1.9NZqv"> <value name="Promise"> <block type="variables_get" id="~h[{?m*g#9Lk=W2rZoiS"> <field name="VAR" id="V8rL(y|lr.Q.8[Zsf/mE">columnBaseMeshPromise</field> </block> </value> </block> </value> <next> <block type="variables_set" id="k{Z;OJ*!_}]k:S8}5Gj/"> <field name="VAR" id="#-ty|wDMJZV7nS6Z{dp,">columnTopMesh</field> <value name="VALUE"> <block type="base_time_await_return" id=";SRT/54c[,2D2fm,gdY`"> <value name="Promise"> <block type="variables_get" id="fWx2?seRRf+-^,2%U@,1"> <field name="VAR" id="Xmx4o3$9iSkLnYrnJW3,">columnTopMeshPromise</field> </block> </value> </block> </value> <next> <block type="variables_set" id="vE;`;W.|*,JF/qdMwbYs"> <field name="VAR" id="xMD+Sj|[%O1!3wLk6-Yt">groundMesh</field> <value name="VALUE"> <block type="base_time_await_return" id="1|k!q;x|[,ZZ!ov4Ng;?"> <value name="Promise"> <block type="variables_get" id="3d$2G+DJ91:7dLHZ+bBM"> <field name="VAR" id="NP)@GjOv4@SCk.GDOX39">groundMeshPromise</field> </block> </value> </block> </value> <next> <block type="variables_set" id="/$S,VTsU?X]*#9ur1L)r"> <field name="VAR" id="3S[CRP*red-@zg#qee,e">walkwayMesh</field> <value name="VALUE"> <block type="base_time_await_return" id="!4LB~t9W`@R4,Z/jCj[h"> <value name="Promise"> <block type="variables_get" id="g6_Z%h)rOWP5B[pNT=``"> <field name="VAR" id="A,Y.pPFWC(TWX%*j5qX=">walkwayMeshPromise</field> </block> </value> </block> </value> <next> <block type="bitbybit.babylon.mesh.setParent" id="dN+KM/p=X57~c@fQH_;|"> <value name="BabylonMesh"> <block type="variables_get" id="kv3-1%S1-4u4hT$RLfh("> <field name="VAR" id="R8)c{9+bvT]-=}NW|$n-">roofTopMesh</field> </block> </value> <value name="ParentMesh"> <block type="variables_get" id="f@HW+5ZgcjB3:.q|Kds6"> <field name="VAR" id="xMD+Sj|[%O1!3wLk6-Yt">groundMesh</field> </block> </value> <next> <block type="bitbybit.babylon.mesh.setParent" id="14(!Jiv52FSG?h%_Vb!e"> <value name="BabylonMesh"> <block type="variables_get" id="nHym:LtP+wt77+,[i8Xw"> <field name="VAR" id="+ZT@[lpq#c?%#)3xGEE*">roofBottomMesh</field> </block> </value> <value name="ParentMesh"> <block type="variables_get" id="Jnix1n;ft~swvY|nvpCm"> <field name="VAR" id="xMD+Sj|[%O1!3wLk6-Yt">groundMesh</field> </block> </value> <next> <block type="bitbybit.babylon.mesh.setParent" id="DIHM3+R/:j|8GF8svdK["> <value name="BabylonMesh"> <block type="variables_get" id="PE%np`Dw_2X9h;:EC8Uh"> <field name="VAR" id="v=$m@*Rp!Ni=tnXa!HGQ">roofGlassMesh</field> </block> </value> <value name="ParentMesh"> <block type="variables_get" id="g}8Y[(0|Z(fF~MeF-]@)"> <field name="VAR" id="xMD+Sj|[%O1!3wLk6-Yt">groundMesh</field> </block> </value> <next> <block type="bitbybit.babylon.mesh.setParent" id="lS8SVzSpt:9xSSz!nXw?"> <value name="BabylonMesh"> <block type="variables_get" id=";vJ6N~^_HhOE1Xr^ohqP"> <field name="VAR" id="WksPa84K#Qwk9@IeZaM}">columnBaseMesh</field> </block> </value> <value name="ParentMesh"> <block type="variables_get" id="|0o)XYD6.-*!sOd*@VMI"> <field name="VAR" id="xMD+Sj|[%O1!3wLk6-Yt">groundMesh</field> </block> </value> <next> <block type="bitbybit.babylon.mesh.setParent" id=",//qN)@ttmI5^b4c{Y)1"> <value name="BabylonMesh"> <block type="variables_get" id="Nx5e`f@e|sS;T@KI,uC4"> <field name="VAR" id="#-ty|wDMJZV7nS6Z{dp,">columnTopMesh</field> </block> </value> <value name="ParentMesh"> <block type="variables_get" id="a_-5k^SvR_e9(4)H3s/N"> <field name="VAR" id="xMD+Sj|[%O1!3wLk6-Yt">groundMesh</field> </block> </value> <next> <block type="bitbybit.babylon.mesh.setParent" id="]3ANkGk_?c[K#N~Jt|r+"> <value name="BabylonMesh"> <block type="variables_get" id="=}V^?RaSJWH/N%4iZVQb"> <field name="VAR" id="3S[CRP*red-@zg#qee,e">walkwayMesh</field> </block> </value> <value name="ParentMesh"> <block type="variables_get" id="f0U*~WcmP~M-czl|mrb("> <field name="VAR" id="xMD+Sj|[%O1!3wLk6-Yt">groundMesh</field> </block> </value> <next> <block type="bitbybit.babylon.mesh.setParent" id="%m]-Bj#?-u2=`p{bTk}e"> <value name="BabylonMesh"> <block type="variables_get" id="aR/`#`xk~?hE9kr]*r.r"> <field name="VAR" id="z1)P]:Q8Nc^e2e?^rZg7">grid</field> </block> </value> <value name="ParentMesh"> <block type="variables_get" id="b@c]OqF.aWHS?CnqCTre"> <field name="VAR" id="xMD+Sj|[%O1!3wLk6-Yt">groundMesh</field> </block> </value> <next> <block type="base_time_update" id="EnJ=vw@]:B)-mghuAiVV"> <field name="TimePassedMs" id="[_r.QsyJ}zx:~r#7dOWs">timeElapsedFromPreviousFrame</field> <statement name="Update"> <block type="bitbybit.babylon.mesh.yaw" id="]1!4K6rO:A$~v^+K_j_J"> <value name="BabylonMesh"> <block type="variables_get" id="2t(Bz_#,q7Rn~dZ-a_0q"> <field name="VAR" id="xMD+Sj|[%O1!3wLk6-Yt">groundMesh</field> </block> </value> <value name="Rotate"> <block type="math_number" id="evI?bz`%L$Z0tNZw0)$e"> <field name="NUM">0.03</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </xml>