Bitbybit Docs
    Preparing search index...

    Class OCCTIO

    使用 OCCT 读写 CAD 文件:内核上 io 提供的所有功能,外加接受 STEP 或 IGES 文件(File 对象或其文本)并返回形状的加载器。按惯例文件为 Z 轴向上,因此除非 adjustZtoY 设为 false,否则加载的形状会被转为本库的 Y 轴向上。

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    occWorkerManager: OCCTWorkerManager

    assembly

    • 将 STEP 文件转换为二进制 glTF(GLB),装配体树保留为 glTF 节点,连同零件名称、颜色、材质和放置信息。

      stepData 是文本、ArrayBuffer 或 Uint8Array 形式的文件。网格设置决定曲面三角化的精细程度:meshPrecision 是偏差,meshAngle 是角度偏差。Z 向上变为 glTF 的 Y 向上。失败时抛出错误。

      Parameters

      Returns Promise<Uint8Array<ArrayBufferLike>>

      以字节表示的 GLB 文件

      const glb = await bitbybit.occt.io.convertStepToGltf({ stepData: stepText, meshPrecision: 0.005, meshAngle: 0.5, meshRelative: true, internalVerticesMode: false, controlSurfaceDeflection: false });
      
    • convertStepToGltf 一样将 STEP 文件转换为二进制 glTF(GLB),并暴露所有选项。

      读取标志选择从文件中取什么(颜色、名称、材质、图层、属性),网格设置决定三角化的精细程度,导出设置决定 glTF 如何写出(合并面、16 位索引、命名、缩放)。关闭你不需要的部分。

      Parameters

      Returns Promise<Uint8Array<ArrayBufferLike>>

      以字节表示的 GLB 文件

      const options = new Bit.Inputs.OCCT.ConvertStepToGltfAdvancedDto();
      options.stepData = stepText;
      options.readColors = true;
      options.readNames = true;
      options.meshDeflection = 0.005;
      options.mergeFaces = true;
      options.adjustZtoY = true;
      const glb = await bitbybit.occt.io.convertStepToGltfAdvanced(options);
    • convertStepToGltf 一样将 STEP 文件转换为二进制 glTF(GLB),并用 Draco 压缩几何,这使文件小得多,代价是需要支持 Draco 的加载器。

      Draco 设置决定压缩级别以及位置、法线、纹理坐标和颜色各保留多少位;位数越少文件越小,精度也越低。

      Parameters

      Returns Promise<Uint8Array<ArrayBufferLike>>

      以字节表示的 GLB 文件

      const options = new Bit.Inputs.OCCT.ConvertStepToGltfWithDracoDto();
      options.stepData = stepText;
      options.meshPrecision = 0.005;
      options.dracoCompressionLevel = 7;
      options.dracoQuantizePositionBits = 14;
      const glb = await bitbybit.occt.io.convertStepToGltfWithDraco(options);
    • convertStepToGltfAdvanced 一样将 STEP 文件转换为二进制 glTF(GLB),暴露所有读取、网格化和写出选项,并用 Draco 压缩几何。

      Draco 设置决定压缩级别以及位置、法线、纹理坐标和颜色各保留多少位;位数越少文件越小,精度也越低。

      Parameters

      Returns Promise<Uint8Array<ArrayBufferLike>>

      以字节表示的 GLB 文件

      const options = new Bit.Inputs.OCCT.ConvertStepToGltfAdvancedWithDracoDto();
      options.stepData = stepText;
      options.readColors = true;
      options.meshDeflection = 0.005;
      options.dracoCompressionLevel = 7;
      const glb = await bitbybit.occt.io.convertStepToGltfAdvancedWithDraco(options);
    • 读取 STEP 文件的装配体结构而不构建几何:每个零件和子装配体作为一个节点,带有其 id、名称、是否为装配体、其可见性、颜色和放置矩阵。

      节点按深度优先顺序排列,因此子节点紧随其父节点。无法解析的文件在结果中报告其错误。

      Parameters

      Returns Promise<AssemblyJsonResult>

      节点列表、格式版本和任何错误

      const tree = await bitbybit.occt.io.parseStepToJson({ stepData: stepText });
      console.log(tree.nodes.map(n => n.name));

    dxf

    • 将形状的线框转成 DXF 路径记录,这是 2D DXF 导出的第一步。

      形状必须平放在 XZ 地平面上,因为 DXF 图纸是二维的。偏差设置决定弯曲边被跟随的紧密程度。用 dxfPathsWithLayer 为路径指定图层,并用 dxfCreate 写出文件。

      Parameters

      Returns Promise<DxfPathDto[]>

      DXF 路径

      const paths = await bitbybit.occt.io.shapeToDxfPaths({
      shape: flatOutline,
      angularDeflection: 0.1,
      curvatureDeflection: 0.1,
      minimumOfPoints: 2,
      uTolerance: 1e-9,
      minimumLength: 1e-7,
      });
    • 将 DXF 路径放在带颜色的命名图层上,构成 DXF 图纸的一个部分。

      一张图纸可以包含多个部分,各有自己的图层和颜色;dxfCreate 将它们写入一个文件。

      Parameters

      Returns Promise<DxfPathsPartDto>

      作为一个带图层部件的路径

      const part = await bitbybit.occt.io.dxfPathsWithLayer({ paths, layer: "cut", color: "#ff0000" });
      
    • 将 DXF 部分写入一个 DXF 文件并返回其文本。

      colorFormat 选择 AutoCAD 的索引颜色或真彩色,acadVersion 选择 DXF 版本:AC1009 是 R12,可读性最广,AC1015 是 2000。fileNametryDownload 只在可以启动浏览器下载的地方才有意义。

      Parameters

      Returns Promise<string>

      以文本表示的 DXF 文件

      const dxf = await bitbybit.occt.io.dxfCreate({
      pathsParts: [part],
      colorFormat: Bit.Inputs.OCCT.dxfColorFormatEnum.aci,
      acadVersion: Bit.Inputs.OCCT.dxfAcadVersionEnum.AC1009,
      fileName: "drawing.dxf",
      tryDownload: false,
      });

    io

    • 将形状写为 STEP(精确 CAD 几何的标准交换格式),并启动该文件的浏览器下载。

      adjustYtoZ 为 true 时,形状被转动使本库的 Y 向上变为 STEP 的 Z 向上;fromRightHanded 跳过该交换原本包含的镜像。fileName 为下载命名,tryDownload 为 false 时跳过下载。saveShapeSTEPAndReturn 改为给出文件的文本。

      Parameters

      Returns Promise<void>

      无;文件就绪后开始下载

      await bitbybit.occt.io.saveShapeSTEP({ shape: box, fileName: "box.step", adjustYtoZ: true, tryDownload: true });
      
    • 将形状写为 STEP(精确 CAD 几何的标准交换格式),并返回文件的文本。

      adjustYtoZ 为 true 时,形状被转动使本库的 Y 向上变为 STEP 的 Z 向上;fromRightHanded 跳过该交换原本包含的镜像。fileNametryDownload 只在可以启动浏览器下载的地方才有意义。

      Parameters

      Returns Promise<string>

      以文本表示的 STEP 文件

      const step = await bitbybit.occt.io.saveShapeSTEPAndReturn({ shape: box, fileName: "box.step", adjustYtoZ: true, tryDownload: false });
      
    • 将形状三角化,写为 STL(3D 打印机读取的网格格式),并启动该文件的浏览器下载。

      precision 是以模型单位表示的网格化容差;值越小越紧密地贴合曲面,文件也越大。adjustYtoZ 将 Y 向上变为 Z 向上。fileName 为下载命名,tryDownload 为 false 时跳过下载。saveShapeStlAndReturn 改为给出文本。

      Parameters

      Returns Promise<void>

      无;文件就绪后开始下载

      await bitbybit.occt.io.saveShapeStl({ shape: box, fileName: "box.stl", precision: 0.01, adjustYtoZ: true, tryDownload: true });
      
    • 将形状三角化并写为 STL(3D 打印机和切片软件读取的网格格式),返回文件的文本。

      precision 是以模型单位表示的网格化容差;值越小越紧密地贴合曲面,文件也越大。adjustYtoZ 转动形状使 Y 向上变为 Z 向上。fileNametryDownload 只在可以启动下载的地方才有意义。

      Parameters

      Returns Promise<string>

      以文本表示的 STL 文件

      const stl = await bitbybit.occt.io.saveShapeStlAndReturn({ shape: box, fileName: "box.stl", precision: 0.01, adjustYtoZ: true, tryDownload: false });