يصف جزءا مأخوذا من مستند آخر، عادة مستند محمّل من STEP، بحيث تُنسخ شجرة تسمياته كلها مع التجميعات الفرعية والأسماء والألوان إلى التجميع الجديد.
sourceDocumentIndex يشير إلى قائمة sourceDocuments المعطاة لـ
buildAssemblyDocument، و sourceLabel يختار شجرة فرعية بدلا من المستند كله.
تضعه عقد النسخ بـ partId مثل أي جزء.
معرّف الجزء وفهرس المستند المصدر وتسمية مصدر واسم ولون اختيارية
تعريف الجزء المستورد، جاهز لـ 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] });
يصف جزءا لبنية تجميع: معرّف للإشارة إليه، وشكله، واسم ولون اختياري.
لا يُبنى شيء بعد؛ لا يصبح الجزء حقيقيا إلا عندما تمر بنية تحمله عبر
buildAssemblyDocument. تضع عقد النسخ الجزء بمعرّفه، بقدر ما يلزم من المرات.
معرّف الجزء وشكله واسمه ولون اختياري
تعريف الجزء، جاهز لـ combineStructure
يصف عقدة تجميع، حاوية تجمع النسخ والتجميعات الأخرى في التسلسل الهرمي.
parentId يسمي التجميع الذي تقع فيه؛ اتركه للجذر. مصفوفة اختيارية تضع
المجموعة كلها.
معرّف العقدة واسمها ومعرّف أصل اختياري ولون اختياري ومصفوفة وضع اختيارية
تعريف العقدة، جاهز لـ combineStructure
يصف عقدة نسخة، وضعا واحدا لجزء: أي جزء بـ partId، وأين يذهب
وتحت أي تجميع.
translation ينقله، و rotation يديره بزوايا أويلر بالدرجات حول X و Y و Z،
و scale يحجّمه بانتظام؛ ويمكن لـ matrix أن تحل محل الثلاثة. يمكن أن يوضع الجزء نفسه
بنسخ كثيرة.
معرّف العقدة ومعرّف الجزء والاسم ومعرّف أصل اختياري والوضع
تعريف العقدة، جاهز لـ 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 هو الملف كنص أو ثنائي؛ ويُقبل STEP-Z المضغوط بـ gzip أيضا. الملف الذي
لا يمكن تحميله يرمي خطأ. النسخة التي يتركها الملف بلا اسم، كما يفعل SolidWorks، تُسمّى باسم الجزء الذي تضعه، مع ترقيمها عندما يتكرر ذلك الجزء بجانبها.
محتوى ملف STEP
مقبض المستند
يكتب مستند تجميع كملف STEP بتسلسله الهرمي وأسمائه وألوانه، ويعيد بايتات الملف.
author و organization يذهبان إلى ترويسة الملف؛ compress يكتب STEP-Z المضغوط بـ gzip
بدلا من ذلك. الفشل يرمي خطأ.
المستند واسم الملف وتفاصيل الترويسة وعلم الضغط وخيار التنزيل
ملف 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. المستند مقبض في الذاكرة يبقى حيا حتى يُحذف، فابن مرة واحدة واستعلم أو صدّر كلما احتجت.