在浏览器中重塑3D设计:探索Chili3D的全栈Web CAD解决方案
“
无需安装专业软件,打开浏览器即可进行工业级三维建模——这曾是工程师的梦想,如今正通过WebAssembly技术成为现实。
当传统CAD遇见现代Web技术
在机械设计、产品原型开发等领域,计算机辅助设计(CAD)软件是不可或缺的生产力工具。但传统CAD存在两大痛点:昂贵的授权费用和复杂的本地安装。Chili3D的创新在于将完整的CAD能力迁移到浏览器环境中,其技术核心是通过WebAssembly编译OpenCascade(OCCT)引擎,结合Three.js实现可视化渲染。
技术架构解析
- ❀
OpenCascade引擎:工业级几何建模内核(常用于FreeCAD等开源CAD),提供布尔运算、曲面处理等核心算法 - ❀
WebAssembly转换:将C++编写的OCCT编译为.wasm格式,在浏览器中实现接近原生的计算性能 - ❀
Three.js集成:通过WebGL实现硬件加速的3D渲染,确保复杂模型的流畅交互 - ❀
TypeScript基础:强类型语言保障大型工程的可维护性
实际应用场景演示
从草图到三维模型
-
二维草图绘制
使用线条/圆弧工具绘制法兰盘截面,系统自动捕捉几何约束关系 -
旋转成型
选择中心轴执行旋转操作,瞬间生成三维实体 -
布尔运算优化
添加螺栓孔时采用”差集”运算精准切割材料
装配体设计流程
graph TD
A[创建基础零件] --> B[建立装配坐标系]
B --> C[导入齿轮部件]
C --> D[轴孔配合约束]
D --> E[运动机构检测]
E --> F[爆炸视图分析]
核心功能深度剖析
建模能力矩阵
精准设计辅助系统
- ❀
动态工作平面:任意曲面秒变绘图基准面 - ❀
智能捕捉系统: - ❀
端点/中点/圆心自动吸附 - ❀
延长线虚拟交点预测 - ❀
曲面法向对齐指引
- ❀
- ❀
测量工具箱: // 典型测量代码逻辑 const edgeLength = model.getEdgeLength(selectedEdge); const faceArea = model.calculateSurfaceArea(selectedFace);
工程实践指南
开发环境搭建
# 1. 获取代码库
git clone https://github.com/xiangechen/chili3d.git
cd chili3d
# 2. 安装Node依赖(需Node.js v16+)
npm install
# 3. 编译WebAssembly核心
npm run setup:wasm # 此过程需5-10分钟
# 4. 启动开发服务器
npm run dev # 访问localhost:3000
生产环境部署
# 完整构建流程
npm run build:wasm # 单独编译OCCT引擎
npm run build # 构建前端应用
# 输出目录:/dist
# 可直接部署至Cloudflare Pages等平台
行业应用前景展望
当前适用领域
- ❀
教育实验:机械制图课程实时演示 - ❀
设计评审:在线共享模型进行协作标注 - ❀
快速原型:概念设计即时可视化验证
技术演进方向
-
装配约束系统:实现齿轮啮合等机械关系 -
参数化驱动:尺寸关联的智能模型更新 -
PLM集成:对接产品生命周期管理系统
开源社区参与路径
贡献者成长路线
pie
title 社区贡献类型分布
“问题反馈” : 35
“文档翻译” : 25
“功能开发” : 20
“测试用例” : 15
“性能优化” : 5
协作规范要点
- ❀
代码提交流程: - ❀
Fork主仓库创建特性分支 - ❀
提交Pull Request至dev分支 - ❀
通过Jest测试套件验证
- ❀
- ❀
本地化支持: // 语言包扩展示例 "de": { "command.extrude": "Extrudieren", "tooltip.fillet": "Kanten abrunden" }
授权模式解析
采用AGPLv3许可保障社区权益:
- ❀
开源义务:衍生项目必须公开修改代码 - ❀
商业授权:闭源应用需联系xiangetg@msn.cn - ❀
云端例外:SaaS服务不受传染性条款约束
项目现状警示:当前Alpha版本(0.8.x)存在API不稳定的情况,生产环境使用建议锁定版本号:
// package.json参考配置
"dependencies": {
"chili3d-engine": "~0.8.6"
}
资源导航:
“
浏览器中的CAD革命并非取代专业工具,而是创造新的设计场景——当工程师在机场用平板修改模型,当教师在线指导学生完成毕业设计,当创客社区实时协作优化开源硬件… Chili3D正悄然改变三维设计的时空边界。