Bitbybit Docs
    Preparing search index...

    Class OCCTAssemblyManager

    Construir e alterar documentos de montagem: descreva peças, nós de montagem e nós de instância um objeto de cada vez, combine-os numa estrutura, e construa um documento a partir dela; ou carregue um ficheiro STEP para um documento. Depois recolora e renomeie etiquetas, atualize ou remova peças, e exporte para STEP ou glTF. Um documento é um identificador em memória que fica vivo até ser eliminado, por isso construa uma vez e consulte ou exporte tantas vezes quantas forem necessárias.

    Index

    Constructors

    Methods

    • Descreve uma peça tirada de outro documento, tipicamente um carregado de STEP, de modo que toda a sua árvore de rótulos com submontagens, nomes e cores é copiada para a nova montagem.

      sourceDocumentIndex aponta para a lista sourceDocuments dada a buildAssemblyDocument, e sourceLabel escolhe uma subárvore em vez do documento inteiro. Os nós de instância colocam-na por partId como qualquer peça.

      Parameters

      • inputs: CreateImportedPartDto

        O id da peça, o índice do documento de origem, e uma etiqueta de origem, um nome e uma cor opcionais

      Returns Promise<AssemblyLoadedPartDef>

      A definição da peça importada, pronta para 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

    • Descreve uma peça para uma estrutura de montagem: um id pelo qual referenciá-la, a sua forma, um nome e uma cor opcional.

      Ainda nada é construído; a peça só se torna real quando uma estrutura que a contém passa por buildAssemblyDocument. Os nós de instância colocam a peça pelo seu id, tantas vezes quantas forem precisas.

      Parameters

      Returns Promise<AssemblyPartDef<TopoDSShapePointer>>

      A definição da peça, pronta para 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 } });
    • Descreve um nó de montagem, um contentor que agrupa instâncias e outras montagens na hierarquia.

      parentId nomeia a montagem em que se encontra; omita para uma raiz. Uma matriz opcional coloca o grupo inteiro.

      Parameters

      • inputs: CreateAssemblyNodeDto

        O id do nó, o seu nome, um id de pai opcional, uma cor opcional e uma matriz de colocação opcional

      Returns Promise<AssemblyNodeDef>

      A definição do nó, pronta para 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" });
    • Descreve um nó de instância, uma colocação de uma peça: que peça por partId, para onde vai e sob que montagem.

      translation move-a, rotation roda-a por ângulos de Euler em graus em torno de X, Y e Z, scale dimensiona-a uniformemente; uma matrix pode substituir os três. A mesma peça pode ser colocada por muitas instâncias.

      Parameters

      Returns Promise<AssemblyNodeDef>

      A definição do nó, pronta para 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] });
    • Descreve uma alteração a uma peça que já existe num documento: uma nova forma, um novo nome ou uma nova cor, ou qualquer mistura deles, endereçada pelo rótulo da peça.

      Reúna as atualizações em combineStructure sob partUpdates e passe a estrutura a buildAssemblyDocument com o documento existente.

      Parameters

      Returns Promise<AssemblyPartUpdateDef<TopoDSShapePointer>>

      A definição da atualização, pronta para 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 });
    • Reúne peças, nós e, para atualizações, remoções, atualizações de peças e peças importadas numa só definição de estrutura, o último passo antes de buildAssemblyDocument.

      clearDocument falso mantém o que um documento existente já contém quando a estrutura é aplicada a ele.

      Parameters

      Returns Promise<AssemblyStructureDef<TopoDSShapePointer>>

      A estrutura, pronta a construir

      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 });
    • Constrói um documento de montagem a partir de uma estrutura, ou aplica a estrutura a um documento existente.

      Com existingDocument os rótulos em removals são primeiro retirados, as partUpdates aplicadas, e depois as novas peças e nós adicionados; uma estrutura sem nenhum dos dois limpa o documento a menos que clearDocument seja falso. sourceDocuments fornece os documentos de que as peças importadas copiam. O documento fica em memória até ser eliminado.

      Parameters

      Returns Promise<TDocStdDocumentPointer>

      O identificador do documento, novo ou atualizado

      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 });
    • Carrega um ficheiro STEP para um novo documento de montagem, com as suas peças, submontagens, nomes, cores e colocações.

      stepData é o ficheiro como texto ou binário; STEP-Z comprimido com gzip também é aceite. Um ficheiro que não possa ser carregado lança um erro. Uma instância que o ficheiro deixa sem nome, como faz o SolidWorks, recebe o nome da peça que coloca, numerado quando essa peça se repete ao seu lado.

      Parameters

      Returns Promise<TDocStdDocumentPointer>

      O identificador do documento

      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

    • Escreve um documento de montagem como um ficheiro STEP com a sua hierarquia, nomes e cores, e devolve os bytes do ficheiro.

      author e organization vão para o cabeçalho do ficheiro; compress escreve STEP-Z comprimido com gzip em vez disso. Uma falha lança um erro.

      Parameters

      Returns Promise<Uint8Array<ArrayBufferLike>>

      O ficheiro STEP como bytes

      const step = await bitbybit.occt.assembly.manager.exportDocumentToStep({ document: doc, fileName: "assembly.step", author: "Bitbybit user", organization: "Bitbybit", compress: false, tryDownload: false });
      
    • Triangula um documento de montagem e escreve-o como um glTF binário (GLB) com a hierarquia, nomes e cores mantidos como nós e materiais glTF.

      meshDeflection e meshAngle definem quão finamente as superfícies curvas são trianguladas; mergeFaces une as faces de uma peça numa só malha. Uma falha lança um erro.

      Parameters

      Returns Promise<Uint8Array<ArrayBufferLike>>

      O ficheiro GLB como bytes

      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 });
      
    • Escreve um documento de montagem como um glTF binário (GLB) como exportDocumentToGltf e comprime a geometria com Draco, o que torna o ficheiro muito mais pequeno à custa de um carregador com suporte Draco.

      As definições Draco definem o nível de compressão e quantos bits as posições, normais, coordenadas de textura e cores mantêm.

      Parameters

      Returns Promise<Uint8Array<ArrayBufferLike>>

      O ficheiro GLB como bytes

      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

    • Elimina um documento de montagem e liberta a memória que ocupa.

      Um documento construído com buildAssemblyDocument ou carregado com loadStepToDoc fica em memória até isto ser chamado, por isso elimine-o assim que as suas formas e exportações tiverem sido lidas.

      Parameters

      Returns Promise<void>

      Nada; o identificador do documento deixa de ser válido depois disso

      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

    • Colore um rótulo de um documento, uma peça, instância ou montagem, com vermelho, verde, azul e alfa de 0 a 1.

      A cor é mantida quando o documento é exportado para STEP ou glTF.

      Parameters

      Returns Promise<boolean>

      True quando a cor foi definida

      const done = await bitbybit.occt.assembly.manager.setDocLabelColor({ document: doc, label: "0:1:1:1", r: 1, g: 0, b: 0, a: 1 });
      
    • Renomeia um rótulo de um documento, uma peça, instância ou montagem.

      Parameters

      Returns Promise<boolean>

      True quando o nome foi definido

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