منصوبے کے بارے میں

vCAD ایک اوپن سورس، کراس پلیٹ فارم پیرامیٹرک کمپیوٹر ایڈڈ ڈیزائن (CAD) ایپلیکیشن ہے جو "kernel-first" آرکیٹیکچر کے ساتھ ڈیزائن کی گئی ہے۔ اس پروجیکٹ کا مقصد ایک مضبوط کور فراہم کرنا ہے جو متعدد فرنٹ اینڈز کی حمایت کر سکے، بشمول Windows، macOS اور Linux کے لیے مکمل خصوصیات والی ڈیسک ٹاپ ایپلیکیشن، نیز iPadOS کے لیے 3D پرنٹنگ پر مرکوز ایک خصوصی کلائنٹ۔ یہ سافٹ ویئر اپنے جیومیٹرک کرنل کے لیے OpenCASCADE Technology (OCCT) استعمال کرتا ہے اور رینڈرنگ کے لیے bgfx کا استعمال کرتا ہے۔ ڈیسک ٹاپ ورژن کا صارف انٹرفیس Qt 6.8 LTS کے ساتھ بنایا گیا ہے۔ ایک اہم آرکیٹیکچرل خصوصیت بلڈ اسکرپٹس کے ذریعے نافذ کردہ سخت تہہ بندی کا نظام ہے، جو اس بات کو یقینی بناتا ہے کہ بنیادی کرنل Qt یا SwiftUI جیسے UI فریم ورکس سے آزاد رہے۔ یہ ڈیزائن ایک ہی کور کو مختلف پلیٹ فارمز کے لیے بغیر مطابقت کے مسائل کے کمپائل کرنے کی اجازت دیتا ہے۔ اہم صلاحیتیں شامل ہیں: - **پیرامیٹرک ماڈلنگ**: اسکیچنگ، فیچرز اور پیرامیٹرک پابندیوں کی حمایت کرتا ہے۔ - **ٹوپولوجیکل نیمنگ**: ترمیم کے دوران ماڈل کی سالمیت برقرار رکھنے کے لیے جدید ٹوپولوجیکل نیمنگ حکمت عملیوں کو نافذ کرتا ہے۔ - **دستاویز کا انتظام**: مستقل دستاویز ڈھانچہ، مفت undo/redo ہسٹری اور دوبارہ حساب لگانے والا انجن فراہم کرتا ہے۔ - **ڈیٹا کیش**: موثر ڈیٹا مینجمنٹ کے لیے assetlib کے Document Data Cache (DDC) پر دو درجے کا کیش استعمال کرتا ہے۔ - **فائل کا تبادلہ**: STEP، IGES اور STL سمیت صنعتی معیاری فارمیٹس کی حمایت کرتا ہے۔ - **توسیع پذیری**: اسکرپٹنگ اور پلگ ان ڈیولپمنٹ کے لیے مستحکم C Application Binary Interface (ABI) اور Python بائنڈنگز فراہم کرتا ہے۔ یہ پروجیکٹ فی الحال فعال ترقی میں ہے، جس میں Milestone M1 (کرنل ریپر اور ٹوپولوجیکل نیمنگ) اور M2 (دستاویز کا انتظام، DDC اور فائل I/O) مکمل قرار دیے گئے ہیں۔ Milestone M3، جو رینڈرر اور Qt شیل پر مرکوز ہے، جاری ہے۔ کوڈ بیس میں پانچ درجوں پر مشتمل جامع جانچ شامل ہے، بشمول C++ یونٹ ٹیسٹ، C ABI کے ذریعے Rust قبولیت ٹیسٹ، اور Python بائنڈنگ ٹیسٹ۔ vCAD بنانے کے لیے CMake 3.24+، انحصار کے لیے vcpkg چیک آؤٹ، اور اختیاری طور پر Python بائنڈنگز کے لیے pybind11 درکار ہے۔ یہ پروجیکٹ مختلف آپریٹنگ سسٹمز میں استحکام کو یقینی بنانے کے لیے سخت انحصار کے انتظام اور ورژن پننگ پر زور دیتا ہے۔