aeb29ab87c8e9fac2c8cd7e233995a87706b4215
VDE-019 (Fixed): make_box/make_cylinder/make_sphere 添加 Point3D center 参数 VDE-020 (Fixed): 新增 make_cone(r1,r2,height) 和 make_torus(rMajor,rMinor) 基本体 VDE-022 (Partially Fixed): 添加 get_edge_index_by_position / get_face_index_by_position / fillet_by_position / chamfer_by_position VDE-026 (Fixed): Triangle3D 添加 int id 字段,BVH::build() 自动赋值索引,HitResult 添加 tri_index VDE-021/023/024/025 (Acknowledged): mesh→NURBS 转换等复杂几何算法,需求已记录 反馈来自 ViewDesign feat/viewdesign-engine 分支
ViewDesignEngine — 高性能 CAD 几何引擎
C++20 全栈 B-Rep 几何内核。对标 Parasolid/ACIS,覆盖曲面建模、网格处理、格式交换、CAM 制造、工程图、装配体。
快速开始
# Docker 构建(推荐)
docker run --rm -v $(pwd):/ws -w /ws vde-builder:latest \
bash -c "cmake -B build && cmake --build build -j\$(nproc)"
# 运行测试
cd build && ctest --output-on-failure -E Benchmark
依赖: CMake ≥ 3.16, C++20, Eigen 3, GoogleTest(自动下载)
模块总览
| 模块 | 命名空间 | 关键能力 |
|---|---|---|
foundation |
vde::foundation |
数学类型、公差、精确谓词、STEP/IGES/XT/SAT/JT/IFC/STL/OBJ/PLY/GLTF/3MF |
core |
vde::core |
多边形、凸包、ICP、CAM策略(3轴/5轴)、SIMD、事务、压缩 |
curves |
vde::curves |
NURBS 曲线曲面、G0-G3连续、Sweep/Loft/Net、曲面分析 |
mesh |
vde::mesh |
半边网格、Delaunay、QEM、Marching Cubes、FEA网格、逆向工程 |
spatial |
vde::spatial |
BVH (SAH)、Octree、KD-Tree、R-Tree (STR) |
boolean |
vde::boolean |
2D/3D布尔、SSI面-面求交 |
collision |
vde::collision |
GJK/EPA、SAT、Möller-Trumbore |
brep |
vde::brep |
B-Rep拓扑、SSI布尔、直接建模、装配、工程图、PMI/GD&T |
sdf |
vde::sdf |
15+隐式图元、CSG树、可微分几何、SDF→Mesh |
sketch |
vde::sketch |
2D草图约束求解 |
capi |
vde::capi |
C API 跨语言互操作 |
格式支持
| 格式 | 导入 | 导出 | 说明 |
|---|---|---|---|
| STEP (AP203/214/242) | ✅ | ✅ | 工业 CAD 交换标准 |
| IGES (5.3) | ✅ | ✅ | 传统制造业格式 |
| Parasolid XT | ✅ | ✅ | Siemens 原生格式 |
| ACIS SAT/SAB | ✅ | ✅ | Dassault 原生格式 |
| JT (ISO 14306) | ✅ | ✅ | 轻量化可视化格式 |
| IFC | ✅ | — | BIM 建筑信息模型 |
| glTF 2.0 / GLB | ✅ | ✅ | 实时 3D / Web |
| STL / OBJ / PLY | ✅ | ✅ | 通用网格 / 3D打印 |
| 3MF | ✅ | ✅ | 3D 打印标准 |
测试
| 类别 | 状态 |
|---|---|
| 核心回归测试(退化/极端/薄壁/大面数) | ✅ |
| 模糊测试(SDF/布尔/格式往返+持续模式) | ✅ |
| 性能基准(布尔/MC/IO) | ✅ |
| CI/CD (GitHub Actions) | ✅ |
文档
许可证
Apache License 2.0 — 详见 LICENSE
Description
Releases
1
ViewDesignEngine v1.0.0
Latest
Languages
C++
98.2%
C
0.8%
CMake
0.5%
Python
0.4%