Bitbybit Docs
    Preparing search index...

    Class OCCTAssemblyManager

    Construir y cambiar documentos de ensamblaje: describe piezas, nodos de ensamblaje y nodos de instancia un objeto a la vez, combínalos en una estructura, y construye un documento a partir de ella; o carga un archivo STEP en un documento. Después recolorea y renombra etiquetas, actualiza o elimina piezas, y exporta a STEP o glTF. Un documento es un identificador en memoria que permanece vivo hasta que se elimina, así que constrúyelo una vez y consúltalo o expórtalo tantas veces como necesites.

    Index

    Constructors

    Methods

    • Describe una pieza tomada de otro documento, normalmente uno cargado desde STEP, de modo que todo su árbol de etiquetas con subensamblajes, nombres y colores se copia en el nuevo ensamblaje.

      sourceDocumentIndex apunta a la lista sourceDocuments dada a buildAssemblyDocument, y sourceLabel elige un subárbol en lugar del documento entero. Los nodos de instancia la colocan por partId como cualquier pieza.

      Parameters

      • inputs: CreateImportedPartDto

        El id de la pieza, el índice del documento de origen, y una etiqueta de origen, un nombre y un color opcionales

      Returns Promise<AssemblyLoadedPartDef>

      La definición de la pieza importada, lista 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

    • Describe una pieza para una estructura de ensamblaje: un id con el que referenciarla, su forma, un nombre y un color opcional.

      Todavía no se construye nada; la pieza solo se hace real cuando una estructura que la contiene pasa por buildAssemblyDocument. Los nodos de instancia colocan la pieza por su id, tantas veces como haga falta.

      Parameters

      Returns Promise<AssemblyPartDef<TopoDSShapePointer>>

      La definición de la pieza, lista 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 } });
    • Describe un nodo de ensamblaje, un contenedor que agrupa instancias y otros ensamblajes en la jerarquía.

      parentId nombra el ensamblaje en el que se encuentra; omítelo para una raíz. Una matriz opcional coloca todo el grupo.

      Parameters

      • inputs: CreateAssemblyNodeDto

        El id del nodo, su nombre, un id de padre opcional, un color opcional y una matriz de colocación opcional

      Returns Promise<AssemblyNodeDef>

      La definición del nodo, lista 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" });
    • Describe un nodo de instancia, una colocación de una pieza: qué pieza por partId, dónde va y bajo qué ensamblaje.

      translation la mueve, rotation la gira según ángulos de Euler en grados alrededor de X, Y y Z, scale la dimensiona uniformemente; una matrix puede sustituir a los tres. La misma pieza puede colocarse mediante muchas instancias.

      Parameters

      • inputs: CreateInstanceNodeDto

        El id del nodo, el id de la pieza, el nombre, un id de padre opcional y la colocación

      Returns Promise<AssemblyNodeDef>

      La definición del nodo, lista 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] });
    • Describe un cambio en una pieza que ya existe en un documento: una forma nueva, un nombre nuevo o un color nuevo, o cualquier mezcla de ellos, dirigido por la etiqueta de la pieza.

      Recoge las actualizaciones en combineStructure bajo partUpdates y pasa la estructura a buildAssemblyDocument con el documento existente.

      Parameters

      Returns Promise<AssemblyPartUpdateDef<TopoDSShapePointer>>

      La definición de la actualización, lista 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 piezas, nodos y, para las actualizaciones, eliminaciones, actualizaciones de piezas y piezas importadas en una definición de estructura, el último paso antes de buildAssemblyDocument.

      clearDocument en false conserva lo que un documento existente ya contiene cuando la estructura se le aplica.

      Parameters

      Returns Promise<AssemblyStructureDef<TopoDSShapePointer>>

      La estructura, lista para 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 });
    • Construye un documento de ensamblaje a partir de una estructura, o aplica la estructura a un documento existente.

      Con existingDocument primero se descartan las etiquetas de removals, se aplican las partUpdates y luego se añaden las piezas y nodos nuevos; una estructura sin ninguno de los dos vacía el documento salvo que clearDocument sea false. sourceDocuments proporciona los documentos de los que copian las piezas importadas. El documento permanece en memoria hasta que se elimina.

      Parameters

      Returns Promise<TDocStdDocumentPointer>

      El identificador del documento, nuevo o actualizado

      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 });
    • Carga un archivo STEP en un nuevo documento de ensamblaje, con sus piezas, subensamblajes, nombres, colores y colocaciones.

      stepData es el archivo como texto o binario; también se acepta STEP-Z comprimido con gzip. Un archivo que no puede cargarse lanza un error. Una instancia que el archivo deja sin nombre, como hace SolidWorks, recibe el nombre de la pieza que coloca, numerado cuando esa pieza se repite a su lado.

      Parameters

      Returns Promise<TDocStdDocumentPointer>

      El identificador del 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

    • Escribe un documento de ensamblaje como un archivo STEP con su jerarquía, nombres y colores, y devuelve los bytes del archivo.

      author y organization van a la cabecera del archivo; compress escribe STEP-Z comprimido con gzip en su lugar. Un fallo lanza un error.

      Parameters

      Returns Promise<Uint8Array<ArrayBufferLike>>

      El archivo 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 un documento de ensamblaje y lo escribe como un glTF binario (GLB) con la jerarquía, los nombres y los colores conservados como nodos y materiales glTF.

      meshDeflection y meshAngle establecen con qué finura se triangulan las superficies curvas; mergeFaces une las caras de una pieza en una sola malla. Un fallo lanza un error.

      Parameters

      Returns Promise<Uint8Array<ArrayBufferLike>>

      El archivo 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 });
      
    • Escribe un documento de ensamblaje como un glTF binario (GLB) como exportDocumentToGltf y comprime la geometría con Draco, lo que hace el archivo mucho más pequeño a costa de necesitar un cargador compatible con Draco.

      Los ajustes de Draco establecen el nivel de compresión y cuántos bits conservan las posiciones, normales, coordenadas de textura y colores.

      Parameters

      Returns Promise<Uint8Array<ArrayBufferLike>>

      El archivo 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 un documento de ensamblaje y libera la memoria que ocupa.

      Un documento construido con buildAssemblyDocument o cargado con loadStepToDoc permanece en memoria hasta que se llama a esto, así que elimínalo una vez leídas sus formas y exportaciones.

      Parameters

      Returns Promise<void>

      Nada; el identificador del documento deja de ser válido después

      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

    • Colorea una etiqueta de un documento, una pieza, instancia o ensamblaje, con rojo, verde, azul y alfa de 0 a 1.

      El color se conserva cuando el documento se exporta a STEP o glTF.

      Parameters

      Returns Promise<boolean>

      True cuando se estableció el color

      const done = await bitbybit.occt.assembly.manager.setDocLabelColor({ document: doc, label: "0:1:1:1", r: 1, g: 0, b: 0, a: 1 });
      
    • Renombra una etiqueta de un documento, una pieza, instancia o ensamblaje.

      Parameters

      Returns Promise<boolean>

      True cuando se estableció el nombre

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