Script: Laptop stand blockly

Laptop stand blockly picture
Type
Blockly logo indicatorblockly
Author
matas
Date Created
Apr 9, 2021, 4:23:57 PM
Last Edit Date
Dec 5, 2023, 7:05:08 PM

Project Information

Multi slot and single slot configurable laptop stand. Change parameters and you will be able to configure this stand for your own purposes in minutes.

View Full Project

Script Code

<xml xmlns="https://developers.google.com/blockly/xml">
 <variables>
  <variable id="K/@-42QKxE!UWz#$7IYX">laptopThickness</variable>
  <variable id="3afy[tTcpuyS7A(_?FL+">laptopHeight</variable>
  <variable id="wEP~!;MC{M.!*XZQ}(}F">laptopWidth</variable>
  <variable id="X{qP1|JP^1%/9tT{gJfZ">standSideThickness</variable>
  <variable id="CV:1PX9f4mJwyO*K6wDb">laptopOffsetFromGround</variable>
  <variable id="S,8z8C-y;usRfMLjR|oj">profilePoints</variable>
  <variable id="0a^sM9$lxDVxu2mq_TVh">laptopToDraw</variable>
  <variable id="#D2?Rt8,??{r3}yl-afe">laptopStandThickSolid</variable>
 </variables>
 <block type="variables_set" id="+t8s!%k9Q5gYsQY6t705" x="4077" y="-1570">
  <field name="VAR" id="K/@-42QKxE!UWz#$7IYX">laptopThickness</field>
  <value name="VALUE">
   <block type="math_number" id="eFs-Qhf~M0X/TJVh;Dps">
    <field name="NUM">1.5</field>
   </block>
  </value>
  <next>
   <block type="variables_set" id="MO#DWg+DU}9#T!/oSmx}">
    <field name="VAR" id="3afy[tTcpuyS7A(_?FL+">laptopHeight</field>
    <value name="VALUE">
     <block type="math_number" id="s91R}zc6D?nfvtfCpUK1">
      <field name="NUM">21.24</field>
     </block>
    </value>
    <next>
     <block type="variables_set" id="f8[a57=jdYzS0)ReAtIl">
      <field name="VAR" id="wEP~!;MC{M.!*XZQ}(}F">laptopWidth</field>
      <value name="VALUE">
       <block type="math_number" id="e[[E+-!#]:=/spVTOAAr">
        <field name="NUM">30.41</field>
       </block>
      </value>
      <next>
       <block type="variables_set" id="j?PVjJE|;Do9:GUhIyI%">
        <field name="VAR" id="X{qP1|JP^1%/9tT{gJfZ">standSideThickness</field>
        <value name="VALUE">
         <block type="math_number" id="Rwf^BszLL?RF.`!;ku*y">
          <field name="NUM">1.7</field>
         </block>
        </value>
        <next>
         <block type="variables_set" id="CL+(AbLk+aA_S=f(rW~b">
          <field name="VAR" id="CV:1PX9f4mJwyO*K6wDb">laptopOffsetFromGround</field>
          <value name="VALUE">
           <block type="math_number" id="{v[Uub=5oqQ:%J:P/9g^">
            <field name="NUM">2</field>
           </block>
          </value>
          <next>
           <block type="variables_set" id="{aiLOA0GN3dxAGw$9gCc">
            <field name="VAR" id="S,8z8C-y;usRfMLjR|oj">profilePoints</field>
            <value name="VALUE">
             <block type="lists_create_with" id=";_WNmH7$;c)Q_26c_VB%">
              <mutation items="8">
              </mutation>
              <value name="ADD0">
               <block type="bitbybit.point.pointXYZ" id="?IOUv8CiVx8ZGkMEQo$_">
                <value name="X">
                 <block type="math_number" id="kh?}t,8)rF0G?t|:#J85">
                  <field name="NUM">-12.5</field>
                 </block>
                </value>
                <value name="Y">
                 <block type="math_number" id="-r4Kf.+;v}=l:E[EwM%^">
                  <field name="NUM">0</field>
                 </block>
                </value>
                <value name="Z">
                 <block type="math_number" id="osMZhq,`_L93?g#DDx0o">
                  <field name="NUM">0</field>
                 </block>
                </value>
               </block>
              </value>
              <value name="ADD1">
               <block type="bitbybit.point.pointXYZ" id="@4s^pMCg4FRDZD4Y#03{">
                <value name="X">
                 <block type="math_number" id="i)Z9=.h}Rb(BmO0D6Dez">
                  <field name="NUM">-8</field>
                 </block>
                </value>
                <value name="Y">
                 <block type="math_number" id="tx*U0C^5~85?*:7)]SA|">
                  <field name="NUM">13</field>
                 </block>
                </value>
                <value name="Z">
                 <block type="math_number" id="@$LWoC#8oH[9{)2LrsvZ">
                  <field name="NUM">0</field>
                 </block>
                </value>
               </block>
              </value>
              <value name="ADD2">
               <block type="bitbybit.point.pointXYZ" id="eKgOfB:7GEh[EArt)5s_">
                <value name="X">
                 <block type="math_number" id="[+sjsMVK?N?qdMg.#n8@">
                  <field name="NUM">-4</field>
                 </block>
                </value>
                <value name="Y">
                 <block type="math_number" id="W2x9[-}JoYP3QV~ty?Fk">
                  <field name="NUM">11</field>
                 </block>
                </value>
                <value name="Z">
                 <block type="math_number" id="F!xm_HK*6td:cHUWsBW6">
                  <field name="NUM">0</field>
                 </block>
                </value>
               </block>
              </value>
              <value name="ADD3">
               <block type="bitbybit.point.pointXYZ" id=").|_]~A+gBgkc91-iN,N">
                <value name="X">
                 <block type="math_number" id="bxz~g_a/DR=$3G*x%F2L">
                  <field name="NUM">-2</field>
                 </block>
                </value>
                <value name="Y">
                 <block type="math_number" id="!|q(u]3%5y%{6BiJ]F!:">
                  <field name="NUM">6</field>
                 </block>
                </value>
                <value name="Z">
                 <block type="math_number" id=".z9,chAw~]I$e$f$lyoB">
                  <field name="NUM">0</field>
                 </block>
                </value>
               </block>
              </value>
              <value name="ADD4">
               <block type="bitbybit.point.pointXYZ" id="],KZ7[0L,aM/FK]++F$+">
                <value name="X">
                 <block type="math_number" id="7s@H.xrjoOIfk*ZMTH%W">
                  <field name="NUM">2</field>
                 </block>
                </value>
                <value name="Y">
                 <block type="math_number" id="%-e[WO|e^[)JMEA[J{!e">
                  <field name="NUM">6</field>
                 </block>
                </value>
                <value name="Z">
                 <block type="math_number" id=":Jx?0F)}l_Pl!sV-z2o:">
                  <field name="NUM">0</field>
                 </block>
                </value>
               </block>
              </value>
              <value name="ADD5">
               <block type="bitbybit.point.pointXYZ" id="5qjGQ,2;pHcNJ/wIo9Im">
                <value name="X">
                 <block type="math_number" id="JVO`*rmaO(Cj3/PB@Soy">
                  <field name="NUM">4</field>
                 </block>
                </value>
                <value name="Y">
                 <block type="math_number" id="TRXO~MNiqv,C(F:7=!ay">
                  <field name="NUM">14</field>
                 </block>
                </value>
                <value name="Z">
                 <block type="math_number" id="Y-r59G(Zzr-1:FKxK)h~">
                  <field name="NUM">0</field>
                 </block>
                </value>
               </block>
              </value>
              <value name="ADD6">
               <block type="bitbybit.point.pointXYZ" id="C*kg8E!zh^sQ%/gZA,dy">
                <value name="X">
                 <block type="math_number" id="5NQ%mh-KV=1Ru|[?$NFM">
                  <field name="NUM">8</field>
                 </block>
                </value>
                <value name="Y">
                 <block type="math_number" id="B_Tp@9gV?K8?7g;K6~Im">
                  <field name="NUM">17</field>
                 </block>
                </value>
                <value name="Z">
                 <block type="math_number" id="^vx6n;VHR$hD}A@mAToV">
                  <field name="NUM">0</field>
                 </block>
                </value>
               </block>
              </value>
              <value name="ADD7">
               <block type="bitbybit.point.pointXYZ" id="-J`E#A#_5U~`$E*w}Gp1">
                <value name="X">
                 <block type="math_number" id="$bj7~{]Hr*!O*Wy9,lcN">
                  <field name="NUM">12.5</field>
                 </block>
                </value>
                <value name="Y">
                 <block type="math_number" id="%f*p*nC[FbzR@cG4AQr4">
                  <field name="NUM">0</field>
                 </block>
                </value>
                <value name="Z">
                 <block type="math_number" id="HH8|mCtlrP;x[0PT@kua">
                  <field name="NUM">0</field>
                 </block>
                </value>
               </block>
              </value>
             </block>
            </value>
            <next>
             <block type="variables_set" id="?eCY[wdO*~H]`J`*Npi)">
              <field name="VAR" id="0a^sM9$lxDVxu2mq_TVh">laptopToDraw</field>
              <value name="VALUE">
               <block type="bitbybit.occt.fillets.filletEdges" id="H6V*ie{dw+`j*AAuG,n$">
                <value name="Shape">
                 <block type="bitbybit.occt.shapes.solid.createBox" id="VD!^6S6s=*?xAs7io`zL">
                  <value name="Width">
                   <block type="variables_get" id="k}+0z|n1GtYo/;|]mWG=">
                    <field name="VAR" id="wEP~!;MC{M.!*XZQ}(}F">laptopWidth</field>
                   </block>
                  </value>
                  <value name="Length">
                   <block type="variables_get" id="_i~UIDEg_5*T+s7#:1j~">
                    <field name="VAR" id="K/@-42QKxE!UWz#$7IYX">laptopThickness</field>
                   </block>
                  </value>
                  <value name="Height">
                   <block type="variables_get" id="mNIA:zXRG1yKE*70Qp!!">
                    <field name="VAR" id="3afy[tTcpuyS7A(_?FL+">laptopHeight</field>
                   </block>
                  </value>
                  <value name="Center">
                   <block type="bitbybit.point.pointXYZ" id="g8S5t4VqjaFoNX`_,x[X">
                    <value name="X">
                     <block type="math_number" id="$(sF`=u2)/n9Pe{kD}Bz">
                      <field name="NUM">0</field>
                     </block>
                    </value>
                    <value name="Y">
                     <block type="math_arithmetic" id="jo.YD1ZvNhbUV,|YWv+U">
                      <field name="OP">ADD</field>
                      <value name="A">
                       <block type="variables_get" id="3Q]gOoOBW9:v.2Q.9P|H">
                        <field name="VAR" id="CV:1PX9f4mJwyO*K6wDb">laptopOffsetFromGround</field>
                       </block>
                      </value>
                      <value name="B">
                       <block type="math_arithmetic" id="IfS!U$Bi2q]#/{s^dj^;">
                        <field name="OP">DIVIDE</field>
                        <value name="A">
                         <block type="variables_get" id="-x-Iy0fUOvpSPEFN0t8r">
                          <field name="VAR" id="3afy[tTcpuyS7A(_?FL+">laptopHeight</field>
                         </block>
                        </value>
                        <value name="B">
                         <block type="math_number" id="FIK^C4J[.Y3;)b:g%_]f">
                          <field name="NUM">2</field>
                         </block>
                        </value>
                       </block>
                      </value>
                     </block>
                    </value>
                    <value name="Z">
                     <block type="math_arithmetic" id="XQ(27-opt{UOHct~zfSf">
                      <field name="OP">ADD</field>
                      <value name="A">
                       <block type="variables_get" id="-P,`DTh:o!DV:J)qsYI~">
                        <field name="VAR" id="X{qP1|JP^1%/9tT{gJfZ">standSideThickness</field>
                       </block>
                      </value>
                      <value name="B">
                       <block type="math_arithmetic" id="C0_K;9DLvAA7-mZ-+*hP">
                        <field name="OP">DIVIDE</field>
                        <value name="A">
                         <block type="variables_get" id="9GM[ZkY+Iw^XpFP@)Cyk">
                          <field name="VAR" id="K/@-42QKxE!UWz#$7IYX">laptopThickness</field>
                         </block>
                        </value>
                        <value name="B">
                         <block type="math_number" id="6y,YvD832aZrP}nMK~5Z">
                          <field name="NUM">2</field>
                         </block>
                        </value>
                       </block>
                      </value>
                     </block>
                    </value>
                   </block>
                  </value>
                 </block>
                </value>
                <value name="Radius">
                 <block type="math_number" id="GGR%#C(U4A04iolTucGF">
                  <field name="NUM">0.2</field>
                 </block>
                </value>
               </block>
              </value>
              <next>
               <block type="variables_set" id="B#G}:LU5DQ7:9Vbf4Tf]">
                <field name="VAR" id="#D2?Rt8,??{r3}yl-afe">laptopStandThickSolid</field>
                <value name="VALUE">
                 <block type="bitbybit.occt.operations.makeThickSolidSimple" id="Vrx-e?a_~nRzebpLASuJ">
                  <value name="Shape">
                   <block type="bitbybit.occt.fillets.filletEdges" id="jw63z*=^YWu?;KOCHn!e">
                    <value name="Shape">
                     <block type="bitbybit.occt.operations.extrude" id="j)=[5dHLv:DKvz/T_l7V">
                      <value name="Shape">
                       <block type="bitbybit.occt.shapes.wire.createPolygonWire" id="_(@.7WpA)p-/mwYqm#[K">
                        <value name="Points">
                         <block type="variables_get" id="=f;drh1^;f6i?|qA,XKK">
                          <field name="VAR" id="S,8z8C-y;usRfMLjR|oj">profilePoints</field>
                         </block>
                        </value>
                       </block>
                      </value>
                      <value name="Direction">
                       <block type="bitbybit.point.pointXYZ" id="fQ!9AwE!/W+9x04Q~hF6">
                        <value name="X">
                         <block type="math_number" id="~Gw$jb1p.(0OK5tGo,d6">
                          <field name="NUM">0</field>
                         </block>
                        </value>
                        <value name="Y">
                         <block type="math_number" id="^qd@NkU{8$wlB4w7e,@4">
                          <field name="NUM">0</field>
                         </block>
                        </value>
                        <value name="Z">
                         <block type="math_arithmetic" id="_QkM:WVALXZkoKAmAw!Z">
                          <field name="OP">ADD</field>
                          <value name="A">
                           <block type="variables_get" id="ha^z684,)4o[3O#Ufj~F">
                            <field name="VAR" id="K/@-42QKxE!UWz#$7IYX">laptopThickness</field>
                           </block>
                          </value>
                          <value name="B">
                           <block type="math_arithmetic" id="$;^qs61]f|c5,oXTn8Xo">
                            <field name="OP">MULTIPLY</field>
                            <value name="A">
                             <block type="variables_get" id="0nO|mz~DBt|sJn4tk(tq">
                              <field name="VAR" id="X{qP1|JP^1%/9tT{gJfZ">standSideThickness</field>
                             </block>
                            </value>
                            <value name="B">
                             <block type="math_number" id="Gthe[)sVw#a{a;yWRw=O">
                              <field name="NUM">2</field>
                             </block>
                            </value>
                           </block>
                          </value>
                         </block>
                        </value>
                       </block>
                      </value>
                     </block>
                    </value>
                    <value name="Radius">
                     <block type="math_number" id="SpYdD*n*]U7.wog,dOaF">
                      <field name="NUM">1.5</field>
                     </block>
                    </value>
                   </block>
                  </value>
                  <value name="Offset">
                   <block type="math_number" id="I;;`QPav[izt)|+ZEOG5">
                    <field name="NUM">-0.5</field>
                   </block>
                  </value>
                 </block>
                </value>
                <next>
                 <block type="bitbybit.draw.drawAnyAsyncNoReturn" id="#uk*y$V%6OqaSf[l`!r3">
                  <value name="Entity">
                   <block type="bitbybit.occt.booleans.difference" id="zZWEHK.t0S2z`!WB4?s(">
                    <value name="Shape">
                     <block type="variables_get" id="#K^*;vq10#PgcJ{n?n4o">
                      <field name="VAR" id="#D2?Rt8,??{r3}yl-afe">laptopStandThickSolid</field>
                     </block>
                    </value>
                    <value name="Shapes">
                     <block type="lists_create_with" id="(MR_BpM[I|{5%M1[#bo?">
                      <mutation items="1">
                      </mutation>
                      <value name="ADD0">
                       <block type="variables_get" id="/fuN4Bg(.7a%~l0CN[1l">
                        <field name="VAR" id="0a^sM9$lxDVxu2mq_TVh">laptopToDraw</field>
                       </block>
                      </value>
                     </block>
                    </value>
                    <value name="KeepEdges">
                     <block type="logic_boolean" id="zEk;,(rbHa?Z3KogPX7B">
                      <field name="BOOL">FALSE</field>
                     </block>
                    </value>
                   </block>
                  </value>
                  <value name="Options">
                   <block type="bitbybit.draw.optionsOcctShape" id="w1#EjJ|c-N$8;;yF+,k.">
                    <value name="FaceOpacity">
                     <block type="math_number" id="RP|)!6XL%YX`.O~)/4D0">
                      <field name="NUM">1</field>
                     </block>
                    </value>
                    <value name="EdgeOpacity">
                     <block type="math_number" id="+WYlu$/G2]i;OiP(p:oy">
                      <field name="NUM">1</field>
                     </block>
                    </value>
                    <value name="EdgeColour">
                     <block type="colour_picker" id="(|xuOJhJ@F[Or]B??P$6">
                      <field name="COLOUR">#ffffff</field>
                     </block>
                    </value>
                    <value name="FaceColour">
                     <block type="colour_picker" id="A/ShGcPuw4Lni;[:-AY=">
                      <field name="COLOUR">#990000</field>
                     </block>
                    </value>
                    <value name="EdgeWidth">
                     <block type="math_number" id="cC8-IR5L[3ns6}i1iSzX">
                      <field name="NUM">5</field>
                     </block>
                    </value>
                    <value name="DrawEdges">
                     <block type="logic_boolean" id="Jp-jJLS2_w_%[b=0jGv/">
                      <field name="BOOL">TRUE</field>
                     </block>
                    </value>
                    <value name="DrawFaces">
                     <block type="logic_boolean" id="?b^B@Ybf{ykR`wuC|%S^">
                      <field name="BOOL">TRUE</field>
                     </block>
                    </value>
                    <value name="Precision">
                     <block type="math_number" id=")2L]3sGcx{x4=9zl}|d7">
                      <field name="NUM">0.05</field>
                     </block>
                    </value>
                    <value name="DrawEdgeIndexes">
                     <block type="logic_boolean" id=":#n7YF`6|:)gKy]4AYSp">
                      <field name="BOOL">FALSE</field>
                     </block>
                    </value>
                    <value name="EdgeIndexHeight">
                     <block type="math_number" id="_bDN|3S$o,bc~jwt~Ej@">
                      <field name="NUM">0.06</field>
                     </block>
                    </value>
                    <value name="EdgeIndexColour">
                     <block type="colour_picker" id="Mx2`7:.6qF#t}t/q1;@6">
                      <field name="COLOUR">#bbbbff</field>
                     </block>
                    </value>
                    <value name="DrawFaceIndexes">
                     <block type="logic_boolean" id="cESUSF*LulFTk!NF0g18">
                      <field name="BOOL">FALSE</field>
                     </block>
                    </value>
                    <value name="FaceIndexHeight">
                     <block type="math_number" id="jW/8MvWL!aY{):$*N|8G">
                      <field name="NUM">0.06</field>
                     </block>
                    </value>
                    <value name="FaceIndexColour">
                     <block type="colour_picker" id="oB#*0K+sZ1H2eh=c-0n2">
                      <field name="COLOUR">#0000ff</field>
                     </block>
                    </value>
                   </block>
                  </value>
                  <next>
                   <block type="bitbybit.draw.drawAnyAsyncNoReturn" id="h@@i1[-mQWr7*d$0cSol">
                    <value name="Entity">
                     <block type="variables_get" id="2otb0Z%oOE1KL*q?,pc)">
                      <field name="VAR" id="0a^sM9$lxDVxu2mq_TVh">laptopToDraw</field>
                     </block>
                    </value>
                    <value name="Options">
                     <block type="bitbybit.draw.optionsOcctShape" id="TQBN/ZNlYpZYW%)%zBmj">
                      <value name="FaceOpacity">
                       <block type="math_number" id="R!f*xHl]jz?J^:S?)RRZ">
                        <field name="NUM">1</field>
                       </block>
                      </value>
                      <value name="EdgeOpacity">
                       <block type="math_number" id="EE7z_=[w+-H^Q6D-E{im">
                        <field name="NUM">0.4</field>
                       </block>
                      </value>
                      <value name="EdgeColour">
                       <block type="colour_picker" id="a,{4VnfO^|fhb`cT2!T0">
                        <field name="COLOUR">#ffffff</field>
                       </block>
                      </value>
                      <value name="FaceColour">
                       <block type="colour_picker" id="$?Hk{U0}imQZ:fL2Xi+x">
                        <field name="COLOUR">#ffffff</field>
                       </block>
                      </value>
                      <value name="EdgeWidth">
                       <block type="math_number" id="z7b6/%@y9*9BGW]M(7dW">
                        <field name="NUM">5</field>
                       </block>
                      </value>
                      <value name="DrawEdges">
                       <block type="logic_boolean" id="B-GhyPx{HRUU_m|_W$tY">
                        <field name="BOOL">TRUE</field>
                       </block>
                      </value>
                      <value name="DrawFaces">
                       <block type="logic_boolean" id="hPK[_{EXT2lVqSKM{Rsi">
                        <field name="BOOL">TRUE</field>
                       </block>
                      </value>
                      <value name="Precision">
                       <block type="math_number" id="LUHtUvHv)+0~jXcQ*d0W">
                        <field name="NUM">0.05</field>
                       </block>
                      </value>
                      <value name="DrawEdgeIndexes">
                       <block type="logic_boolean" id="Tm5!3nN`zm|^6*$Mc7s%">
                        <field name="BOOL">FALSE</field>
                       </block>
                      </value>
                      <value name="EdgeIndexHeight">
                       <block type="math_number" id="06XaN7xMFh.4VjLfx1EW">
                        <field name="NUM">0.06</field>
                       </block>
                      </value>
                      <value name="EdgeIndexColour">
                       <block type="colour_picker" id="}U_[OBu9W0|^mv*W9.ZW">
                        <field name="COLOUR">#bbbbff</field>
                       </block>
                      </value>
                      <value name="DrawFaceIndexes">
                       <block type="logic_boolean" id="PV40~?B[-`K*L@*5m6W;">
                        <field name="BOOL">FALSE</field>
                       </block>
                      </value>
                      <value name="FaceIndexHeight">
                       <block type="math_number" id="6tyvvx6D/V/s%ht+K$=~">
                        <field name="NUM">0.06</field>
                       </block>
                      </value>
                      <value name="FaceIndexColour">
                       <block type="colour_picker" id="=W~k8dB6Wf)e_{l6*()G">
                        <field name="COLOUR">#0000ff</field>
                       </block>
                      </value>
                     </block>
                    </value>
                   </block>
                  </next>
                 </block>
                </next>
               </block>
              </next>
             </block>
            </next>
           </block>
          </next>
         </block>
        </next>
       </block>
      </next>
     </block>
    </next>
   </block>
  </next>
 </block>
</xml>