يمثل تمثيل الحدود (B-rep) الطريقة الأساسية لتمثيل الكائنات النموذجية في معظم النواة الهندسية ، بما في ذلك نواة C3D Modeler الخاصة بنا. تتطلب الخوارزميات الأساسية التي تقوم بتحرير النماذج ، مثل تطبيق عمليات الشرائح ، وتنفيذ عمليات القطع ، والحصول على إسقاطات مسطحة دقة تمثيلات B-rep. يجعل تنوع البيانات ثلاثية الأبعاد سريع النمو في التنسيقات متعددة الأضلاع مهمة تحويل النماذج من المضلعات إلى تمثيل حدود أكثر أهمية. نتيجة لذلك ، قمنا بتطوير SDK جديد ، C3D B-Shaper ، والذي يعد جزءًا من مجموعة أدوات C3D الخاصة بنا.

يعد استخدام خوارزمية التثليث (المعروفة باسم التغطية بالفسيفساء) على تمثيل حدود النموذج أمرًا سهلًا نسبيًا. يُعد إنشاء تمثيلات متعددة الأضلاع (بالفسيفساء) مفيدة لأغراض التصور ولإجراء العمليات الحسابية الهندسية.
لكن التحول العكسي - من التمثيل المضلّع إلى B-rep - يواجه سلسلة من القضايا المتعلقة بالتعقيد في التعرف على أنواع الأسطح المختلفة ، بما في ذلك الأسطح الحرة. كذلك ، هناك مشكلة الضوضاء في النماذج المضلعة التي تظهر عادةً نتيجة للمسح الضوئي ثلاثي الأبعاد.
تتكون العملية العامة التي يحول بها C3D B-Shaper النماذج من الأشكال المضلعة إلى صيغ B-rep من ثلاث مراحل: تجزئة ، إعادة بناء الأسطح ، وبناء نموذج b-rep. تعتبر عملية التحول عملية تكرارية: إذا كان المستخدمون غير راضين لأي سبب من الأسباب عن النتائج ، فيمكن إجراء تصحيحات خلال مرحلتي التجزئة وإعادة البناء السطحي.
تحويل تمثيل مضلع إلى B-repقبل البدء في عملية تحويل b-rep ، ومع ذلك ، نقوم بتحسين جودة شبكة المضلع المصدر من خلال تطبيق الإصلاحات التالية: تنسيق اتجاهات القواعد الطبيعية في المضلعات المجاورة ؛ القضاء على الثقوب. وتطبيق خوارزميات تجانس على مصادر شبكة صاخبة ، إن وجدت.
تجزئة النموذج المضلع
تتمثل المرحلة الأولى من التحول في تجزئة النموذج المضلع. نقوم بتصنيف مضلع شبكة إلى مجموعات فرعية (شرائح). تتيح المعلومات حول الأوضاع الطبيعية في كل رأس قمة للشبكة إجراء تجزئة من الدرجة الأولى ثم تنفيذ تقسيم الشبكة الأولي ، وكذلك تصنيف المناطق على أنها مسطحة أو منحنية للغاية. يعتمد تقسيم الشبكة الأولي على تحديد الحواف "الحادة". هذه هي الحواف بين مضلعين مثلثيين حيث تتجاوز الزاوية بين متوسطاتهما المعتادة قيمة محددة مسبقًا.
يقوم الفصل من الدرجة الثانية بتحليل الشبكة بناءً على انحنائها الرئيسي ، وهو ما يكفي لتصنيف الأسطح الأولية. عند حساب الانحناءات عند القمم الشبكية ، نستخدم نتائج عمل ماير (مارك ماير ، وماثيو ديسبرون ، وبيتر شرودر ، وألان إتش. بار ، "مشغلي الهندسة التفاضلية المنفصلة للثلاثي المنوعين ،" التصور والرياضيات III ، 2003) في تعريف عامل تفاضلي منفصل للمناطق المثلثة: يتم اعتبار مجموعة من الرؤوس المجاورة (ذات الصلة برأس معطى عبر حافة) لكل قمة رأس شبكة أولية. بعد ذلك ، يتم حساب المشغل المنفصل
K للرأس. استنادًا إلى المشغل ، يتم تحديد متوسط الانحناءات العادية والمتوسط
K H و Gaussian
K G عند قمة الشبكة.
تحديد العوامل التفاضلية المنفصلة للمناطق المثلثةوبهذه الطريقة ، يتم احتساب موتر الانحناء لكل قمة رأس شبكية ، يتم من خلالها استخراج قيم الانحناء الرئيسية
K 1 و
K 2 واتجاهات الانحناء الرئيسية.
يتم تصنيف رؤوس الشبكات حسب قيم التقوسات الرئيسية
K 1 و
K 2 ، ثم يتم حسابها لهم. تستند خوارزمية تصنيف قمة الرأس إلى k - يعني ، أي تقليل الانحراف التربيعي الإجمالي لنقاط الكتلة من مراكز المجموعات. يحتوي الناتج الناتج من الخوارزمية على قمة شبكة مرتبطة مع كتلة
وزوج من الانحناءات (مركز المجموعة - L. Guillaume ، "انحناء شبكة المثلث القائم على التنسور مع تصحيح الحدود ،" Proceedings Computer Graphics International (CGI) ، 2004).
تصنيف رؤوس شبكة المضلعات في مساحة الانحناءبمجرد الانتهاء من تصنيف رؤوس الشبكة المضلعة ، ننتقل إلى تصنيف المضلعات. لبدء هذا الإجراء ، نختار مضلعًا ثلاثي المثلث يمكن اعتبار انحناءه محددًا بالكامل. هذا هو أحد الرؤوس الثلاثة داخل مجموعة واحدة ، أو له رأسان على حافة حادة. يُسمى المضلع كقطعة جديدة ويصبح نقطة البداية لإجراء تكراري يوسع القطعة: لكل مضلع مثلثي ، تعتبر المضلعات المجاورة طالما أن الحافة بينهما ليست "حادة". عندما يكون رأس المضلع المجاور ، الذي يقع مقابل الحافة المشتركة ، على حافة حادة أو ينتمي إلى نفس المجموعة ، تتم إضافة المضلع إلى القطعة. تتكرر العملية حتى تختفي جميع المضلعات التي تشكل الشبكة.
تجزئة شبكة المضلعبمجرد اكتمال إجراء إنشاء القطعة ، تقوم خوارزمية أخرى بدمج الأجزاء المجاورة معًا للقضاء على التجزئة المفرطة للشبكة.
التعرف على نوع السطح
المرحلة الثانية هي التعرف على السطح. يجب تقريب كل قطعة بسطح بدقة يحددها النظام أو المستخدمون.
أولاً ، يتم استخدام قيم الانحناء الرئيسية للقطاعات لتحديد ما إذا كان من الممكن على الإطلاق وصف شكل المقطع بواسطة أحد الأسطح الأولية التالية:
- الطائرة: ك 1 = ك 2 = 0
- كرة: k 1 = k 2 = K > 0
- الأسطوانة: k 1 = K > 0 ، k 2 = 0
- المخروط: k 1 ∈ [ a ، b ]، k 2 = 0
- حلقي: k 1 = K ، k 2 ∈ [ a ، b ]
لإنشاء أسطح أولية ، نضع كائنات هندسية بسيطة على مجموعات من النقاط باستخدام الخوارزمية المناسبة. على سبيل المثال ، لتلائم الدائرة والكرة على مجموعة من النقاط ، يتم استخدام طريقة المربعات الصغرى ؛ لتناسب الطائرة ، يتم استخدام تحليل المكون الرئيسي. يضمن النظام أن كل سطح أعيد بناؤه يرتبط بقطعة ضمن دقة معرفة مسبقًا.
يوضح الشكل أدناه الأسطح المعترف بها حسب اللون: تظهر الطائرات باللون الأزرق والأسطوانات باللون الأحمر والكريات باللون الأخضر والأصفر للأقماع والبنفسجي.
مصدر شبكة المضلع (يسار) وشبكة مجزأة (يمين) مع شرائح السطح المعترف بهاإذا لم يكن هناك أي سطح أولي قادر على وصف القطعة ، فإن النظام يحاول التعرف على سطح البثق أو سطح دورة.
عندما يفشل النظام في النهاية في العثور على سطح تحليلي لوصف شكل القطعة ، يتم إنشاء سطح NURBS له.
إنشاء نموذج B-rep
تتمثل المرحلة الأخيرة من التحول في إنشاء نموذج B-rep على أساس تجزئة البيانات السطحية وإعادة بنائها. يتم إنشاء الرسم البياني المجاور من المناطق المجزأة لتمثيل طوبولوجيا النموذج ، ويشكل الأساس لإنشاء نموذج B-rep الناتج. يتم تجميع طرازات B-rep في وضع تلقائي تمامًا ، على عكس المراحل السابقة:
- يتم إنشاء حواف B-rep من منحنيات التقاطع للأسطح المجاورة التي أعيد بناؤها
- صممت وجوه B-rep بأسطح معترف بها وحواف B-rep
ومع ذلك ، ليس من الممكن دائمًا إنشاء غلاف باستخدام الهيكل الصحيح. على سبيل المثال ، خذ سطحين مثل الأسطوانة والطائرة التي تتشابك تقريباً مع بعضها البعض في الفضاء. بسبب التسامح المحدد للأسطح التي أعيد بناؤها ، قد لا تتقاطع على الإطلاق. نتيجة لذلك ، قد يكون للصدفة التي تم إنشاؤها عيوب. يمكن للمستخدمين القضاء على العيوب عن طريق تصحيح معالم السطح.
أنواع النماذج المضلعة
هناك العديد من مصادر نماذج المضلعات المتوفرة عبر الإنترنت:
- توفر الكتالوجات وقواعد البيانات عبر الإنترنت نماذج ثلاثية الأبعاد بتنسيقات متعددة الأضلاع مثل STL و VRML و OBJ من معرض النماذج ثلاثية الأبعاد و Cults 3D وما إلى ذلك
- الملفات التي تنتج عن المسح ثلاثي الأبعاد
- الناتج من التحسين الطوبولوجي للنماذج باستخدام خوارزميات CAE
يمكن تقسيم النماذج متعددة الأضلاع من هذه المصادر إلى مجموعتين: النماذج التي تم تثليثها (مشبكة) من الكائنات B-rep ، وجميع النماذج الأخرى. زوج من الميزات المحددة للمجموعة الأولى هو عدم وجود ضوضاء شبكة مضلعة وهيمنة الأسطح التحليلية. هذا يعني أنه يمكن بسهولة تحويل النماذج من المجموعة الأولى إلى ممثلين ب في وضع مؤتمت بالكامل أو بأقل جهد للمستخدم.
تتميز الشبكات متعددة الأضلاع من الموديلات في المجموعة الثانية بوجود ضوضاء ، وتحتوي على أسطح عضوية ، ولذا فمن المحتمل أن تتطلب مشاركة المستخدمين تفاعلية.
وبالتالي نحن نقدم وضعين لتشغيل C3D B- الشكل ، التلقائي بالكامل والتفاعلية. يمكن للمستخدمين التبديل بين أوضاع التعرف ، وإدارة أنواع الأسطح أثناء عملية إعادة البناء. يمكن أن يعتمد تحديد وضع ما على الغرض من إجراء التحويل: قد يرغب المستخدمون في بعض الأحيان في تجاهل التوصيلية الطوبولوجية للقذيفة الناتجة ، أو صحتها الكلية. هذا هو الحال في الغالب عند تحسين العرض في تطبيقات BIM ، حيث يضيف المستخدمون عناصر داخلية مخصصة إلى النموذج المعماري.
من ناحية أخرى ، تتطلب مهام الهندسة العكسية أدق نسخة ممكنة من الطرز المصدر بحيث يكون للطراز الناتج طوبولوجيا صحيحة. لذلك ، من الضروري تحديد دقة ، على سبيل المثال ، محورية الاسطوانات المشتركة أو تماسك سطحين. في هذه الأنواع من الحالات ، تعد مشاركة المستخدمين في عملية التحول أمرًا بالغ الأهمية.
يستخدم التحويل التلقائي لـ C3D B-Shaper الوظائف التالية التي تستخدم شبكة المصدر وإعدادات التحويل كبيانات إدخال:
MbResultType ConvertMeshToShell( MbMesh & mesh, MbFaceShell *& shell, const MbMeshProcessorValues & params ); MbResultType ConvertCollectionToShell( MbCollection & collection, MbFaceShell *& shell, const MbMeshProcessorValues & params );
أحد إعدادات التحويل هي قيمة دقة التعرف التي تحدد أقصى درجات تحمل للمسافات بين رؤوس القطاعات والأسطح المعترف بها. يمكن أن تكون الدقة مطلقة أو نسبية. عند استخدام الدقة النسبية ، يتم قياس انحرافات الوجوه من الأجسام الشبكية بالنسبة لحجم النموذج.
توفر فئة واجهة MbMesh Processor خيارات متقدمة لإدارة التجزيء والتعرف على الأسطح:
class MbMeshProcessor { .. public:
على سبيل المثال ، لتصحيح نتائج التقسيم التلقائي ، يقدم C3D B-Shaper أدوات لدمج وتقسيم القطاعات ، وما إلى ذلك. يمكن للمستخدمين تركيب الأسطح من الأنواع المحددة على القطعة المحددة ، وكذلك تعديل معلمات الأسطح المعترف بها.
ملخص
يوضح الشكل التالي نتيجة خوارزميات تحويل C3D B-Shaper ، حيث يتم تحويل نموذج ثلاثي الأبعاد معقد بنجاح من تمثيل الشبكة المضلعة إلى شكل تمثيل حدودي صلب.

شبكة متعددة الأضلاع (يسار) ونموذج B-rep (يمين) تم تحويلهما باستخدام C3D B-Shaperهدفنا هو إنشاء SDK قوية لتحويل النماذج من المضلع إلى B-rep ، وبالتالي يستمر تطوير C3D B-Shaper. بعض الأشياء التي نعمل عليها تشمل تطوير خوارزميات التقسيم التلقائي ، وتطوير أدوات لتحرير المقاطع ، وتحسين بناء أسطح NURBS ذات الشكل الحر ، وزيادة جودة مجموعات الصدفة B-rep.
العملاء الذين يستخدمون النواة الهندسية C3D هم أيضًا عامل رئيسي في تطوير C3D B-Shaper.
يمكن للمطورين اختبار C3D B-Shaper كجزء من مجموعة أدوات C3D أو كمكون مستقل.

بقلم أندريه تومان ، رائد تطوير البرمجيات في مختبرات C3D