
似乎很多人对CAD的理解有偏差,如果你打开一个STEP文件(打开其他类型的CAD文件也都差不多但是STEP格式通常不会有乱码),用记事本打开,你会看到如下的代码:
后面都是几千行的点坐标、几何特征定义等代码,一直到最后:
这就是CAD软件的基本原理,本质上是一种几何坐标的编译器,最早期的AutoCAD是用代码输入来实现点线面的定义,只是后来加入了图形界面,给大家学某一种CAD软件就很难上手其他种CAD软件的错觉:实际上看代码,结构上差别不大。
但也正是加入了图形界面,在设计中添加诸如倒角、加强筋/肋、旋转扫描得更为直观,但是相应的代码本身的易读性变差,诸如上面这几千行代码,只有“编译器”,也就是CAD软件能够高效处理这些信息,想靠人力直接创造、修改代码几乎已经变得不可能,这近四千行代码描述的只是一个M6垫圈的3D模型。
2D图纸的文件也是类似的状况,只是代码量稍微少一点,也是数以千行计。
不可避免的,虽然有ISO标准努力的把大家的CAD文件格式标准化,例如STEP就是基于ISO-10303-21: 工业自动化系统与集成产品数据表示与交换 第21部分:实现方法:交换结构的明文编码 的标准文件制定,但是对于CAD软件来说,仍然会遇到兼容性问题导致的读取bug。例如我今年就遇到过用solidworks2020打开solidworks2023保存的STEP文件,曲面特征扫描重建会产生接缝,最后解决的办法是用Inventor2023对STEP文件重新扫描保存解决的(学校工厂用的是solidworks2020,那边的老顽固就是不更新至学校新买的2023)。就连同一家公司不同版本软件之间的兼容都会产生一些奇奇怪怪的bug,更何况是不同公司。如果从代码的角度看待CAD软件,那就是要处理不同团队、不同时空制造的屎山,并制造新形态的屎山为难后人,亦或是为难以后的自己。
回归主题,国产CAD是否能替代AutoCAD或者其他的CAD软件,这就涉及到替代的程度了。如果是要兼容国外的CAD,那么就要熟悉ISO的相关标准文件,然这样国产CAD永远是追着别人家跑,兼容性又怎么比得了人家边写软件边制订标准的,最后会被活活拖死。
如果不需要兼容其他家的标准格式,难度会降一些,不过自己仍然要制订一个系统的、可持续性演变的标准体系,不然就会出现前面例举的solidworks曲面特征重建的版本bug,整体向屎山代码奔赴。
显而易见,拥有标准制订的先发优势是发展CAD软件的必要条件之一,而CAD软件从上个世纪2D到3D再到这个世纪向FEM、3D打印切片等新的应用需求发展,旧有的标准不再具有先发优势,我想这是一个CAD软件洗牌的窗口期。不过这个窗口期已近尾声,国产CAD或许能挤进门槛但完全替代困难重重。
我没用过国产CAD,但就现在的这些CAD使用体验而言,补丁盖补丁的冗杂标准、时不时软件版本迭代出现的奇怪bug、各种功能杂糅的大杂烩,我想下一个变革的窗口期势必会来。可能是新的制造模式、可能是新的物理分析方法也有可能是一个更简便清晰的标准制订让CAD减负让广大工程师不必忍受一些奇奇怪怪的bug。
像AutoCAD这样为了垄断电脑辅助设计领域Autodesk不惜垄断dwg格式授权的情况,早就让广大工程师怨声载道,开源、去垄断是大势所趋。
