Bitbybit Docs
    Preparing search index...

    Class OCCTAssemblyManager

    Построение и изменение документов сборок: опишите детали, узлы сборок и узлы экземпляров по одному объекту за раз, объедините их в структуру и постройте из нее документ; или загрузите файл STEP в документ. Затем перекрашивайте и переименовывайте метки, обновляйте или удаляйте детали и экспортируйте в STEP или glTF. Документ - это дескриптор в памяти, который живет, пока не будет удален, поэтому постройте один раз и запрашивайте или экспортируйте столько раз, сколько нужно.

    Index

    Constructors

    Methods

    • Описывает деталь, взятую из другого документа, обычно загруженного из STEP, так что все ее дерево меток с подсборками, именами и цветами копируется в новую сборку.

      sourceDocumentIndex указывает в список sourceDocuments, переданный в buildAssemblyDocument, а sourceLabel выбирает поддерево вместо всего документа. Узлы экземпляров размещают ее по partId, как любую деталь.

      Parameters

      • inputs: CreateImportedPartDto

        Id детали, индекс исходного документа, необязательные исходная метка, имя и цвет

      Returns Promise<AssemblyLoadedPartDef>

      Определение импортированной детали, готовое для combineStructure

      const chairDoc = await bitbybit.occt.assembly.manager.loadStepToDoc({ stepData });
      const chair = await bitbybit.occt.assembly.manager.createImportedPart({ id: "chair", sourceDocumentIndex: 0, name: "Chair" });
      const c1 = await bitbybit.occt.assembly.manager.createInstanceNode({ id: "c1", partId: "chair", name: "Chair 1", translation: [0, 0, 0] });
      const c2 = await bitbybit.occt.assembly.manager.createInstanceNode({ id: "c2", partId: "chair", name: "Chair 2", translation: [500, 0, 0] });
      const structure = await bitbybit.occt.assembly.manager.combineStructure({ parts: [], nodes: [c1, c2], loadedParts: [chair], clearDocument: false });
      const doc = await bitbybit.occt.assembly.manager.buildAssemblyDocument({ structure, sourceDocuments: [chairDoc] });

    assembly

    • Описывает деталь для структуры сборки: id для ссылки на нее, ее форму, имя и необязательный цвет.

      Пока ничего не строится; деталь становится настоящей только когда структура, содержащая ее, проходит через buildAssemblyDocument. Узлы экземпляров размещают деталь по ее id столько раз, сколько нужно.

      Parameters

      Returns Promise<AssemblyPartDef<TopoDSShapePointer>>

      Определение детали, готовое для combineStructure

      const box = await bitbybit.occt.shapes.solid.createBox({ width: 10, length: 10, height: 10, center: [0, 0, 0] });
      const part = await bitbybit.occt.assembly.manager.createPart({ id: "box", shape: box, name: "Box", colorRgba: { r: 1, g: 0, b: 0, a: 1 } });
    • Описывает узел сборки, контейнер, группирующий экземпляры и другие сборки в иерархии.

      parentId называет сборку, в которой он находится; опустите для корня. Необязательная матрица размещает всю группу.

      Parameters

      • inputs: CreateAssemblyNodeDto

        Id узла, его имя, необязательный id родителя, необязательный цвет и необязательная матрица размещения

      Returns Promise<AssemblyNodeDef>

      Определение узла, готовое для combineStructure

      const root = await bitbybit.occt.assembly.manager.createAssemblyNode({ id: "root", name: "Root Assembly" });
      const sub = await bitbybit.occt.assembly.manager.createAssemblyNode({ id: "sub", name: "Sub Assembly", parentId: "root" });
    • Описывает узел экземпляра, одно размещение детали: какая деталь по partId, куда она попадает и под какой сборкой.

      translation перемещает ее, rotation поворачивает на углы Эйлера в градусах вокруг X, Y и Z, scale масштабирует равномерно; matrix может заменить все три. Одна и та же деталь может быть размещена многими экземплярами.

      Parameters

      • inputs: CreateInstanceNodeDto

        Id узла, id детали, имя, необязательный id родителя и размещение

      Returns Promise<AssemblyNodeDef>

      Определение узла, готовое для combineStructure

      const first = await bitbybit.occt.assembly.manager.createInstanceNode({ id: "box1", partId: "box", name: "Box 1" });
      const second = await bitbybit.occt.assembly.manager.createInstanceNode({ id: "box2", partId: "box", name: "Box 2", translation: [20, 0, 0], rotation: [0, 0, 45] });
    • Описывает изменение детали, уже существующей в документе: новую форму, новое имя или новый цвет, или любое их сочетание, адресованное по метке детали.

      Соберите обновления в combineStructure под partUpdates и передайте структуру в buildAssemblyDocument вместе с существующим документом.

      Parameters

      Returns Promise<AssemblyPartUpdateDef<TopoDSShapePointer>>

      Определение обновления, готовое для combineStructure

      const parts = await bitbybit.occt.assembly.query.getDocumentParts({ document: doc });
      const bigger = await bitbybit.occt.shapes.solid.createBox({ width: 20, length: 20, height: 20, center: [0, 0, 0] });
      const update = await bitbybit.occt.assembly.manager.createPartUpdate({ label: parts[0].label, shape: bigger, name: "Bigger Box" });
      const structure = await bitbybit.occt.assembly.manager.combineStructure({ parts: [], nodes: [], partUpdates: [update], clearDocument: false });
      await bitbybit.occt.assembly.manager.buildAssemblyDocument({ structure, existingDocument: doc });
    • Собирает детали, узлы и, для обновлений, удаления, обновления деталей и импортированные детали в одно определение структуры, последний шаг перед buildAssemblyDocument.

      clearDocument равный false сохраняет то, что существующий документ уже содержит, когда структура к нему применяется.

      Parameters

      • inputs: CombineAssemblyStructureDto<TopoDSShapePointer>

        Детали, узлы и необязательные удаления, обновления деталей, импортированные детали и флаг очистки

      Returns Promise<AssemblyStructureDef<TopoDSShapePointer>>

      Структура, готовая к построению

      const structure = await bitbybit.occt.assembly.manager.combineStructure({ parts: [part], nodes: [root, first, second], clearDocument: false });
      const doc = await bitbybit.occt.assembly.manager.buildAssemblyDocument({ structure });
    • Строит документ сборки из структуры или применяет структуру к существующему документу.

      При existingDocument сначала отбрасываются метки из removals, применяются partUpdates, затем добавляются новые детали и узлы; структура без того и другого очищает документ, если clearDocument не равен false. sourceDocuments поставляет документы, из которых копируют импортированные детали. Документ остается в памяти до удаления.

      Parameters

      Returns Promise<TDocStdDocumentPointer>

      Дескриптор документа, нового или обновленного

      Error if assembly building fails

      const structure = await bitbybit.occt.assembly.manager.combineStructure({ parts: [part], nodes: [root, first], clearDocument: false });
      const doc = await bitbybit.occt.assembly.manager.buildAssemblyDocument({ structure });
      const glb = await bitbybit.occt.assembly.manager.exportDocumentToGltf({ document: doc, meshDeflection: 0.1, meshAngle: 0.5, internalVerticesMode: false, controlSurfaceDeflection: false, mergeFaces: false, forceUVExport: false, fileName: "assembly.glb", tryDownload: false });
    • Загружает файл STEP в новый документ сборки, с его деталями, подсборками, именами, цветами и размещениями.

      stepData - файл как текст или двоичные данные; сжатый gzip STEP-Z тоже принимается. Файл, который нельзя загрузить, выбрасывает ошибку. Экземпляр, который файл оставляет без имени, как делает SolidWorks, получает имя детали, которую он размещает, с номером, когда та же деталь повторяется рядом с ним.

      Parameters

      Returns Promise<TDocStdDocumentPointer>

      Дескриптор документа

      Error if STEP loading fails

      const doc = await bitbybit.occt.assembly.manager.loadStepToDoc({ stepData: stepText });
      const parts = await bitbybit.occt.assembly.query.getDocumentParts({ document: doc });

    export

    • Записывает документ сборки как файл STEP с его иерархией, именами и цветами и возвращает байты файла.

      author и organization попадают в заголовок файла; compress вместо этого записывает сжатый gzip STEP-Z. Сбой выбрасывает ошибку.

      Parameters

      Returns Promise<Uint8Array<ArrayBufferLike>>

      Файл STEP как байты

      const step = await bitbybit.occt.assembly.manager.exportDocumentToStep({ document: doc, fileName: "assembly.step", author: "Bitbybit user", organization: "Bitbybit", compress: false, tryDownload: false });
      
    • Триангулирует документ сборки и записывает его как двоичный glTF (GLB) с иерархией, именами и цветами, сохраненными как узлы и материалы glTF.

      meshDeflection и meshAngle задают, насколько мелко триангулируются изогнутые поверхности; mergeFaces соединяет грани детали в один меш. Сбой выбрасывает ошибку.

      Parameters

      Returns Promise<Uint8Array<ArrayBufferLike>>

      Файл GLB как байты

      const glb = await bitbybit.occt.assembly.manager.exportDocumentToGltf({ document: doc, meshDeflection: 0.1, meshAngle: 0.5, internalVerticesMode: false, controlSurfaceDeflection: false, mergeFaces: false, forceUVExport: false, fileName: "assembly.glb", tryDownload: false });
      
    • Записывает документ сборки как двоичный glTF (GLB), как exportDocumentToGltf, и сжимает геометрию с помощью Draco, что делает файл намного меньше ценой необходимости загрузчика с поддержкой Draco.

      Настройки Draco задают уровень сжатия и сколько бит сохраняют позиции, нормали, текстурные координаты и цвета.

      Parameters

      Returns Promise<Uint8Array<ArrayBufferLike>>

      Файл GLB как байты

      const options = new Bit.Inputs.OCCT.ExportDocumentToGltfWithDracoDto<Bit.Inputs.OCCT.TDocStdDocumentPointer>();
      options.document = doc;
      options.meshDeflection = 0.1;
      options.dracoCompressionLevel = 7;
      const glb = await bitbybit.occt.assembly.manager.exportDocumentToGltfWithDraco(options);

    lifecycle

    • Удаляет документ сборки и освобождает занимаемую им память.

      Документ, построенный через buildAssemblyDocument или загруженный через loadStepToDoc, остается в памяти, пока это не вызвано, так что удалите его, как только его формы и экспорты прочитаны.

      Parameters

      Returns Promise<void>

      Ничего; после этого дескриптор документа недействителен

      const doc = await bitbybit.occt.assembly.manager.buildAssemblyDocument({ structure });
      const glb = await bitbybit.occt.assembly.manager.exportDocumentToGltf({ document: doc, meshDeflection: 0.1, meshAngle: 0.5, internalVerticesMode: false, controlSurfaceDeflection: false, mergeFaces: false, forceUVExport: false, fileName: "assembly.glb", tryDownload: false });
      await bitbybit.occt.assembly.manager.deleteDocument({ document: doc });

    modify

    • Окрашивает метку документа, деталь, экземпляр или сборку, красным, зеленым, синим и альфа от 0 до 1.

      Цвет сохраняется при экспорте документа в STEP или glTF.

      Parameters

      Returns Promise<boolean>

      true, если цвет был задан

      const done = await bitbybit.occt.assembly.manager.setDocLabelColor({ document: doc, label: "0:1:1:1", r: 1, g: 0, b: 0, a: 1 });
      
    • Переименовывает метку документа, деталь, экземпляр или сборку.

      Parameters

      Returns Promise<boolean>

      true, если имя было задано

      const done = await bitbybit.occt.assembly.manager.setDocLabelName({ document: doc, label: "0:1:1:1", name: "Left bracket" });