
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>
Editor plans for 3D development, API keys for server-side CAD algorithms
Cloud storage, private projects & 3D algorithms for Bitbybit editors
Run CAD algorithms on managed cloud servers from your own backend applications
Custom software development, dedicated servers & CAD automation at scale.