Об этом проекте

vCAD — это открытое кроссплатформенное приложение параметрического автоматизированного проектирования (CAD), спроектированное по архитектуре «kernel-first». Цель проекта — предоставить надёжное ядро, способное поддерживать несколько фронтендов, включая полнофункциональное настольное приложение для Windows, macOS и Linux, а также специализированный клиент для iPadOS, ориентированный на 3D-печать. Программа использует OpenCASCADE Technology (OCCT) в качестве геометрического ядра и bgfx для рендеринга. Пользовательский интерфейс настольной версии построен на Qt 6.8 LTS. Ключевая архитектурная особенность — строгая система слоёв, обеспечиваемая сборочными скриптами, которая гарантирует независимость ядра от UI-фреймворков вроде Qt или SwiftUI. Такая конструкция позволяет компилировать одно и то же ядро для разных платформ без проблем совместимости. Основные возможности: - **Параметрическое моделирование**: поддержка эскизов, элементов и параметрических ограничений. - **Топологическое именование**: реализованы продвинутые стратегии топологического именования для сохранения целостности модели при редактировании. - **Управление документами**: постоянная структура документов с неограниченной историей отмены/повтора и механизмом пересчёта. - **Кэш данных**: двухуровневый кэш поверх Document Data Cache (DDC) из assetlib для эффективного управления данными. - **Обмен файлами**: поддержка отраслевых стандартных форматов, включая STEP, IGES и STL. - **Расширяемость**: стабильный двоичный интерфейс приложений (ABI) на C и привязки Python для написания скриптов и разработки плагинов. В настоящее время проект активно развивается: этапы M1 (обёртка ядра и топологическое именование) и M2 (управление документами, DDC и файловый ввод-вывод) отмечены как завершённые. Этап M3, посвящённый рендереру и оболочке Qt, находится в работе. Кодовая база включает комплексное тестирование на пяти уровнях, в том числе модульные тесты на C++, приёмочные тесты на Rust через C ABI и тесты привязок Python. Для сборки vCAD требуются CMake 3.24+, копия vcpkg для зависимостей и, опционально, pybind11 для привязок Python. Проект уделяет особое внимание строгому управлению зависимостями и фиксации версий для обеспечения стабильности на разных операционных системах.