
blocklyOpenCascade Technology (OCCT) geometry kernel that we use is capable of importing, interpreting and manipulating real world CAD models. This project is an example of larger scale STEP model. We loaded one of KUKA Robots into our application and put it in our 3D scene. It is a basic example of how import and drawing components should be composed to make it happen. We render both edges and faces.
<xml xmlns="https://developers.google.com/blockly/xml">
<block type="bitbybit.babylon.scene.enableSkybox" id="`ahmkWPP;XZk.S|aHm0^" x="-183" y="-605">
<value name="Skybox">
<block type="bitbybit.babylon.enums.skyboxEnum" id="8xVd2hF~mc?C]#}ZqFJE">
<field name="bitbybit.babylon.enums.skyboxEnum">'clearSky'</field>
</block>
</value>
<value name="Size">
<block type="math_number" id="PdB*qGG7!7}31v6Xl7bo">
<field name="NUM">1000</field>
</block>
</value>
<value name="Blur">
<block type="math_number" id="wPHpFeXB{QiE({P-i^N3">
<field name="NUM">0.4</field>
</block>
</value>
<value name="EnvironmentIntensity">
<block type="math_number" id="p3iD*|XG+6iImb6J|E.#">
<field name="NUM">0.8</field>
</block>
</value>
<next>
<block type="bitbybit.draw.drawGridMeshNoReturn" id="OkC-lZ;Q=Rhb*$yaVZTG">
<value name="Width">
<block type="math_number" id="b2_.7N7-Z5UQygDU}QuT">
<field name="NUM">400</field>
</block>
</value>
<value name="Height">
<block type="math_number" id="lbIXU/Y$S*SI9^6,2S**">
<field name="NUM">400</field>
</block>
</value>
<value name="Subdivisions">
<block type="math_number" id="6Z[o#r%=BE{Kr7d=*[SY">
<field name="NUM">10</field>
</block>
</value>
<value name="MajorUnitFrequency">
<block type="math_number" id="U0C,@HXM?n$XtLxC82a)">
<field name="NUM">10</field>
</block>
</value>
<value name="MinorUnitVisibility">
<block type="math_number" id="NFSMbFpPgj@N+V#*Iho`">
<field name="NUM">0.45</field>
</block>
</value>
<value name="GridRatio">
<block type="math_number" id="gsoaFTP?sFM/e}pkbG}1">
<field name="NUM">0.5</field>
</block>
</value>
<value name="Opacity">
<block type="math_number" id="I:9X*6g-y5f1@b=oDJa!">
<field name="NUM">0.5</field>
</block>
</value>
<value name="BackFaceCulling">
<block type="logic_boolean" id="OMF27[cLiMSA_)3];[Ci">
<field name="BOOL">FALSE</field>
</block>
</value>
<value name="MainColor">
<block type="colour_picker" id="U5N#St~CSh?GuSRr7t/9">
<field name="COLOUR">#ffffff</field>
</block>
</value>
<value name="SecondaryColor">
<block type="colour_picker" id=")vzj5Euokt#WL}plqB$g">
<field name="COLOUR">#ffffff</field>
</block>
</value>
<next>
<block type="bitbybit.draw.drawAnyAsyncNoReturn" id="XdMI6rkX.Sp0[EE?QB=U">
<value name="Entity">
<block type="bitbybit.occt.io.loadSTEPorIGES" id="|2Q~IU[!pGU]vfKX-|^?">
<value name="AssetFile">
<block type="bitbybit.asset.getFile" id="_{z=[4652e-3)}A(n0~g">
<value name="FileName">
<block type="text" id=")]N4^N8asmpMzyfW;x.h">
<field name="TEXT">KukaRobot.stp</field>
</block>
</value>
</block>
</value>
<value name="AdjustZtoY">
<block type="logic_boolean" id="vH#XuUO0+Ukqj:27+R[w">
<field name="BOOL">TRUE</field>
</block>
</value>
</block>
</value>
<value name="Options">
<block type="bitbybit.draw.optionsOcctShape" id="}m~%pQ[o~rEjUZntQK_9">
<value name="FaceOpacity">
<block type="math_number" id="RYU4k#.5)~WnT*#)(}12">
<field name="NUM">1</field>
</block>
</value>
<value name="EdgeOpacity">
<block type="math_number" id="S5H]|;!V1?.jx/K-LSsZ">
<field name="NUM">1</field>
</block>
</value>
<value name="EdgeColour">
<block type="colour_picker" id="i_{+y8ew+]Yc}j|1;#%|">
<field name="COLOUR">#000066</field>
</block>
</value>
<value name="FaceColour">
<block type="colour_picker" id=")Ev9AQvj|Y),`3(m26Bc">
<field name="COLOUR">#cc33cc</field>
</block>
</value>
<value name="EdgeWidth">
<block type="math_number" id="eR:CkWPrPw*0p0.{soZp">
<field name="NUM">3</field>
</block>
</value>
<value name="DrawEdges">
<block type="logic_boolean" id="_LKoYxPb6CZn(]@JVA{g">
<field name="BOOL">TRUE</field>
</block>
</value>
<value name="DrawFaces">
<block type="logic_boolean" id="f`gr!|*N[4m`H=dh`:Qq">
<field name="BOOL">TRUE</field>
</block>
</value>
<value name="Precision">
<block type="math_number" id="k=9pdf2abyUtkZN5}e)]">
<field name="NUM">0.1</field>
</block>
</value>
<value name="DrawEdgeIndexes">
<block type="logic_boolean" id="D{cR+WHc5ygSigChdGkG">
<field name="BOOL">FALSE</field>
</block>
</value>
<value name="EdgeIndexHeight">
<block type="math_number" id="0j|sMvkVKfC9;IU`@#jA">
<field name="NUM">0.06</field>
</block>
</value>
<value name="EdgeIndexColour">
<block type="colour_picker" id="|i|^`v(?8E-U:=4jcc8:">
<field name="COLOUR">#bbbbff</field>
</block>
</value>
<value name="DrawFaceIndexes">
<block type="logic_boolean" id="tMj}:W`*VdFm);S^e3@j">
<field name="BOOL">FALSE</field>
</block>
</value>
<value name="FaceIndexHeight">
<block type="math_number" id="9r3E6Hec?g1as2d8SNMe">
<field name="NUM">0.06</field>
</block>
</value>
<value name="FaceIndexColour">
<block type="colour_picker" id="9J8-53^3TZOo;ST/4Z$%">
<field name="COLOUR">#0000ff</field>
</block>
</value>
</block>
</value>
</block>
</next>
</block>
</next>
</block>
</xml>
Select the perfect plan for your 3D development needs