इस प्रोजेक्ट के बारे में
vCAD एक ओपन-सोर्स, क्रॉस-प्लेटफ़ॉर्म पैरामीट्रिक कंप्यूटर-एडेड डिज़ाइन (CAD) एप्लिकेशन है, जिसे "कर्नेल-फर्स्ट" आर्किटेक्चर के साथ डिज़ाइन किया गया है। इस परियोजना का लक्ष्य एक मजबूत कोर प्रदान करना है जो कई फ्रंटएंड का समर्थन कर सके, जिसमें Windows, macOS और Linux के लिए एक पूर्ण-सुविधा वाला डेस्कटॉप एप्लिकेशन, तथा 3D प्रिंटिंग पर केंद्रित iPadOS के लिए एक विशेष क्लाइंट शामिल है।
सॉफ़्टवेयर अपने ज्यामितीय कर्नेल के लिए 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 बाइंडिंग प्रदान करता है।
यह परियोजना वर्तमान में सक्रिय विकास में है, जिसमें माइलस्टोन M1 (कर्नेल रैपर और टोपोलॉजिकल नेमिंग) और M2 (डॉक्यूमेंट प्रबंधन, DDC और फ़ाइल I/O) पूर्ण के रूप में चिह्नित हैं। माइलस्टोन M3, जो रेंडरर और Qt शेल पर केंद्रित है, प्रगति पर है। कोडबेस में पाँच स्तरों में व्यापक परीक्षण शामिल हैं, जिनमें C++ यूनिट टेस्ट, C ABI के माध्यम से Rust स्वीकृति परीक्षण, और Python बाइंडिंग परीक्षण शामिल हैं।
vCAD को बनाने के लिए CMake 3.24+, निर्भरताओं के लिए एक vcpkg चेकआउट, और वैकल्पिक रूप से Python बाइंडिंग के लिए pybind11 की आवश्यकता होती है। यह परियोजना विभिन्न ऑपरेटिंग सिस्टम पर स्थिरता सुनिश्चित करने के लिए कठोर निर्भरता प्रबंधन और संस्करण पिनिंग पर जोर देती है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.