Bitbybit Docs
    Preparing search index...

    Class OCCTAssemblyManager

    بناء مستندات التجميع وتغييرها: صف الأجزاء وعقد التجميع وعقد النسخ الفورية كائنا واحدا في المرة، وادمجها في بنية، وابن مستندا منها؛ أو حمّل ملف STEP في مستند. ثم أعد تلوين التسميات وإعادة تسميتها، وحدّث الأجزاء أو أزلها، وصدّر إلى STEP أو glTF. المستند مقبض في الذاكرة يبقى حيا حتى يُحذف، فابن مرة واحدة واستعلم أو صدّر كلما احتجت.

    Index

    Constructors

    Methods

    • يصف جزءا مأخوذا من مستند آخر، عادة مستند محمّل من STEP، بحيث تُنسخ شجرة تسمياته كلها مع التجميعات الفرعية والأسماء والألوان إلى التجميع الجديد.

      sourceDocumentIndex يشير إلى قائمة sourceDocuments المعطاة لـ buildAssemblyDocument، و sourceLabel يختار شجرة فرعية بدلا من المستند كله. تضعه عقد النسخ بـ partId مثل أي جزء.

      Parameters

      • inputs: CreateImportedPartDto

        معرّف الجزء وفهرس المستند المصدر وتسمية مصدر واسم ولون اختيارية

      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

    • يصف جزءا لبنية تجميع: معرّف للإشارة إليه، وشكله، واسم ولون اختياري.

      لا يُبنى شيء بعد؛ لا يصبح الجزء حقيقيا إلا عندما تمر بنية تحمله عبر buildAssemblyDocument. تضع عقد النسخ الجزء بمعرّفه، بقدر ما يلزم من المرات.

      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

        معرّف العقدة واسمها ومعرّف أصل اختياري ولون اختياري ومصفوفة وضع اختيارية

      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

        معرّف العقدة ومعرّف الجزء والاسم ومعرّف أصل اختياري والوضع

      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

      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 هو الملف كنص أو ثنائي؛ ويُقبل STEP-Z المضغوط بـ gzip أيضا. الملف الذي لا يمكن تحميله يرمي خطأ. النسخة التي يتركها الملف بلا اسم، كما يفعل 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 يكتب STEP-Z المضغوط بـ gzip بدلا من ذلك. الفشل يرمي خطأ.

      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" });