Bitbybit Docs
    Bereite Suchindex vor...

    Klasse OCCTAssemblyManager

    Bauen und Ändern von Baugruppendokumenten: beschreiben Sie Teile, Baugruppenknoten und Instanzknoten Objekt für Objekt, kombinieren Sie sie zu einer Struktur und bauen Sie daraus ein Dokument; oder laden Sie eine STEP-Datei in ein Dokument. Dann färben und benennen Sie Labels um, aktualisieren oder entfernen Teile und exportieren nach STEP oder glTF. Ein Dokument ist ein Handle im Speicher, das lebt, bis es gelöscht wird, also bauen Sie einmal und fragen ab oder exportieren so oft wie nötig.

    Index

    Konstruktoren

    Methoden

    • Beschreibt ein Teil, das aus einem anderen Dokument genommen wird, typischerweise einem aus STEP geladenen, sodass sein ganzer Label-Baum mit Unterbaugruppen, Namen und Farben in die neue Baugruppe kopiert wird.

      sourceDocumentIndex zeigt in die Liste sourceDocuments, die an buildAssemblyDocument übergeben wird, und sourceLabel wählt einen Teilbaum statt des ganzen Dokuments. Instanzknoten platzieren es über partId wie jedes Teil.

      Parameter

      • inputs: CreateImportedPartDto

        Die Teile-Id, der Index des Quelldokuments sowie ein optionales Quelllabel, ein optionaler Name und eine optionale Farbe

      Rückgabewert Promise<AssemblyLoadedPartDef>

      Die Definition des importierten Teils, bereit für 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

    • Beschreibt ein Teil für eine Baugruppenstruktur: eine Id, über die es referenziert wird, seine Form, einen Namen und eine optionale Farbe.

      Noch wird nichts gebaut; das Teil wird erst real, wenn eine Struktur, die es enthält, durch buildAssemblyDocument geht. Instanzknoten platzieren das Teil über seine Id, so oft wie nötig.

      Parameter

      Rückgabewert Promise<AssemblyPartDef<TopoDSShapePointer>>

      Die Teiledefinition, bereit für 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 } });
    • Beschreibt einen Baugruppenknoten, einen Container, der Instanzen und andere Baugruppen in der Hierarchie gruppiert.

      parentId nennt die Baugruppe, in der er sitzt; weglassen für eine Wurzel. Eine optionale Matrix platziert die ganze Gruppe.

      Parameter

      • inputs: CreateAssemblyNodeDto

        Die Knoten-Id, sein Name, eine optionale Eltern-Id, eine optionale Farbe und eine optionale Platzierungsmatrix

      Rückgabewert Promise<AssemblyNodeDef>

      Die Knotendefinition, bereit für 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" });
    • Beschreibt einen Instanzknoten, eine Platzierung eines Teils: welches Teil über partId, wohin es kommt und unter welcher Baugruppe.

      translation verschiebt es, rotation dreht es um Euler-Winkel in Grad um X, Y und Z, scale bemisst es gleichmäßig; eine matrix kann alle drei ersetzen. Dasselbe Teil kann von vielen Instanzen platziert werden.

      Parameter

      • inputs: CreateInstanceNodeDto

        Die Knoten-Id, die Teile-Id, der Name, eine optionale Eltern-Id und die Platzierung

      Rückgabewert Promise<AssemblyNodeDef>

      Die Knotendefinition, bereit für 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] });
    • Beschreibt eine Änderung an einem Teil, das bereits in einem Dokument existiert: eine neue Form, ein neuer Name oder eine neue Farbe, oder eine beliebige Mischung davon, adressiert über das Label des Teils.

      Sammeln Sie die Aktualisierungen in combineStructure unter partUpdates und übergeben Sie die Struktur an buildAssemblyDocument mit dem vorhandenen Dokument.

      Parameter

      Rückgabewert Promise<AssemblyPartUpdateDef<TopoDSShapePointer>>

      Die Aktualisierungsdefinition, bereit für 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 });
    • Sammelt Teile, Knoten und, für Aktualisierungen, Entfernungen, Teilaktualisierungen und importierte Teile in einer Strukturdefinition, dem letzten Schritt vor buildAssemblyDocument.

      clearDocument false behält, was ein vorhandenes Dokument bereits enthält, wenn die Struktur darauf angewendet wird.

      Parameter

      Rückgabewert Promise<AssemblyStructureDef<TopoDSShapePointer>>

      Die Struktur, bereit zum Bauen

      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 });
    • Baut ein Baugruppendokument aus einer Struktur oder wendet die Struktur auf ein vorhandenes Dokument an.

      Mit existingDocument werden zuerst die Labels in removals entfernt, die partUpdates angewendet, dann die neuen Teile und Knoten hinzugefügt; eine Struktur ohne beides leert das Dokument, sofern clearDocument nicht false ist. sourceDocuments liefert die Dokumente, aus denen importierte Teile kopieren. Das Dokument bleibt im Speicher, bis es gelöscht wird.

      Parameter

      Rückgabewert Promise<TDocStdDocumentPointer>

      Das Dokument-Handle, neu oder aktualisiert

      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 });
    • Lädt eine STEP-Datei in ein neues Baugruppendokument, mit ihren Teilen, Unterbaugruppen, Namen, Farben und Platzierungen.

      stepData ist die Datei als Text oder binär; gzip-komprimiertes STEP-Z wird ebenfalls akzeptiert. Eine Datei, die nicht geladen werden kann, löst einen Fehler aus. Eine Instanz, die die Datei unbenannt lässt, wie SolidWorks es tut, wird nach dem Teil benannt, das sie platziert, nummeriert, wenn dieses Teil daneben noch einmal vorkommt.

      Parameter

      Rückgabewert Promise<TDocStdDocumentPointer>

      Das Dokument-Handle

      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

    • Schreibt ein Baugruppendokument als STEP-Datei mit seiner Hierarchie, seinen Namen und Farben und gibt die Bytes der Datei zurück.

      author und organization gehen in den Dateikopf; compress schreibt stattdessen gzip-komprimiertes STEP-Z. Ein Fehlschlag löst einen Fehler aus.

      Parameter

      Rückgabewert Promise<Uint8Array<ArrayBufferLike>>

      Die STEP-Datei als Bytes

      const step = await bitbybit.occt.assembly.manager.exportDocumentToStep({ document: doc, fileName: "assembly.step", author: "Bitbybit user", organization: "Bitbybit", compress: false, tryDownload: false });
      
    • Trianguliert ein Baugruppendokument und schreibt es als binäres glTF (GLB), wobei die Hierarchie, Namen und Farben als glTF-Knoten und -Materialien erhalten bleiben.

      meshDeflection und meshAngle legen fest, wie fein gekrümmte Oberflächen trianguliert werden; mergeFaces verbindet die Flächen eines Teils zu einem Mesh. Ein Fehlschlag löst einen Fehler aus.

      Parameter

      Rückgabewert Promise<Uint8Array<ArrayBufferLike>>

      Die GLB-Datei als 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 });
      
    • Schreibt ein Baugruppendokument als binäres glTF (GLB) wie exportDocumentToGltf und komprimiert die Geometrie mit Draco, was die Datei viel kleiner macht, um den Preis eines Draco-fähigen Laders.

      Die Draco-Einstellungen legen die Kompressionsstufe fest und wie viele Bits Positionen, Normalen, Textur- koordinaten und Farben behalten.

      Parameter

      Rückgabewert Promise<Uint8Array<ArrayBufferLike>>

      Die GLB-Datei als 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

    • Löscht ein Baugruppendokument und gibt den Speicher frei, den es belegt.

      Ein mit buildAssemblyDocument gebautes oder mit loadStepToDoc geladenes Dokument bleibt im Speicher, bis dies aufgerufen wird, also löschen Sie es, sobald seine Formen und Exporte gelesen wurden.

      Parameter

      Rückgabewert Promise<void>

      Nichts; das Dokument-Handle ist danach nicht mehr gültig

      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

    • Färbt ein Label eines Dokuments, ein Teil, eine Instanz oder eine Baugruppe, mit Rot, Grün, Blau und Alpha von 0 bis 1.

      Die Farbe bleibt erhalten, wenn das Dokument nach STEP oder glTF exportiert wird.

      Parameter

      Rückgabewert Promise<boolean>

      True, wenn die Farbe gesetzt wurde

      const done = await bitbybit.occt.assembly.manager.setDocLabelColor({ document: doc, label: "0:1:1:1", r: 1, g: 0, b: 0, a: 1 });
      
    • Benennt ein Label eines Dokuments um, ein Teil, eine Instanz oder eine Baugruppe.

      Parameter

      Rückgabewert Promise<boolean>

      True, wenn der Name gesetzt wurde

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