Описывает деталь, взятую из другого документа, обычно загруженного из STEP, так что все ее дерево меток с подсборками, именами и цветами копируется в новую сборку.
sourceDocumentIndex указывает в список sourceDocuments, переданный в buildAssemblyDocument, а sourceLabel выбирает поддерево вместо всего документа. Узлы экземпляров размещают ее по partId, как любую деталь.
Id детали, индекс исходного документа, необязательные исходная метка, имя и цвет
Определение импортированной детали, готовое для 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] });
Описывает деталь для структуры сборки: id для ссылки на нее, ее форму, имя и необязательный цвет.
Пока ничего не строится; деталь становится настоящей только когда структура, содержащая ее, проходит через buildAssemblyDocument. Узлы экземпляров размещают деталь по ее id столько раз, сколько нужно.
Id детали, ее форма, ее имя и необязательный цвет
Определение детали, готовое для combineStructure
Описывает узел сборки, контейнер, группирующий экземпляры и другие сборки в иерархии.
parentId называет сборку, в которой он находится; опустите для корня. Необязательная матрица размещает всю группу.
Id узла, его имя, необязательный id родителя, необязательный цвет и необязательная матрица размещения
Определение узла, готовое для combineStructure
Описывает узел экземпляра, одно размещение детали: какая деталь по partId, куда она попадает и под какой сборкой.
translation перемещает ее, rotation поворачивает на углы Эйлера в градусах вокруг X, Y и Z, scale масштабирует равномерно; matrix может заменить все три. Одна и та же деталь может быть размещена многими экземплярами.
Id узла, id детали, имя, необязательный id родителя и размещение
Определение узла, готовое для combineStructure
Описывает изменение детали, уже существующей в документе: новую форму, новое имя или новый цвет, или любое их сочетание, адресованное по метке детали.
Соберите обновления в combineStructure под partUpdates и передайте структуру в buildAssemblyDocument вместе с существующим документом.
Метка детали и необязательные новые форма, имя и цвет
Определение обновления, готовое для 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 сохраняет то, что существующий документ уже содержит, когда структура к нему применяется.
Детали, узлы и необязательные удаления, обновления деталей, импортированные детали и флаг очистки
Структура, готовая к построению
Строит документ сборки из структуры или применяет структуру к существующему документу.
При existingDocument сначала отбрасываются метки из removals, применяются partUpdates, затем добавляются новые детали и узлы; структура без того и другого очищает документ, если clearDocument не равен false. sourceDocuments поставляет документы, из которых копируют импортированные детали. Документ остается в памяти до удаления.
Структура, необязательный документ для обновления и необязательные исходные документы
Дескриптор документа, нового или обновленного
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, получает имя детали, которую он размещает, с номером, когда та же деталь повторяется рядом с ним.
Содержимое файла STEP
Дескриптор документа
Записывает документ сборки как файл STEP с его иерархией, именами и цветами и возвращает байты файла.
author и organization попадают в заголовок файла; compress вместо этого записывает сжатый gzip STEP-Z. Сбой выбрасывает ошибку.
Документ, имя файла, данные заголовка, флаг сжатия и параметр скачивания
Файл STEP как байты
Триангулирует документ сборки и записывает его как двоичный glTF (GLB) с иерархией, именами и цветами, сохраненными как узлы и материалы glTF.
meshDeflection и meshAngle задают, насколько мелко триангулируются изогнутые поверхности; mergeFaces соединяет грани детали в один меш. Сбой выбрасывает ошибку.
Документ, настройки построения меша, флаги экспорта, имя файла и параметр скачивания
Файл GLB как байты
Записывает документ сборки как двоичный glTF (GLB), как exportDocumentToGltf, и сжимает геометрию с помощью Draco, что делает файл намного меньше ценой необходимости загрузчика с поддержкой Draco.
Настройки Draco задают уровень сжатия и сколько бит сохраняют позиции, нормали, текстурные координаты и цвета.
Документ, настройки построения меша, флаги экспорта и настройки Draco
Файл GLB как байты
Удаляет документ сборки и освобождает занимаемую им память.
Документ, построенный через buildAssemblyDocument или загруженный через loadStepToDoc, остается в памяти, пока это не вызвано, так что удалите его, как только его формы и экспорты прочитаны.
Документ, который нужно удалить
Ничего; после этого дескриптор документа недействителен
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 });
Окрашивает метку документа, деталь, экземпляр или сборку, красным, зеленым, синим и альфа от 0 до 1.
Цвет сохраняется при экспорте документа в STEP или glTF.
Документ, метка и четыре канала цвета
true, если цвет был задан
Переименовывает метку документа, деталь, экземпляр или сборку.
Документ, метка и новое имя
true, если имя было задано
Построение и изменение документов сборок: опишите детали, узлы сборок и узлы экземпляров по одному объекту за раз, объедините их в структуру и постройте из нее документ; или загрузите файл STEP в документ. Затем перекрашивайте и переименовывайте метки, обновляйте или удаляйте детали и экспортируйте в STEP или glTF. Документ - это дескриптор в памяти, который живет, пока не будет удален, поэтому постройте один раз и запрашивайте или экспортируйте столько раз, сколько нужно.