像 drawAnyAsync 一样将任意实体绘制到场景中,但不返回绘制的对象;适用于脚本的最后一步只需要结果显示出来的情况。
要绘制的对象和可选的绘制选项
将本库生成的任意实体绘制到场景中并返回绘制的对象:来自 OCCT、JSCAD 和 Manifold 的内核形状、点、直线、折线、曲线、网格、标签和节点。
选项与实体相匹配,未给出时使用默认值;将上一次的结果传回更新槽可就地重绘。
绘制该对象所产生的结果:几何体对应场景对象,标签对应一个或多个标签,节点对应坐标轴三元组;空列表返回 undefined
const box = await bitbybit.occt.shapes.solid.createBox({ width: 10, length: 10, height: 10, center: [0, 0, 0] });
const options = bitbybit.draw.optionsOcctShapeSimple({ precision: 0.01, drawFaces: true, faceColour: "#ff0000", drawEdges: true, edgeColour: "#ffffff", edgeWidth: 2, drawTwoSided: true, backFaceColour: "#0000ff", backFaceOpacity: 1 });
const drawn = await bitbybit.draw.drawAnyAsync({ entity: box, options });
像 drawAny 一样绘制不需要内核处理的实体,但不返回绘制的对象;点、直线、折线和标签符合条件,内核形状不符合。
要绘制的对象和可选的绘制选项
立即将不需要内核处理的实体绘制到场景中并返回绘制的对象:点、直线、折线、标签和节点。
来自 OCCT、JSCAD 和 Manifold 的内核形状必须通过 drawAnyAsync,它会等待内核将其网格化。
绘制该对象所产生的结果:几何体对应场景对象,标签对应一个或多个标签,节点对应坐标轴三元组;空列表返回 undefined
const options = bitbybit.draw.optionsSimple({ colours: "#00ff00", size: 0.5, opacity: 1, updatable: false, hidden: false, drawTwoSided: true, backFaceColour: "#0000ff", backFaceOpacity: 1, colorMapStrategy: Bit.Inputs.Base.colorMapStrategyEnum.lastColorRemainder, arrowSize: 0, arrowAngle: 15 });
const drawn = bitbybit.draw.drawAny({ entity: [[0, 0, 0], [5, 5, 5], [10, 0, 0]], options });
像 drawGridMesh 一样在地平面上绘制网格,但不返回该网格。
网格的尺寸、线间距、颜色和不透明度
在地平面(经过原点的 XZ 平面)上绘制网格,以提供比例和方向感;默认每第十条线画得更粗。
网格的尺寸、线间距、颜色和不透明度
网格地面网格
从 URL 创建图像纹理,用于 createPBRMaterial 的纹理槽,其平铺、偏移、旋转和过滤在每个渲染器中含义相同。
图像 URL 以及平铺、偏移、旋转、翻转和采样选项
引擎的纹理
根据在每个渲染器中含义相同的设置创建基于物理的材质:基础颜色、金属度和粗糙度、不透明度、自发光、纹理槽以及透明和面向选项;将其放入绘制选项的 faceMaterial。
名称、颜色、金属度和粗糙度值、不透明度、纹理和渲染选项
引擎的材质
const material = bitbybit.draw.createPBRMaterial({ name: "steel", baseColor: "#c0c0c0", metallic: 1, roughness: 0.4, alpha: 1, emissiveColor: "#000000", emissiveIntensity: 1, zOffset: 0, zOffsetUnits: 0, alphaMode: Bit.Inputs.Draw.alphaModeEnum.opaque, alphaCutoff: 0.5, doubleSided: false, wireframe: false, unlit: false });
const options = bitbybit.draw.optionsOcctShapeMaterial({ precision: 0.01, faceMaterial: material, drawEdges: true, edgeColour: "#ffffff", edgeWidth: 2 });
为点、直线、折线、曲线、曲面和 JSCAD 网格构建绘制选项:颜色、大小、不透明度、双面渲染和直线上的箭头,省略的部分使用默认值。
作为起点的选项
绘制选项
const options = bitbybit.draw.optionsSimple({ colours: "#ff0000", size: 2, opacity: 1, updatable: false, hidden: false, drawTwoSided: true, backFaceColour: "#0000ff", backFaceOpacity: 1, colorMapStrategy: Bit.Inputs.Base.colorMapStrategyEnum.lastColorRemainder, arrowSize: 0, arrowAngle: 15 });
为 OCCT 形状构建完整的绘制选项:网格化精度、面、边和顶点的颜色和大小、索引标签、边上的箭头、双面渲染和三角化缓存,省略的部分使用默认值。
作为起点的选项
绘制选项
const options = bitbybit.draw.optionsOcctShape({ faceOpacity: 1, edgeOpacity: 1, edgeColour: "#ffffff", faceColour: "#ff0000", edgeWidth: 2, drawEdges: true, drawFaces: true, drawVertices: false, vertexColour: "#ff00ff", vertexSize: 0.03, precision: 0.01, drawEdgeIndexes: false, edgeIndexHeight: 0.06, edgeIndexColour: "#ff00ff", drawFaceIndexes: false, faceIndexHeight: 0.06, faceIndexColour: "#0000ff", drawTwoSided: true, backFaceColour: "#0000ff", backFaceOpacity: 1, edgeArrowSize: 0, edgeArrowAngle: 15, keepMeshData: false, allowQualityDecrease: true, forceFaceDeflection: false });
为 OCCT 形状构建最常用的绘制选项,即精度、面和边的颜色以及双面渲染,省略的部分使用默认值。
作为起点的选项
绘制选项
为面使用完整引擎材质(如 createPBRMaterial 所创建)的 OCCT 形状构建绘制选项,外加精度和边的样式。
作为起点的选项
绘制选项
const material = bitbybit.draw.createPBRMaterial({ name: "steel", baseColor: "#c0c0c0", metallic: 1, roughness: 0.4, alpha: 1, emissiveColor: "#000000", emissiveIntensity: 1, zOffset: 0, zOffsetUnits: 0, alphaMode: Bit.Inputs.Draw.alphaModeEnum.opaque, alphaCutoff: 0.5, doubleSided: false, wireframe: false, unlit: false });
const options = bitbybit.draw.optionsOcctShapeMaterial({ precision: 0.01, faceMaterial: material, drawEdges: true, edgeColour: "#ffffff", edgeWidth: 2 });
为 Manifold 实体和横截面构建绘制选项:面的颜色或完整引擎材质、横截面的线条样式、法线和双面渲染。
作为起点的选项
绘制选项
const options = bitbybit.draw.optionsManifoldShapeMaterial({ faceOpacity: 1, faceColour: "#ff0000", faceMaterial: material, crossSectionColour: "#ff00ff", crossSectionWidth: 2, crossSectionOpacity: 1, computeNormals: false, drawTwoSided: true, backFaceColour: "#0000ff", backFaceOpacity: 1 });
const drawn = await bitbybit.draw.drawAnyAsync({ entity: solid, options });
为变换节点构建绘制选项,节点被绘制为给定长度的三条彩色坐标轴线。
作为起点的选项
绘制选项
将任何对象绘制到场景中:内核形状、点、直线、折线、曲线、网格和标签都通过
drawAnyAsync绘制,它会为对象选择合适的渲染器并返回绘制后的对象。options方法为每种对象构建带默认值的绘制选项,createPBRMaterial和createTexture为面槽位创建材质,已绘制的对象可以通过传回来在原位重绘。