프로젝트 소개

vCAD는 "커널 우선" 아키텍처로 설계된 오픈소스 크로스 플랫폼 파라메트릭 컴퓨터 지원 설계(CAD) 애플리케이션이다. 이 프로젝트는 Windows, macOS, Linux용 풀기능 데스크톱 애플리케이션과 3D 프린팅에 초점을 맞춘 iPadOS 전용 클라이언트를 포함한 여러 프런트엔드를 지원할 수 있는 견고한 코어를 제공하는 것을 목표로 한다. 이 소프트웨어는 기하 커널로 OpenCASCADE Technology(OCCT)를 활용하고 렌더링에는 bgfx를 사용한다. 데스크톱 버전의 사용자 인터페이스는 Qt 6.8 LTS로 구축되었다. 핵심 아키텍처 특징은 빌드 스크립트로 강제되는 엄격한 계층화 시스템으로, 코어 커널이 Qt나 SwiftUI 같은 UI 프레임워크로부터 독립적으로 유지되도록 보장한다. 이 설계를 통해 동일한 코어를 호환성 문제 없이 여러 플랫폼용으로 컴파일할 수 있다. 주요 기능은 다음과 같다: - **파라메트릭 모델링**: 스케치, 피처, 파라메트릭 제약을 지원한다. - **토폴로지 명명**: 편집 중 모델 무결성을 유지하기 위한 고급 토폴로지 명명 전략을 구현한다. - **문서 관리**: 자유로운 실행 취소/재실행 이력과 재계산 엔진을 갖춘 영구 문서 구조를 특징으로 한다. - **데이터 캐시**: 효율적인 데이터 관리를 위해 assetlib의 문서 데이터 캐시(DDC) 위에 2계층 캐시를 활용한다. - **파일 교환**: STEP, IGES, STL을 포함한 산업 표준 형식을 지원한다. - **확장성**: 스크립팅 및 플러그인 개발을 위한 안정적인 C 애플리케이션 바이너리 인터페이스(ABI)와 Python 바인딩을 제공한다. 이 프로젝트는 현재 활발히 개발 중이며, 마일스톤 M1(커널 래퍼 및 토폴로지 명명)과 M2(문서 관리, DDC, 파일 입출력)는 완료로 표시되었다. 렌더러와 Qt 셸에 초점을 맞춘 마일스톤 M3가 진행 중이다. 코드베이스에는 C++ 단위 테스트, C ABI를 통한 Rust 인수 테스트, Python 바인딩 테스트를 포함한 5계층에 걸친 포괄적인 테스트가 포함되어 있다. vCAD를 빌드하려면 CMake 3.24+, 의존성을 위한 vcpkg 체크아웃, 그리고 선택적으로 Python 바인딩을 위한 pybind11이 필요하다. 이 프로젝트는 여러 운영 체제에서 안정성을 보장하기 위해 엄격한 의존성 관리와 버전 고정을 강조한다.