Blockly Example

Blockly Example script details
Type
Blockly logo image
blockly
App Version
0.13.0
Visibility
public
Date Created
Jan 29, 2022, 12:33:53 PM
Last Edit Date
Dec 5, 2023, 5:55:30 PM

Script Details

The Code
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="9/vC#xM`@OM+vlr9%GSX">width</variable> <variable id="(6$#V|/n`_Pv-H(ZD)zj">height</variable> <variable id="u2uPnPPZ:b9l)X{D*K/5">thickness</variable> <variable id="!y0wrgO0M/}*T=9t}~~B">neckLocation</variable> <variable id="{@,yAA|{L*BP~~YdK^gE">neckRadius</variable> <variable id="0QcLh!4p@D1*EB$ET08X">neckAxis</variable> <variable id="L68ICGsdKQn]dIi0Z)l9">point1</variable> <variable id="l-pydd;c0ZHVYiu+(JD?">bottle</variable> <variable id="(I{Ac_chJA*D:$U5EIb`">cylinder1</variable> <variable id="S%mYMXUXaWiZNZ7roL#K">threading</variable> <variable id="*%bR!c[X?m7Xf0v=L3i8">point2</variable> <variable id="w96c%S|[rS~*Z)]*lA5i">cylinder2</variable> <variable id="Mhg49#X1O,~:dnS}/pb.">point3</variable> <variable id="z-8hKIqLs]XP6[|`?2sA">threadingPoint</variable> <variable id="1ze_fHMRpU=*OGJ3@%d8">point4</variable> <variable id="!*$M6DlMFsaoed*,;p*;">threadingDir</variable> <variable id="FTGicG=TMN*[^BN8v!_C">drawOptions</variable> <variable id="fEV6`(Ae9a~DC4%G323_">point5</variable> <variable id="~A?5xA_wH$(oyZC==Y[d">threadingMinor</variable> <variable id="@r{R=MtAgbedfhG)wC$K">anArc</variable> <variable id="P=plbX^TVl}CmPf~dyY*">neckHeight</variable> <variable id="SHEUR7Bx0-3U.]gnTG3w">threadingMajor</variable> <variable id="aE`s@1X(fe.V*Ks]Pql(">nodeForLights</variable> <variable id="-cz:t*TrF,p*7Rd;Xu]h">edge1</variable> <variable id="!9N^DFt8PQ8$ytFm6W~}">ellipse1</variable> <variable id="3b-BFP*iy,UWSUYbk^sx">pointLight1</variable> <variable id="~aCZ/luW~:Y]F?fi%Zs.">edge2</variable> <variable id="@q/[OmY0#+vr#VofggJ-">ellipse2</variable> <variable id="3G:FJXj)R{|u/HZ^P|BG">pointLight2</variable> <variable id="t~Hzr+k3P`k{m.e(v[s1">firstHalfWire</variable> <variable id="e^_5q[Uxq|-EhNMY7?,)">arc1</variable> <variable id="rdkT,%_6j2jirCM`kgY)">secondHalfWire</variable> <variable id="T5H|Q+`nW|`^n5$D8pUH">arc2</variable> <variable id="FXlWGWjxlA:96Mv6pKFu">baseWire</variable> <variable id="gjo}6cz_l{}+4~4aOfzI">ellipsePt1</variable> <variable id="dv,Bc~M0uc1wI~FavgAd">baseFace</variable> <variable id="hof/nOXFH*zwZQ*z|i;n">ellipsePt2</variable> <variable id="DQN=8Yx9nEqUNz]1VO9S">lightRotationCount</variable> <variable id="^pT@9h*(vQc#@@wu.`rP">extruded</variable> <variable id="gk#/kz$_+-M{TQIMo?Ao">threadingSegment</variable> <variable id="=@wETM8!Kt%|}9.L5156">timeElapsedFromPreviousFrame</variable> <variable id="6cIg#}?-Sh8ltONz=XsC">filletedExtrusion</variable> <variable id="z,t[=zBoUhy[+`vOjj5c">edge1OnSurf1</variable> <variable id="ilYZSR(+0$T={VjCl(8V">edge2OnSurf1</variable> <variable id=".0O-D[}GGx6t,dEixJba">edge1OnSurf2</variable> <variable id="lHzuP_mX4V@(v)cQxZK[">edge2OnSurf2</variable> <variable id="pnFW#KvI7ekt)12F8SGr">threadingWire1</variable> <variable id="sX.T%2;#+|a2k;G[mDwD">neck</variable> <variable id="DNxl!XdQ.czyzZm;QGi@">threadingWire2</variable> <variable id="-Pbb;wCX~yH`J=l1U-_l">unioned</variable> <variable id="bXRTP$$*`@?*z9#t`Xcr">thick</variable> </variables> <block type="procedures_defreturn" id="RD1~T;b:cAkev2[|{VxE" x="1069" y="-95"> <mutation> <arg name="width" varid="9/vC#xM`@OM+vlr9%GSX"> </arg> <arg name="height" varid="(6$#V|/n`_Pv-H(ZD)zj"> </arg> <arg name="thickness" varid="u2uPnPPZ:b9l)X{D*K/5"> </arg> </mutation> <field name="NAME">makeThickBottleWithThreading</field> <comment pinned="false" h="80" w="160">Describe this function...</comment> <statement name="STACK"> <block type="variables_set" id="(i0-|Zc[Ar-6?/8*nZfM"> <field name="VAR" id="L68ICGsdKQn]dIi0Z)l9">point1</field> <value name="VALUE"> <block type="bitbybit.point.pointXYZ" id="Y6)rV2y{|a;A+2Olyw{J"> <value name="X"> <block type="math_arithmetic" id="{cDQ;%d_^7gQ1Sy3bbb?"> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id="*2,f_17t{d$ZElGg=/7;"> <field name="VAR" id="9/vC#xM`@OM+vlr9%GSX">width</field> </block> </value> <value name="B"> <block type="math_number" id="n7:wC%Pwa[81`NSy_]LX"> <field name="NUM">-2</field> </block> </value> </block> </value> <value name="Y"> <block type="math_number" id="5s.s_v^-.tg5r!x,AS%F"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_number" id="PZ`lyVOHMS$%2)o@-Ga2"> <field name="NUM">0</field> </block> </value> </block> </value> <next> <block type="variables_set" id="e=SEp@k]3t(G$sb94J}S"> <field name="VAR" id="*%bR!c[X?m7Xf0v=L3i8">point2</field> <value name="VALUE"> <block type="bitbybit.point.pointXYZ" id="hhUy,yZ6|/UcxB9|,2$A"> <value name="X"> <block type="math_arithmetic" id="uOwQqSLjAHbkl8ho[tY8"> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id="E-/:!e6d:|10h*GEO`{Y"> <field name="VAR" id="9/vC#xM`@OM+vlr9%GSX">width</field> </block> </value> <value name="B"> <block type="math_number" id="PRQF4]itM4qW$?^!0Dxl"> <field name="NUM">-2</field> </block> </value> </block> </value> <value name="Y"> <block type="math_number" id=":_gE59RH[b%IA?+.w*gA"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_arithmetic" id="!f5BYBTw$q`|~)k59#sy"> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id="/ze`oC[W2b1L~z.FVizH"> <field name="VAR" id="u2uPnPPZ:b9l)X{D*K/5">thickness</field> </block> </value> <value name="B"> <block type="math_number" id="+n-j{};Pg{0/vKh0}p7w"> <field name="NUM">-4</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="Ja_nH]AaY;)4p^~[{idL"> <field name="VAR" id="Mhg49#X1O,~:dnS}/pb.">point3</field> <value name="VALUE"> <block type="bitbybit.point.pointXYZ" id="jsQks^^G@miWw=Hki/a8"> <value name="X"> <block type="math_number" id="fI)*tds)_#A9YSY_{nBF"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="[ppA4cV{!8B8V=McGJLP"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_arithmetic" id="x~!XayX:zQeNc~?7??52"> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id="msy{-M^iF.|_vc3f;;p!"> <field name="VAR" id="u2uPnPPZ:b9l)X{D*K/5">thickness</field> </block> </value> <value name="B"> <block type="math_number" id="u4`8F3o~d.N}/ql*M9Ie"> <field name="NUM">-2</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="BMR8pbK15bM4MIUDm=:M"> <field name="VAR" id="1ze_fHMRpU=*OGJ3@%d8">point4</field> <value name="VALUE"> <block type="bitbybit.point.pointXYZ" id="*tRgXIIoopJ3!FOCWYv-"> <value name="X"> <block type="math_arithmetic" id="-88g5MvmM4L7XPmaU;Wv"> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id="0Y^dma$Qk_Tfn0zLx#D*"> <field name="VAR" id="9/vC#xM`@OM+vlr9%GSX">width</field> </block> </value> <value name="B"> <block type="math_number" id="#3R;we)2Z}-.sfw;Snxt"> <field name="NUM">2</field> </block> </value> </block> </value> <value name="Y"> <block type="math_number" id=";lmYc1[J+t[b-f=0(WXk"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_arithmetic" id="ru](At/bh1)J1xzs:|(J"> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id="W#J_XhrNZ={A!)8%,%kk"> <field name="VAR" id="u2uPnPPZ:b9l)X{D*K/5">thickness</field> </block> </value> <value name="B"> <block type="math_number" id="8TI6^2V0qOK{q1YDq*/j"> <field name="NUM">-4</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="LOIKk^oP90Mx3c(usD;:"> <field name="VAR" id="fEV6`(Ae9a~DC4%G323_">point5</field> <value name="VALUE"> <block type="bitbybit.point.pointXYZ" id="(p5VF(xF_e|5}8Ojjcht"> <value name="X"> <block type="math_arithmetic" id="-h@n4aQp)yYhqb#:@g_R"> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id=",W?0y~mt+xS,KDT}V/7J"> <field name="VAR" id="9/vC#xM`@OM+vlr9%GSX">width</field> </block> </value> <value name="B"> <block type="math_number" id="1)Xj~mGDBod!ghfOJF_-"> <field name="NUM">2</field> </block> </value> </block> </value> <value name="Y"> <block type="math_number" id="e?LD9]8pqww_t7kE!g$A"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_number" id="Ve_)I1$~sV?N[Mw8/}e{"> <field name="NUM">0</field> </block> </value> </block> </value> <next> <block type="variables_set" id="wPGT?zV+o**R;-V$^T7#"> <field name="VAR" id="@r{R=MtAgbedfhG)wC$K">anArc</field> <value name="VALUE"> <block type="bitbybit.occt.shapes.edge.arcThroughThreePoints" id="_*hSUJ|I7UaZ?l]a#]G!"> <value name="Start"> <block type="variables_get" id="2PuYq-U;d1f`QxI*+[u`"> <field name="VAR" id="*%bR!c[X?m7Xf0v=L3i8">point2</field> </block> </value> <value name="Middle"> <block type="variables_get" id="?zC+D@zLY{|r}{TA6-vU"> <field name="VAR" id="Mhg49#X1O,~:dnS}/pb.">point3</field> </block> </value> <value name="End"> <block type="variables_get" id="T|]O]gaCiblp+)ANGt!d"> <field name="VAR" id="1ze_fHMRpU=*OGJ3@%d8">point4</field> </block> </value> </block> </value> <next> <block type="variables_set" id="|%zrO{g$eOaN3Xp8yNR*"> <field name="VAR" id="-cz:t*TrF,p*7Rd;Xu]h">edge1</field> <value name="VALUE"> <block type="bitbybit.occt.shapes.edge.line" id="jey?1OsEp.k7Qlo`LOuX"> <value name="Start"> <block type="variables_get" id="E_SFFU3ba3uRro=dfTW@"> <field name="VAR" id="L68ICGsdKQn]dIi0Z)l9">point1</field> </block> </value> <value name="End"> <block type="variables_get" id="p{GoPt3~}4$=i(=L@*z="> <field name="VAR" id="*%bR!c[X?m7Xf0v=L3i8">point2</field> </block> </value> </block> </value> <next> <block type="variables_set" id="Zjtn)IC^w7AASA!C2r4|"> <field name="VAR" id="~aCZ/luW~:Y]F?fi%Zs.">edge2</field> <value name="VALUE"> <block type="bitbybit.occt.shapes.edge.line" id="qK$:,Fat{7`3+B(h$2H7"> <value name="Start"> <block type="variables_get" id="Cz0rh~}f,Qbx3jKszB)^"> <field name="VAR" id="1ze_fHMRpU=*OGJ3@%d8">point4</field> </block> </value> <value name="End"> <block type="variables_get" id="`x3aG+vlmIr,Yhm{+h.V"> <field name="VAR" id="fEV6`(Ae9a~DC4%G323_">point5</field> </block> </value> </block> </value> <next> <block type="variables_set" id="%z52l4f{gD+/y/8X6/9-"> <field name="VAR" id="t~Hzr+k3P`k{m.e(v[s1">firstHalfWire</field> <value name="VALUE"> <block type="bitbybit.occt.shapes.wire.combineEdgesAndWiresIntoAWire" id="7[=g$has$EG1F3[|8N2q"> <value name="Shapes"> <block type="lists_create_with" id="e+SqQ9d^y+5Xq/M{[T!a"> <mutation items="3"> </mutation> <value name="ADD0"> <block type="variables_get" id="R~=!j`:vCKCa8|whD3R$"> <field name="VAR" id="-cz:t*TrF,p*7Rd;Xu]h">edge1</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="SKRaM.)+woG1IOI(qe(t"> <field name="VAR" id="@r{R=MtAgbedfhG)wC$K">anArc</field> </block> </value> <value name="ADD2"> <block type="variables_get" id="84h0-8/rJpV+:saLXmV^"> <field name="VAR" id="~aCZ/luW~:Y]F?fi%Zs.">edge2</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id=":#l-vn3KwoZB5,878PO+"> <field name="VAR" id="rdkT,%_6j2jirCM`kgY)">secondHalfWire</field> <value name="VALUE"> <block type="bitbybit.occt.transforms.mirror" id="UvvYzok@t/cqC;p?=Ym~"> <value name="Shape"> <block type="variables_get" id="AUY2fkx87zOf]*sAwife"> <field name="VAR" id="t~Hzr+k3P`k{m.e(v[s1">firstHalfWire</field> </block> </value> <value name="Origin"> <block type="bitbybit.point.pointXYZ" id="iE^kdA7}OP#_tEOjC*A,"> <value name="X"> <block type="math_number" id=":c$XE7c[Bn9x^ERX@bM}"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="=G@^?.Iy~`Xw?.-vb!1R"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_number" id="r^8NEj;5#ev8k7QXn*Ug"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="Direction"> <block type="bitbybit.point.pointXYZ" id="/#2+QfC]:r}9XT+tTC[b"> <value name="X"> <block type="math_number" id="@ZqYjc`*/~pP!|BesZn."> <field name="NUM">1</field> </block> </value> <value name="Y"> <block type="math_number" id="py)SkR[_[B_(WuC2N:W1"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_number" id="?Q|Wtc$g8FYvw#6/dPZB"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="^2.,~Q3PY{V,3)=4y9Xv"> <field name="VAR" id="FXlWGWjxlA:96Mv6pKFu">baseWire</field> <value name="VALUE"> <block type="bitbybit.occt.shapes.wire.combineEdgesAndWiresIntoAWire" id="-@5f}mr|ZGg!GIIc,V/u"> <value name="Shapes"> <block type="lists_create_with" id="%m~^+n[ZkbV9i^aXijnk"> <mutation items="2"> </mutation> <value name="ADD0"> <block type="variables_get" id="fiTq2paF)jxDVJkFRlPs"> <field name="VAR" id="t~Hzr+k3P`k{m.e(v[s1">firstHalfWire</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="eq2)Q{k3|D!MiWI=P)n]"> <field name="VAR" id="rdkT,%_6j2jirCM`kgY)">secondHalfWire</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="#7o*;QC(F(S-*z!3_jQf"> <field name="VAR" id="dv,Bc~M0uc1wI~FavgAd">baseFace</field> <value name="VALUE"> <block type="bitbybit.occt.shapes.face.createFaceFromWire" id="o3PGVLS-QL1:lUL}8_8."> <value name="Shape"> <block type="variables_get" id="VEJ#utO+8PMI4d;.,9[U"> <field name="VAR" id="FXlWGWjxlA:96Mv6pKFu">baseWire</field> </block> </value> <value name="Planar"> <block type="logic_boolean" id="U@@0_vUFbmE.[$G({(N,"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <next> <block type="variables_set" id="A9t)!q[z2yiP[!82{@x-"> <field name="VAR" id="^pT@9h*(vQc#@@wu.`rP">extruded</field> <value name="VALUE"> <block type="bitbybit.occt.operations.extrude" id="S.j/0F]A9u`6ENT[/ZJ4"> <value name="Shape"> <block type="variables_get" id="B})o7lAdc%ja0%r(ha;Z"> <field name="VAR" id="dv,Bc~M0uc1wI~FavgAd">baseFace</field> </block> </value> <value name="Direction"> <block type="bitbybit.point.pointXYZ" id="1gG*0S(LWLOhq!#!R85b"> <value name="X"> <block type="math_number" id="l_-lv?/oV=mp8W+W}(C4"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="variables_get" id="3/!k0I[ej{Qe)XLbhxoh"> <field name="VAR" id="(6$#V|/n`_Pv-H(ZD)zj">height</field> </block> </value> <value name="Z"> <block type="math_number" id="x+iQ~sz/*qWB{:=:+9(8"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="23!2oZxS_DVq9K4{8B4!"> <field name="VAR" id="6cIg#}?-Sh8ltONz=XsC">filletedExtrusion</field> <value name="VALUE"> <block type="bitbybit.occt.fillets.filletEdges" id="o1dpEy.f`Y{qJ{fSTP[Y"> <value name="Shape"> <block type="variables_get" id="RCi9d!.Q{7pay`7J4zO{"> <field name="VAR" id="^pT@9h*(vQc#@@wu.`rP">extruded</field> </block> </value> <value name="Radius"> <block type="math_arithmetic" id="w,.43KLH,PTL2,*FT=Np"> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id="XS@2DlMZtDVF:;M){_;I"> <field name="VAR" id="u2uPnPPZ:b9l)X{D*K/5">thickness</field> </block> </value> <value name="B"> <block type="math_number" id="F/H4ms|_F0^U9Q~7yP{N"> <field name="NUM">12</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="[C{Ilz~Xmr?B#-8zLgpu"> <field name="VAR" id="!y0wrgO0M/}*T=9t}~~B">neckLocation</field> <value name="VALUE"> <block type="bitbybit.point.pointXYZ" id="h#hve6oR6}^=5(E0HGUf"> <value name="X"> <block type="math_number" id="gFOEP+SR*:ZDLbFm{Lkh"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="variables_get" id=",`pIMRSxseZRI.72g*,a"> <field name="VAR" id="(6$#V|/n`_Pv-H(ZD)zj">height</field> </block> </value> <value name="Z"> <block type="math_number" id="Q%+;O$Pl}5M-vPNhQ@4N"> <field name="NUM">0</field> </block> </value> </block> </value> <next> <block type="variables_set" id="u4UZ-6Fczb%7v9{Qk17V"> <field name="VAR" id="{@,yAA|{L*BP~~YdK^gE">neckRadius</field> <value name="VALUE"> <block type="math_arithmetic" id="R~IvyLhB!lI!gcsSl=8Y"> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id="uN;[q!ScE6]y+^q;!DeW"> <field name="VAR" id="u2uPnPPZ:b9l)X{D*K/5">thickness</field> </block> </value> <value name="B"> <block type="math_number" id="ad!)Er!i$TQy(!U=_g_."> <field name="NUM">4</field> </block> </value> </block> </value> <next> <block type="variables_set" id="`NaeGxFN-%QVkjSN.di("> <field name="VAR" id="P=plbX^TVl}CmPf~dyY*">neckHeight</field> <value name="VALUE"> <block type="math_arithmetic" id="`F^slhYH%Z9(|3-(03;]"> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id="u@oxUC7fkOMXPnBorVTU"> <field name="VAR" id="(6$#V|/n`_Pv-H(ZD)zj">height</field> </block> </value> <value name="B"> <block type="math_number" id="Rb1DEJTI6,ASoDSVML9Y"> <field name="NUM">10</field> </block> </value> </block> </value> <next> <block type="variables_set" id="e6GKsMAdbshLr$Ylqg,M"> <field name="VAR" id="0QcLh!4p@D1*EB$ET08X">neckAxis</field> <value name="VALUE"> <block type="bitbybit.point.pointXYZ" id="DJFe(5{o%$GWd`Nz9d|O"> <value name="X"> <block type="math_number" id="%0%YL7a|NR|*Vd(jW6e3"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="50=?1X5?U6+T#JTc?4+N"> <field name="NUM">1</field> </block> </value> <value name="Z"> <block type="math_number" id="j,lvy8DnM())C_ifteNc"> <field name="NUM">0</field> </block> </value> </block> </value> <next> <block type="variables_set" id="s87Hy,HSuuy.XqS(B_Im"> <field name="VAR" id="sX.T%2;#+|a2k;G[mDwD">neck</field> <value name="VALUE"> <block type="bitbybit.occt.shapes.solid.createCylinder" id="UBTbR7C|#c#aBM*Obanf"> <value name="Radius"> <block type="variables_get" id="uX#ZVT.~M3(vP(c#Y%,t"> <field name="VAR" id="{@,yAA|{L*BP~~YdK^gE">neckRadius</field> </block> </value> <value name="Height"> <block type="variables_get" id="#_oKorF]YTw|#uR)=deg"> <field name="VAR" id="P=plbX^TVl}CmPf~dyY*">neckHeight</field> </block> </value> <value name="Center"> <block type="variables_get" id="cDWccSh4WgG#Nw}WcmKC"> <field name="VAR" id="!y0wrgO0M/}*T=9t}~~B">neckLocation</field> </block> </value> <value name="Direction"> <block type="bitbybit.point.pointXYZ" id="HOT4kQb!+OT^4RNn%{VD"> <value name="X"> <block type="math_number" id="Pov5|;dh:IK!7%vL@MSV"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="5wL^xSe[_;u!l~?/FUi5"> <field name="NUM">1</field> </block> </value> <value name="Z"> <block type="math_number" id="^:?fYf,DH0ZfA5^DSBJv"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="oOoL0Oq2w_O6Fh#+*%[#"> <field name="VAR" id="-Pbb;wCX~yH`J=l1U-_l">unioned</field> <value name="VALUE"> <block type="bitbybit.occt.booleans.union" id="#urY%Y2OJPL@nB-;VI)B"> <value name="Shapes"> <block type="lists_create_with" id="Q0[}wqs@fjbQ9r3v.dbW"> <mutation items="2"> </mutation> <value name="ADD0"> <block type="variables_get" id="+2kY3r5?/VE92zpfTU[["> <field name="VAR" id="6cIg#}?-Sh8ltONz=XsC">filletedExtrusion</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="S79Gk#wd-R}*tnz.Dsa]"> <field name="VAR" id="sX.T%2;#+|a2k;G[mDwD">neck</field> </block> </value> </block> </value> <value name="KeepEdges"> <block type="logic_boolean" id="`$wh%_y`]qHTTB-3ZqOk"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <next> <block type="variables_set" id="l6_Ym9O{UoKrG9qDN[6w"> <field name="VAR" id="bXRTP$$*`@?*z9#t`Xcr">thick</field> <value name="VALUE"> <block type="bitbybit.occt.operations.makeThickSolidByJoin" id=":3%Qgv,Z^6/zy/JA.)I-"> <value name="Shape"> <block type="variables_get" id="@_lflL`5OsRgxvT%B/o;"> <field name="VAR" id="-Pbb;wCX~yH`J=l1U-_l">unioned</field> </block> </value> <value name="Shapes"> <block type="lists_create_with" id="jq!jHYDwN_baeq)gkq{y"> <mutation items="1"> </mutation> <value name="ADD0"> <block type="bitbybit.occt.shapes.face.getFace" id="{GP[jJfgUWC3fCSb4G4Z"> <value name="Shape"> <block type="variables_get" id="r}5.8H7xTl$1qC8y58^f"> <field name="VAR" id="-Pbb;wCX~yH`J=l1U-_l">unioned</field> </block> </value> <value name="Index"> <block type="math_number" id="ZV.Ri^]+sCw[b90iQ;C$"> <field name="NUM">33</field> </block> </value> </block> </value> </block> </value> <value name="Offset"> <block type="math_arithmetic" id="^]e)9Rg*td$Itx!!#Oyr"> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id="_2I]^=nw6aTBr{L;MJgi"> <field name="VAR" id="u2uPnPPZ:b9l)X{D*K/5">thickness</field> </block> </value> <value name="B"> <block type="math_number" id="O~3]N_?wtDpI.2p9eG(4"> <field name="NUM">-50</field> </block> </value> </block> </value> <value name="Tolerance"> <block type="math_number" id="1HzhaM9V;A%x]obm~8?,"> <field name="NUM">0.001</field> </block> </value> <value name="Intersection"> <block type="logic_boolean" id="/=F=~C{{Z.drGpVgZ6n%"> <field name="BOOL">FALSE</field> </block> </value> <value name="SelfIntersection"> <block type="logic_boolean" id="P]Sft]g%SwUcgl)b^52g"> <field name="BOOL">FALSE</field> </block> </value> <value name="JoinType"> <block type="bitbybit.occt.enums.joinTypeEnum" id="TKUKxg;nNN_lj0@*8cUg"> <field name="bitbybit.occt.enums.joinTypeEnum">'arc'</field> </block> </value> <value name="RemoveIntEdges"> <block type="logic_boolean" id="H4$A~e_WB|}(81j2jfAq"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <next> <block type="variables_set" id="b3N8|)7;;Rt0*h};)8rK"> <field name="VAR" id="S%mYMXUXaWiZNZ7roL#K">threading</field> <value name="VALUE"> <block type="procedures_callreturn" id="@0}.d2aA8$YjlV9S7J|x"> <mutation name="makeThreading"> <arg name="neckLocation"> </arg> <arg name="neckRadius"> </arg> <arg name="neckAxis"> </arg> </mutation> <value name="ARG0"> <block type="variables_get" id="lX(B|ux;!3tHhxN[?*by"> <field name="VAR" id="!y0wrgO0M/}*T=9t}~~B">neckLocation</field> </block> </value> <value name="ARG1"> <block type="variables_get" id="[(HXUA$3L11hn_0-DRg^"> <field name="VAR" id="{@,yAA|{L*BP~~YdK^gE">neckRadius</field> </block> </value> <value name="ARG2"> <block type="variables_get" id="S!90g!sa{$bYiCipHUGb"> <field name="VAR" id="0QcLh!4p@D1*EB$ET08X">neckAxis</field> </block> </value> </block> </value> <next> <block type="variables_set" id="g{aV-`*gjq@?lB54a+PD"> <field name="VAR" id="l-pydd;c0ZHVYiu+(JD?">bottle</field> <value name="VALUE"> <block type="bitbybit.occt.booleans.union" id="5s,b}2}?B#OOP+GDmv%."> <value name="Shapes"> <block type="lists_create_with" id="m+^!UE/~w:)F9`^!X97{"> <mutation items="2"> </mutation> <value name="ADD0"> <block type="variables_get" id="c9GQ2i*Z@OZy$cyRbuX4"> <field name="VAR" id="S%mYMXUXaWiZNZ7roL#K">threading</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="W43qt6g2$Hd!RQze$h7L"> <field name="VAR" id="bXRTP$$*`@?*z9#t`Xcr">thick</field> </block> </value> </block> </value> <value name="KeepEdges"> <block type="logic_boolean" id="~pksOO@INAuvdpP|AH8["> <field name="BOOL">FALSE</field> </block> </value> </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> </next> </block> </next> </block> </next> </block> </statement> <value name="RETURN"> <block type="variables_get" id=".Xu$SBZ/LKgZ,u2(PJ]Y"> <field name="VAR" id="l-pydd;c0ZHVYiu+(JD?">bottle</field> </block> </value> </block> <block type="procedures_defreturn" id="0$5wQ~@uAK_+[^:ar~K4" x="2178" y="-67"> <mutation> <arg name="neckLocation" varid="!y0wrgO0M/}*T=9t}~~B"> </arg> <arg name="neckRadius" varid="{@,yAA|{L*BP~~YdK^gE"> </arg> <arg name="neckAxis" varid="0QcLh!4p@D1*EB$ET08X"> </arg> </mutation> <field name="NAME">makeThreading</field> <comment pinned="false" h="80" w="160">Describe this function...</comment> <statement name="STACK"> <block type="variables_set" id="L)oeFePm7e3SXJ=2@t=U"> <field name="VAR" id="(I{Ac_chJA*D:$U5EIb`">cylinder1</field> <value name="VALUE"> <block type="bitbybit.occt.geom.surfaces.cylindricalSurface" id="o5~I2zjL)uHMP:aN$sl,"> <value name="Radius"> <block type="math_arithmetic" id="x0`[Yp`wk.+v)fbmq?*j"> <field name="OP">MULTIPLY</field> <value name="A"> <block type="variables_get" id="b~AEGuqJ:i|U4p*##ebT"> <field name="VAR" id="{@,yAA|{L*BP~~YdK^gE">neckRadius</field> </block> </value> <value name="B"> <block type="math_number" id="fRY?WNKU^hQ7^6ih*4j/"> <field name="NUM">0.99</field> </block> </value> </block> </value> <value name="Center"> <block type="variables_get" id="`g3a@*R#m,c[*1~l1B6O"> <field name="VAR" id="!y0wrgO0M/}*T=9t}~~B">neckLocation</field> </block> </value> <value name="Direction"> <block type="variables_get" id="Yx!}5#P8n_-X!PE=g0Z-"> <field name="VAR" id="0QcLh!4p@D1*EB$ET08X">neckAxis</field> </block> </value> </block> </value> <next> <block type="variables_set" id="jlrnbE,4mlgxTeE?Bt87"> <field name="VAR" id="w96c%S|[rS~*Z)]*lA5i">cylinder2</field> <value name="VALUE"> <block type="bitbybit.occt.geom.surfaces.cylindricalSurface" id="9.XP)4|oXpDkP_VH$pAI"> <value name="Radius"> <block type="math_arithmetic" id="_ki8EJWIW7PwW03hI}/a"> <field name="OP">MULTIPLY</field> <value name="A"> <block type="variables_get" id="SECNmEVX=*ukF|IGpIeV"> <field name="VAR" id="{@,yAA|{L*BP~~YdK^gE">neckRadius</field> </block> </value> <value name="B"> <block type="math_number" id="f=_lCRim-k*Kf1bKnHqK"> <field name="NUM">1.05</field> </block> </value> </block> </value> <value name="Center"> <block type="variables_get" id="sf%bwPjkVXNmQ!41C1o^"> <field name="VAR" id="!y0wrgO0M/}*T=9t}~~B">neckLocation</field> </block> </value> <value name="Direction"> <block type="variables_get" id="~QoLRF@T??_8q6^kiu,N"> <field name="VAR" id="0QcLh!4p@D1*EB$ET08X">neckAxis</field> </block> </value> </block> </value> <next> <block type="variables_set" id="d+=yP@f:RGHlI~RX]Q/F"> <field name="VAR" id="z-8hKIqLs]XP6[|`?2sA">threadingPoint</field> <value name="VALUE"> <block type="bitbybit.point.pointXY" id="TUbbL%``$cfg(e#Hkh{r"> <value name="X"> <block type="math_arithmetic" id=")+u7=b#GlhW4}ge()11;"> <field name="OP">MULTIPLY</field> <value name="A"> <block type="math_number" id="zsAiQ:X)~mo%cZ%qAf@)"> <field name="NUM">2</field> </block> </value> <value name="B"> <block type="bitbybit.math.pi" id="EL)(-=E^XL.fu.NlnkhZ"> </block> </value> </block> </value> <value name="Y"> <block type="math_arithmetic" id="IN9PDLsS)iSTKd9$oy)I"> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id="@i=S*I$$yqE@vNM8W7Ow"> <field name="VAR" id="P=plbX^TVl}CmPf~dyY*">neckHeight</field> </block> </value> <value name="B"> <block type="math_number" id="/,C1vkeqtUxrtsF/ufse"> <field name="NUM">2</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="FrfMXh6ks)712lm$tEtH"> <field name="VAR" id="!*$M6DlMFsaoed*,;p*;">threadingDir</field> <value name="VALUE"> <block type="bitbybit.point.pointXY" id="#ye0E9diqJPSkq.3%Miw"> <value name="X"> <block type="math_arithmetic" id="|,.B^Z2@+cM09B!TwA^4"> <field name="OP">MULTIPLY</field> <value name="A"> <block type="math_number" id="+5hdLauawlm[_dehtwv^"> <field name="NUM">2</field> </block> </value> <value name="B"> <block type="bitbybit.math.pi" id="QWCAAbNJp3+i%d)c6)Du"> </block> </value> </block> </value> <value name="Y"> <block type="math_arithmetic" id="J7ekJ;G]WCtGe^`%vGC`"> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id="ApF_CfVUt|W!:ph_Lhk^"> <field name="VAR" id="P=plbX^TVl}CmPf~dyY*">neckHeight</field> </block> </value> <value name="B"> <block type="math_number" id="5~llFTn9odUA6Dh`!Qk("> <field name="NUM">4</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="e80lY3L(2B$^d(^Y[`B7"> <field name="VAR" id="~A?5xA_wH$(oyZC==Y[d">threadingMinor</field> <value name="VALUE"> <block type="math_arithmetic" id="nfJjzkW._,ON{dyhAN@;"> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id="dr5sv1AXe2Ohls(3M=;M"> <field name="VAR" id="P=plbX^TVl}CmPf~dyY*">neckHeight</field> </block> </value> <value name="B"> <block type="math_number" id=";LBf*[+o2hn3+#HqDc):"> <field name="NUM">10</field> </block> </value> </block> </value> <next> <block type="variables_set" id="qZTttXk*D*Xnu8)E;6fn"> <field name="VAR" id="SHEUR7Bx0-3U.]gnTG3w">threadingMajor</field> <value name="VALUE"> <block type="math_arithmetic" id="9)z8K-mr,UcJfMy/BfA8"> <field name="OP">MULTIPLY</field> <value name="A"> <block type="math_number" id="d8`n)jL?[O#6qq8M(iNF"> <field name="NUM">2</field> </block> </value> <value name="B"> <block type="bitbybit.math.pi" id="O_:Pibl(QQIX`+$4Yq~u"> </block> </value> </block> </value> <next> <block type="variables_set" id="[YMUaBNq+a8]pKt8AQqn"> <field name="VAR" id="!9N^DFt8PQ8$ytFm6W~}">ellipse1</field> <value name="VALUE"> <block type="bitbybit.occt.geom.curves.geom2dEllipse" id="L_BKb@GFTHzzOEYXFqI;"> <value name="Center"> <block type="variables_get" id="%IG$kq+Gu@QTEOP3vF=m"> <field name="VAR" id="z-8hKIqLs]XP6[|`?2sA">threadingPoint</field> </block> </value> <value name="Direction"> <block type="variables_get" id="2CJ]*.3T/^(EcllHg[H_"> <field name="VAR" id="!*$M6DlMFsaoed*,;p*;">threadingDir</field> </block> </value> <value name="RadiusMinor"> <block type="variables_get" id="#gscJAg/,fWP@IE~:EGy"> <field name="VAR" id="~A?5xA_wH$(oyZC==Y[d">threadingMinor</field> </block> </value> <value name="RadiusMajor"> <block type="variables_get" id="Nc!YMQ*%~W!88v9edE)R"> <field name="VAR" id="SHEUR7Bx0-3U.]gnTG3w">threadingMajor</field> </block> </value> <value name="Sense"> <block type="logic_boolean" id="MiN8FiW;;7wYGot.?HrQ"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <next> <block type="variables_set" id="NQ3py~xqej,T|gBWMl7^"> <field name="VAR" id="@q/[OmY0#+vr#VofggJ-">ellipse2</field> <value name="VALUE"> <block type="bitbybit.occt.geom.curves.geom2dEllipse" id="1J,W/O)MGy}Aq^I3wqLd"> <value name="Center"> <block type="variables_get" id="K[cq8;pLsA#U{qD=3bF3"> <field name="VAR" id="z-8hKIqLs]XP6[|`?2sA">threadingPoint</field> </block> </value> <value name="Direction"> <block type="variables_get" id="KIrh:P8ivvvvM1fKyA$_"> <field name="VAR" id="!*$M6DlMFsaoed*,;p*;">threadingDir</field> </block> </value> <value name="RadiusMinor"> <block type="math_arithmetic" id="5g4#a.]IU1F]MDw+gmL,"> <field name="OP">DIVIDE</field> <value name="A"> <block type="variables_get" id="?x`=UN$L^-e_@U5FaICu"> <field name="VAR" id="~A?5xA_wH$(oyZC==Y[d">threadingMinor</field> </block> </value> <value name="B"> <block type="math_number" id="s[2Yb]TxKU7WWcCwBk.l"> <field name="NUM">4</field> </block> </value> </block> </value> <value name="RadiusMajor"> <block type="variables_get" id="}1m,Y]G}w{41wB63h:n-"> <field name="VAR" id="SHEUR7Bx0-3U.]gnTG3w">threadingMajor</field> </block> </value> <value name="Sense"> <block type="logic_boolean" id="m8oZMtam}M(YN0ns/etw"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <next> <block type="variables_set" id="QQ9IoWBuqq(MCK2Cwmjy"> <field name="VAR" id="e^_5q[Uxq|-EhNMY7?,)">arc1</field> <value name="VALUE"> <block type="bitbybit.occt.geom.curves.geom2dTrimmedCurve" id="*w,XM`6L#|b2Tkl.QG|2"> <value name="Shape"> <block type="variables_get" id="c*Z=93phg_-Uh8IZCZ0~"> <field name="VAR" id="!9N^DFt8PQ8$ytFm6W~}">ellipse1</field> </block> </value> <value name="U1"> <block type="math_number" id="Py0zkCs1_VGPphLN4La)"> <field name="NUM">0</field> </block> </value> <value name="U2"> <block type="bitbybit.math.pi" id="T;apSsDJB[1t~qMI2SQR"> </block> </value> <value name="Sense"> <block type="logic_boolean" id="$^TqHw#vdpgc1_gwDQ($"> <field name="BOOL">TRUE</field> </block> </value> <value name="AdjustPeriodic"> <block type="logic_boolean" id="9gCuSR6FI#b`IBsh]1vP"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <next> <block type="variables_set" id="idB2dNMrbrkBzx/:IRJ="> <field name="VAR" id="T5H|Q+`nW|`^n5$D8pUH">arc2</field> <value name="VALUE"> <block type="bitbybit.occt.geom.curves.geom2dTrimmedCurve" id=":DLHzQ(g#QFS|2ugJ*5]"> <value name="Shape"> <block type="variables_get" id="Q9]FRR0bHU7O^){}Wj,%"> <field name="VAR" id="@q/[OmY0#+vr#VofggJ-">ellipse2</field> </block> </value> <value name="U1"> <block type="math_number" id="$zKo=l^QB?S$|?3JJZ:x"> <field name="NUM">0</field> </block> </value> <value name="U2"> <block type="bitbybit.math.pi" id="neWNk|:=SjQzfTdM7)gw"> </block> </value> <value name="Sense"> <block type="logic_boolean" id="}-0Qsq*`0W7$m!f3=9=|"> <field name="BOOL">TRUE</field> </block> </value> <value name="AdjustPeriodic"> <block type="logic_boolean" id="^wLhcoCp-%}_iW3l~[C7"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <next> <block type="variables_set" id="(uRId]#xlb5!,dSRjSeN"> <field name="VAR" id="gjo}6cz_l{}+4~4aOfzI">ellipsePt1</field> <value name="VALUE"> <block type="bitbybit.occt.geom.curves.get2dPointFrom2dCurveOnParam" id="c)ojamydcf=/Ae@~F;g2"> <value name="Shape"> <block type="variables_get" id="w1Y!@x.HY;OcmRC77f8["> <field name="VAR" id="!9N^DFt8PQ8$ytFm6W~}">ellipse1</field> </block> </value> <value name="Param"> <block type="math_number" id="[b$.UD5X)Tu^k@WIOY:f"> <field name="NUM">0</field> </block> </value> </block> </value> <next> <block type="variables_set" id="NJ4jBr($ZVQaK7Pbf%N]"> <field name="VAR" id="hof/nOXFH*zwZQ*z|i;n">ellipsePt2</field> <value name="VALUE"> <block type="bitbybit.occt.geom.curves.get2dPointFrom2dCurveOnParam" id="NHy0z]kQ`)/L+##-T^C!"> <value name="Shape"> <block type="variables_get" id="DFpR$e(a$g_=Aq;t0$G*"> <field name="VAR" id="!9N^DFt8PQ8$ytFm6W~}">ellipse1</field> </block> </value> <value name="Param"> <block type="bitbybit.math.pi" id="oq`E$/LrIa%ga?F(*5X."> </block> </value> </block> </value> <next> <block type="variables_set" id="_E#n)oXusk-RwM#no}`I"> <field name="VAR" id="gk#/kz$_+-M{TQIMo?Ao">threadingSegment</field> <value name="VALUE"> <block type="bitbybit.occt.geom.curves.geom2dSegment" id="[io+:f6/~v!4;#x[sJM-"> <value name="Start"> <block type="variables_get" id="BbK|9O.$gKcms#Sbf-6p"> <field name="VAR" id="gjo}6cz_l{}+4~4aOfzI">ellipsePt1</field> </block> </value> <value name="End"> <block type="variables_get" id="u1MHX|0yQW9/T}UQXAaN"> <field name="VAR" id="hof/nOXFH*zwZQ*z|i;n">ellipsePt2</field> </block> </value> </block> </value> <next> <block type="variables_set" id="rK(iGNbU2c,RlDOK0/ik"> <field name="VAR" id="z,t[=zBoUhy[+`vOjj5c">edge1OnSurf1</field> <value name="VALUE"> <block type="bitbybit.occt.shapes.edge.makeEdgeFromGeom2dCurveAndSurface" id="J;6[G}}8C$aSX=:lG6-P"> <value name="Curve"> <block type="variables_get" id="_8PWX4uXVG)-lo^@*(x]"> <field name="VAR" id="e^_5q[Uxq|-EhNMY7?,)">arc1</field> </block> </value> <value name="Surface"> <block type="variables_get" id="Bqq.ho]Fq8.UZhk*VUnE"> <field name="VAR" id="(I{Ac_chJA*D:$U5EIb`">cylinder1</field> </block> </value> </block> </value> <next> <block type="variables_set" id=")dN^9]^zR@kkJ`.@=tDp"> <field name="VAR" id="ilYZSR(+0$T={VjCl(8V">edge2OnSurf1</field> <value name="VALUE"> <block type="bitbybit.occt.shapes.edge.makeEdgeFromGeom2dCurveAndSurface" id=":eVSWy@Bu#xR~Vc-+2(Q"> <value name="Curve"> <block type="variables_get" id="=}ft;xhof*1t=Pg0bnGo"> <field name="VAR" id="gk#/kz$_+-M{TQIMo?Ao">threadingSegment</field> </block> </value> <value name="Surface"> <block type="variables_get" id="|_F!f*pl{rk?k(UAi1L_"> <field name="VAR" id="(I{Ac_chJA*D:$U5EIb`">cylinder1</field> </block> </value> </block> </value> <next> <block type="variables_set" id="PLsvS]gqw==lxQ4z09$v"> <field name="VAR" id=".0O-D[}GGx6t,dEixJba">edge1OnSurf2</field> <value name="VALUE"> <block type="bitbybit.occt.shapes.edge.makeEdgeFromGeom2dCurveAndSurface" id="ZNs1[0O/:CTgQ{4)Dw-Z"> <value name="Curve"> <block type="variables_get" id="l{5vnOZLqLIKz~G@Hz}Z"> <field name="VAR" id="T5H|Q+`nW|`^n5$D8pUH">arc2</field> </block> </value> <value name="Surface"> <block type="variables_get" id="S+-I(M|up{SRVpW73P*W"> <field name="VAR" id="w96c%S|[rS~*Z)]*lA5i">cylinder2</field> </block> </value> </block> </value> <next> <block type="variables_set" id="upZltR8.6.Z%M=)@X70r"> <field name="VAR" id="lHzuP_mX4V@(v)cQxZK[">edge2OnSurf2</field> <value name="VALUE"> <block type="bitbybit.occt.shapes.edge.makeEdgeFromGeom2dCurveAndSurface" id="_w5%z-:=[CyVpCLy|c?p"> <value name="Curve"> <block type="variables_get" id="~Xy7SaEKw;]Dokrt#SHB"> <field name="VAR" id="gk#/kz$_+-M{TQIMo?Ao">threadingSegment</field> </block> </value> <value name="Surface"> <block type="variables_get" id="$np0EmQgR*PoX.Ne*PF~"> <field name="VAR" id="w96c%S|[rS~*Z)]*lA5i">cylinder2</field> </block> </value> </block> </value> <next> <block type="variables_set" id="fThoFNoyBb!{,NZ9ieQo"> <field name="VAR" id="pnFW#KvI7ekt)12F8SGr">threadingWire1</field> <value name="VALUE"> <block type="bitbybit.occt.shapes.wire.combineEdgesAndWiresIntoAWire" id="$K4)v@$)b[0{y*QJ!+n|"> <value name="Shapes"> <block type="lists_create_with" id="bgkCOJKk6_Gugp`^--{Z"> <mutation items="2"> </mutation> <value name="ADD0"> <block type="variables_get" id="|W^[=jacf_;@]ZwnU(^R"> <field name="VAR" id="z,t[=zBoUhy[+`vOjj5c">edge1OnSurf1</field> </block> </value> <value name="ADD1"> <block type="variables_get" id=")$2Uf3GzA,Jgg856v5%i"> <field name="VAR" id="ilYZSR(+0$T={VjCl(8V">edge2OnSurf1</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="T35T9w2qXYY5[piV[qpz"> <field name="VAR" id="DNxl!XdQ.czyzZm;QGi@">threadingWire2</field> <value name="VALUE"> <block type="bitbybit.occt.shapes.wire.combineEdgesAndWiresIntoAWire" id="u(!IGGc9KU[FF$wMJ}.2"> <value name="Shapes"> <block type="lists_create_with" id="U4=hX5LP[Qt-{[gUt(b!"> <mutation items="2"> </mutation> <value name="ADD0"> <block type="variables_get" id="lX-gAQu:a#5MtD?:Ku/D"> <field name="VAR" id=".0O-D[}GGx6t,dEixJba">edge1OnSurf2</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="^43xX#d!Q/bM~8tgim=J"> <field name="VAR" id="lHzuP_mX4V@(v)cQxZK[">edge2OnSurf2</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="*36UT3LDr.)q#+y~F#${"> <field name="VAR" id="S%mYMXUXaWiZNZ7roL#K">threading</field> <value name="VALUE"> <block type="bitbybit.occt.operations.loft" id="P|`$tC5%zTCJG_rbO@%,"> <value name="Shapes"> <block type="lists_create_with" id="_~Ph?gxUA)ESs$BuWK=t"> <mutation items="2"> </mutation> <value name="ADD0"> <block type="variables_get" id="q@)5bvHWWfszmvMCmq7j"> <field name="VAR" id="pnFW#KvI7ekt)12F8SGr">threadingWire1</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="yK5#36iS]e7T0|6W{YEm"> <field name="VAR" id="DNxl!XdQ.czyzZm;QGi@">threadingWire2</field> </block> </value> </block> </value> <value name="MakeSolid"> <block type="logic_boolean" id="$sGgB4b7)-eDBs8JVuUq"> <field name="BOOL">TRUE</field> </block> </value> </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> <value name="RETURN"> <block type="variables_get" id="K]LC)V4+)Ty?`,i#4gN%"> <field name="VAR" id="S%mYMXUXaWiZNZ7roL#K">threading</field> </block> </value> </block> <block type="variables_set" id="_DURhRC,%bm(G65AyNMY" x="-101" y="328"> <field name="VAR" id="9/vC#xM`@OM+vlr9%GSX">width</field> <value name="VALUE"> <block type="math_number" id="uX*]B3y#YnOr8p({?}H/"> <field name="NUM">5</field> </block> </value> <next> <block type="variables_set" id=",SgY2W#}G|N)*%H5x?+C"> <field name="VAR" id="(6$#V|/n`_Pv-H(ZD)zj">height</field> <value name="VALUE"> <block type="math_number" id="U*v4;,c4*+yb2r4-RNq^"> <field name="NUM">8</field> </block> </value> <next> <block type="variables_set" id="Xe:7ch!!U|6N$q5m,8!i"> <field name="VAR" id="u2uPnPPZ:b9l)X{D*K/5">thickness</field> <value name="VALUE"> <block type="math_number" id="Rstq`n9Mq}7op2]Nr/!Z"> <field name="NUM">3</field> </block> </value> <next> <block type="variables_set" id="92v7H!+4V#Z2Ygl/`2yD"> <field name="VAR" id="l-pydd;c0ZHVYiu+(JD?">bottle</field> <value name="VALUE"> <block type="procedures_callreturn" id="#CwxY8{V[)[nq=2~YhV%"> <mutation name="makeThickBottleWithThreading"> <arg name="width"> </arg> <arg name="height"> </arg> <arg name="thickness"> </arg> </mutation> <value name="ARG0"> <block type="variables_get" id=")qV8FiC%sBNKzb0M/kip"> <field name="VAR" id="9/vC#xM`@OM+vlr9%GSX">width</field> </block> </value> <value name="ARG1"> <block type="variables_get" id="TUi$OwB.eDmZ(%1{|Pm-"> <field name="VAR" id="(6$#V|/n`_Pv-H(ZD)zj">height</field> </block> </value> <value name="ARG2"> <block type="variables_get" id="Cdc+nRu}L+VmnL+^)L#c"> <field name="VAR" id="u2uPnPPZ:b9l)X{D*K/5">thickness</field> </block> </value> </block> </value> <next> <block type="variables_set" id="oX0lzw.NY,wIA6;ZOU{N"> <field name="VAR" id="FTGicG=TMN*[^BN8v!_C">drawOptions</field> <value name="VALUE"> <block type="bitbybit.draw.optionsOcctShape" id="M[$yvLyF/9cvH.NqS@A4"> <value name="FaceOpacity"> <block type="math_number" id="0F+@sD5i/h8fE{Tdw,6#"> <field name="NUM">1</field> </block> </value> <value name="EdgeOpacity"> <block type="math_number" id="_pmm^JskV(*=KP)NTPnG"> <field name="NUM">0.7</field> </block> </value> <value name="EdgeColour"> <block type="colour_picker" id="((=kV@g`qnSl.%paY^wK"> <field name="COLOUR">#000000</field> </block> </value> <value name="FaceColour"> <block type="colour_picker" id="(d?d6DnOMvz?xNa~^vAm"> <field name="COLOUR">#3366ff</field> </block> </value> <value name="EdgeWidth"> <block type="math_number" id="{a=7Iy{L=LJ%4?~~Z+us"> <field name="NUM">1</field> </block> </value> <value name="DrawEdges"> <block type="logic_boolean" id="![L2LVu!5Ks[Ohh?y@/z"> <field name="BOOL">TRUE</field> </block> </value> <value name="DrawFaces"> <block type="logic_boolean" id="(M%f~?Q!clCHtTN?#-vK"> <field name="BOOL">TRUE</field> </block> </value> <value name="Precision"> <block type="math_number" id="Wacl.3s!I+}+cEw%#;Qy"> <field name="NUM">0.001</field> </block> </value> <value name="DrawEdgeIndexes"> <block type="logic_boolean" id="S9g_`[=c1Dj45cdr;M#p"> <field name="BOOL">FALSE</field> </block> </value> <value name="EdgeIndexHeight"> <block type="math_number" id="6TaYvbVky~[KR,($!n,7"> <field name="NUM">0.06</field> </block> </value> <value name="EdgeIndexColour"> <block type="colour_picker" id="X-?unBlhsW?@Bx{[gZ.`"> <field name="COLOUR">#000000</field> </block> </value> <value name="DrawFaceIndexes"> <block type="logic_boolean" id="I~?wH-P?Nj9/+n%E)4Yr"> <field name="BOOL">FALSE</field> </block> </value> <value name="FaceIndexHeight"> <block type="math_number" id="$_c-UAscq}7Y;(m53D]_"> <field name="NUM">0.06</field> </block> </value> <value name="FaceIndexColour"> <block type="colour_picker" id="j9*]QH|Zj!*Di5J=N5v_"> <field name="COLOUR">#000000</field> </block> </value> </block> </value> <next> <block type="bitbybit.draw.drawAnyAsyncNoReturn" id="A`#3:SO$NA^ENkaQ0J`]"> <value name="Entity"> <block type="variables_get" id="qlW!Kdq,d-LDTKNg1qqM"> <field name="VAR" id="l-pydd;c0ZHVYiu+(JD?">bottle</field> </block> </value> <value name="Options"> <block type="variables_get" id="M)w#OM%0dF.VR]~Y*I8W"> <field name="VAR" id="FTGicG=TMN*[^BN8v!_C">drawOptions</field> </block> </value> <next> <block type="variables_set" id="8I*tI:b`W$mDA@6q}nAl"> <field name="VAR" id="aE`s@1X(fe.V*Ks]Pql(">nodeForLights</field> <value name="VALUE"> <block type="bitbybit.babylon.node.createNodeFromRotation" id="h/+cl/UQ6Xn!p?=HiMzq"> <value name="Parent"> <block type="bitbybit.babylon.node.getRootNode" id="Gm*9eL^ZW~@bPz%ndwy8"> </block> </value> <value name="Origin"> <block type="bitbybit.point.pointXYZ" id="Gi)`j}Y951o!G~[Fq*uP"> <value name="X"> <block type="math_number" id="6z$Rb#kO]F|#;cRwqJ8Q"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="?f-kO7HgR0zgm8x+);R["> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_number" id="xk3@7%SLwyPp,-jQ*6el"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="Rotation"> <block type="bitbybit.point.pointXYZ" id="aZK950FlT0)OGk*aL_cE"> <value name="X"> <block type="math_number" id="q9clo~59S@tGo#(1zr#C"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="m2x:ABOAjj8|C?X2IagM"> <field name="NUM">0</field> </block> </value> <value name="Z"> <block type="math_number" id="lU?`Yu-ybJW_nm%]Fd1:"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="0}%83@.wCL$D/r]Icl1#"> <field name="VAR" id="3b-BFP*iy,UWSUYbk^sx">pointLight1</field> <value name="VALUE"> <block type="bitbybit.babylon.scene.drawPointLight" id="Z4hTcb)Y6ed:dR):(pOo"> <value name="Position"> <block type="bitbybit.point.pointXYZ" id="Agn?O$vZT@YRpvnwU37z"> <value name="X"> <block type="math_arithmetic" id="A/yuNO0XQ,5;x?Qy}*d0"> <field name="OP">MULTIPLY</field> <value name="A"> <block type="variables_get" id="n{cT`ziUY(picx7etm.="> <field name="VAR" id="u2uPnPPZ:b9l)X{D*K/5">thickness</field> </block> </value> <value name="B"> <block type="math_number" id="XG;[4_c3?aPf]tK|x|dm"> <field name="NUM">1</field> </block> </value> </block> </value> <value name="Y"> <block type="variables_get" id="MfkDgx]-dc0S35Jf^cI1"> <field name="VAR" id="(6$#V|/n`_Pv-H(ZD)zj">height</field> </block> </value> <value name="Z"> <block type="variables_get" id="TuaW/#~2}5$qM663n?K#"> <field name="VAR" id="9/vC#xM`@OM+vlr9%GSX">width</field> </block> </value> </block> </value> <value name="Intensity"> <block type="math_number" id="}mO8B^9e@aL4%|bemiuw"> <field name="NUM">3000</field> </block> </value> <value name="Diffuse"> <block type="colour_picker" id="i2QN_?O8ef%su0$NhwpE"> <field name="COLOUR">#ffffff</field> </block> </value> <value name="Specular"> <block type="colour_picker" id="Gc47)ft%6{1Rb3YnRv6l"> <field name="COLOUR">#ffffff</field> </block> </value> <value name="Radius"> <block type="math_number" id=".ypo:6/1xt46,@QX8,j#"> <field name="NUM">0.2</field> </block> </value> <value name="ShadowGeneratorMapSize"> <block type="math_number" id="sl_dbHh)VEcb(:f_5v=G"> <field name="NUM">2056</field> </block> </value> <value name="EnableShadows"> <block type="logic_boolean" id="38?);e(|qEJ^T/}JS,%T"> <field name="BOOL">TRUE</field> </block> </value> <value name="ShadowDarkness"> <block type="math_number" id="};g~rk@D{ERh7l9(QDQs"> <field name="NUM">0</field> </block> </value> </block> </value> <next> <block type="variables_set" id=".yW}Fd_.4B!*S6*{k#=?"> <field name="VAR" id="3G:FJXj)R{|u/HZ^P|BG">pointLight2</field> <value name="VALUE"> <block type="bitbybit.babylon.scene.drawPointLight" id="jR4=@#X1:zdSZK=a](@e"> <value name="Position"> <block type="bitbybit.point.pointXYZ" id="Uf$uf$of6|4jrVc5U1pn"> <value name="X"> <block type="math_arithmetic" id=";:2Bwf`kI`r^M?*4aM^S"> <field name="OP">MULTIPLY</field> <value name="A"> <block type="variables_get" id=")#H6xDA=d_6F{r08^LLn"> <field name="VAR" id="u2uPnPPZ:b9l)X{D*K/5">thickness</field> </block> </value> <value name="B"> <block type="math_number" id="WqYx~q$nQW]P/cTbSw`o"> <field name="NUM">-1</field> </block> </value> </block> </value> <value name="Y"> <block type="math_arithmetic" id="DWkL1ZM5=PpO;MHIAd53"> <field name="OP">MULTIPLY</field> <value name="A"> <block type="variables_get" id="L~Fr:Lg4eVBI@L)a1MIs"> <field name="VAR" id="(6$#V|/n`_Pv-H(ZD)zj">height</field> </block> </value> <value name="B"> <block type="math_number" id="6`}MU(vZT$%G0owZSM0="> <field name="NUM">1.2</field> </block> </value> </block> </value> <value name="Z"> <block type="math_single" id="{t%O_@t3ruQjL/Y@I6:j"> <field name="OP">NEG</field> <value name="NUM"> <block type="variables_get" id="D`A`p:9e}~A^^@aJoy^t"> <field name="VAR" id="9/vC#xM`@OM+vlr9%GSX">width</field> </block> </value> </block> </value> </block> </value> <value name="Intensity"> <block type="math_number" id="m$(WH}Y@vnbGf5vpovj+"> <field name="NUM">2056</field> </block> </value> <value name="Diffuse"> <block type="colour_picker" id="+v0q/QP0cT|Am;E?@dVo"> <field name="COLOUR">#ffffff</field> </block> </value> <value name="Specular"> <block type="colour_picker" id="bMCex$0.*?y!%{1/B)R*"> <field name="COLOUR">#ffffff</field> </block> </value> <value name="Radius"> <block type="math_number" id="me;][bY9WSfs.~9`S-w,"> <field name="NUM">0.2</field> </block> </value> <value name="ShadowGeneratorMapSize"> <block type="math_number" id="LQI6!3HU`{8)qLM$DPQA"> <field name="NUM">2056</field> </block> </value> <value name="EnableShadows"> <block type="logic_boolean" id="hL*sh`t(Y+RMY:ciKsrl"> <field name="BOOL">TRUE</field> </block> </value> <value name="ShadowDarkness"> <block type="math_number" id="DNxu`yDj(BseXqZO!U;q"> <field name="NUM">0</field> </block> </value> </block> </value> <next> <block type="bitbybit.babylon.mesh.setParent" id="e.u/ImiDkk+{*X_*x-,n"> <value name="BabylonMesh"> <block type="variables_get" id="qc[Y3Hyz[tBQ;Z~)OiIh"> <field name="VAR" id="3b-BFP*iy,UWSUYbk^sx">pointLight1</field> </block> </value> <value name="ParentMesh"> <block type="variables_get" id="K=M|#PWhbNxE1Q?/l,eK"> <field name="VAR" id="aE`s@1X(fe.V*Ks]Pql(">nodeForLights</field> </block> </value> <next> <block type="bitbybit.babylon.mesh.setParent" id="XP9^]-E$|},0?XIGP5Qb"> <value name="BabylonMesh"> <block type="variables_get" id="kir8}Ubjk`H98xDiWS5,"> <field name="VAR" id="3G:FJXj)R{|u/HZ^P|BG">pointLight2</field> </block> </value> <value name="ParentMesh"> <block type="variables_get" id="BgVeshfHk=riO[#?G3%n"> <field name="VAR" id="aE`s@1X(fe.V*Ks]Pql(">nodeForLights</field> </block> </value> <next> <block type="bitbybit.draw.drawAnyAsyncNoReturn" id="pF_rQ5!G4reQ/-d?^;ZG"> <value name="Entity"> <block type="bitbybit.occt.shapes.face.createCircleFace" id="WI/T0t?X;Z1N4WAj8NBt"> <value name="Radius"> <block type="math_number" id="KY:xsPm7yo~kXd[K7@9f"> <field name="NUM">10</field> </block> </value> <value name="Center"> <block type="bitbybit.point.pointXYZ" id="g3XIitG(~~%`JTt}AmDD"> <value name="X"> <block type="math_number" id="AZN8R9WayF}#6YoG6P^O"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="AP/1Dj7GuV]0HcMM{Hjq"> <field name="NUM">-0.1</field> </block> </value> <value name="Z"> <block type="math_number" id="4ishK=RqoVdoIPOf|Ttq"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="Direction"> <block type="bitbybit.point.pointXYZ" id=",e0xDRW!yf@`)I*[7Z*7"> <value name="X"> <block type="math_number" id="eM`!M0qBrS;uEchHx`bd"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="math_number" id="nO:i8j?pV=c(+j3@kWY%"> <field name="NUM">1</field> </block> </value> <value name="Z"> <block type="math_number" id="J1]U;nN;iegHTEPIkc$I"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> <value name="Options"> <block type="variables_get" id="D{aKXmxD-?Grb^81OaZg"> <field name="VAR" id="FTGicG=TMN*[^BN8v!_C">drawOptions</field> </block> </value> <next> <block type="variables_set" id="Tb5r623V4O=nc`ioZVW:"> <field name="VAR" id="DQN=8Yx9nEqUNz]1VO9S">lightRotationCount</field> <value name="VALUE"> <block type="math_number" id="b$GyF9@HQZl@G;uUTSvp"> <field name="NUM">0</field> </block> </value> <next> <block type="base_time_update" id="{1la8jk10+^#u5-$cRx`"> <field name="TimePassedMs" id="=@wETM8!Kt%|}9.L5156">timeElapsedFromPreviousFrame</field> <statement name="Update"> <block type="math_change" id="c?cHw*X}=cfr5;VA?3AR"> <field name="VAR" id="DQN=8Yx9nEqUNz]1VO9S">lightRotationCount</field> <value name="DELTA"> <shadow type="math_number" id="7PB}rKS`3e`%R(wjw%fd"> <field name="NUM">0.1</field> </shadow> </value> <next> <block type="bitbybit.babylon.mesh.setRotation" id="(H/b(h:O)ELLn*9C2+_J"> <value name="BabylonMesh"> <block type="variables_get" id="W.XlsZiQa`6;g(u=v9eS"> <field name="VAR" id="aE`s@1X(fe.V*Ks]Pql(">nodeForLights</field> </block> </value> <value name="Rotation"> <block type="bitbybit.point.pointXYZ" id="ogfk+BW%~nKKTa4/?E[W"> <value name="X"> <block type="math_number" id=";o:^46]q^#K6qQcDjeu#"> <field name="NUM">0</field> </block> </value> <value name="Y"> <block type="variables_get" id="Kh@ihuT+BZZq:G@$@|J^"> <field name="VAR" id="DQN=8Yx9nEqUNz]1VO9S">lightRotationCount</field> </block> </value> <value name="Z"> <block type="math_number" id="n|P1?y*cGtji!yYJ(7O9"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </next> </block> </statement> <next> <block type="bitbybit.draw.drawGridMeshNoReturn" id="F^67h0?%aE(DiAXc.DDN"> <value name="Width"> <block type="math_number" id="l[7^)`*i*_B4=h;^q!0U"> <field name="NUM">400</field> </block> </value> <value name="Height"> <block type="math_number" id="0dXxE`XbE4%dZa{]pC@s"> <field name="NUM">400</field> </block> </value> <value name="Subdivisions"> <block type="math_number" id="h*Y57mn.8ww/87/ops6I"> <field name="NUM">10</field> </block> </value> <value name="MajorUnitFrequency"> <block type="math_number" id="?p$89Qdw5e1Y(B(J79lf"> <field name="NUM">10</field> </block> </value> <value name="MinorUnitVisibility"> <block type="math_number" id="HO2vzqcrIcpOcySTN2`S"> <field name="NUM">0.45</field> </block> </value> <value name="GridRatio"> <block type="math_number" id="=y?^cDPjEzrkV=8`|Sk,"> <field name="NUM">0.5</field> </block> </value> <value name="Opacity"> <block type="math_number" id="qJ?$^K5sRLmY(m{hoh6I"> <field name="NUM">0.5</field> </block> </value> <value name="BackFaceCulling"> <block type="logic_boolean" id="ekfUPFgn%G5DtG?6S30^"> <field name="BOOL">FALSE</field> </block> </value> <value name="MainColor"> <block type="colour_picker" id="*skONXEpTxv%F,e@nc/{"> <field name="COLOUR">#ffffff</field> </block> </value> <value name="SecondaryColor"> <block type="colour_picker" id=")g|e/U_/y;^Ko~y;;0@("> <field name="COLOUR">#ffffff</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> <block type="math_number" id="ueT.d!VvQ}/tXsNELsCC" x="181" y="2995"> <field name="NUM">0</field> </block> </xml>