CAD/CAM 软件架构总结

2019-03-02

  2014年,我第一次参与了桌面端的软件开发项目。从惴惴不安到坦荡对待。2015年中,帮助设计了新版的CAD软件架构,那个时候,我们几个人都没有过架构大型桌面端软件的经验,参考着各种资料摸着石头过河。直到架构稳定下来,我们也废弃了不少原有的设计,不断的重构、重写花费了大半年的时间,不得不承认这中间有部分的时间是因为我们的经验不足、错误的设计导致的。今年我又参与了一个新的3D CAD项目,处于初始阶段,软件的架构需要重新实现。我也有更多的信心了。不过按照人月神话的作者经验,错误设计之后容易“过度设计”的。需要注意。我也需要对CAD/CAM或者说是桌面端软件架构设计做一下总结。
  CAD/CAM 软件实现过程中,难度最高的当属各种计算集合的算法了,而最复杂的,当属界面交互操作相关的设计。一旦UI层设计不好,将会把不良影响逐渐传递到底层。类似软件一般有几大模块:UI,3D 显示,三维交互,Undo/Redo,scripting,文件处理,报表生成,嵌入式设备通信与管理,各算法模块,Log。一般情况下,十余人甚至二三人十人的协同开发,分为四五个小组,大的项目如maya,估计有专职开发者几十人。不做好架构设计,组员就会遇到问题,架构上对各个组件的限制,可能组员经常就跑向组长,说因为系统设计的限制,做这个功能很麻烦,或者一个人进行功能开发,却容易改动另外一个人负责的功能。 UI模块
 好的UI lib是非常重要的。我一直推荐Qt的原因倒不是因为Qt的代码质量好、设计好,而是Qt是一门比C++更高级的语言啊(应该是可以这么说的)。语言表述能力的增强,才是解决问题的最高效途径。假如有一天,计算机程序构建可以接受自然语言输入,那么我们能简单的完成这些编程任务了。
2D、3D显示
  我们一般需要一个渲染引擎,二维显示中,这种需求不是很大,我们可以自己实现一个简单管理引擎。三维渲染引擎,一般基于OpenGL或者DirectX接口。但是,对于CAD/CAM这样的程序,选择OpenGL即可。可跨Windows/Linux平台,Mac OS将来只支持Apple自己的Metal接口。不需要同时支持DirectX接口。O

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值