开发CAD软件有没有希望
为什么我依然认为新开发CAD软件是有希望的?
定位
国内的CAD公司⼀般都把Autocad做为竞争对⼿。并且热衷于模仿Autocad,⼀⽅⾯他们的⽬标是为了以低价取代Autocad,另⼀⽅⾯他们都是基于InteliCAD开发。 InteliCAD正是以形似于Autocad为荣。顺⼿拈来好处,当然要⼤⼒宣传。
模仿Autocad没有前途。Autocad太复杂了,从DOS经历到Windows7,20余年的功能积累。即使能做到像Autocad⼀样的功能,耗去的成本也将让公司⽆法盈利。所以Autocad现在没有竞争对⼿,将来也不会有。
CAD软件开发难度⼤,成本⾼,与之相应的是从套数上来讲,销量并不会很⼤。所以会看到像CATIA,UG,PROE的公司都热衷于提供企业整体解决⽅案。如果仅仅销售CAD软件本⾝,估计没有太多利润。Autocad有些例外,由于它处于⽐较通⽤的地位,销量还是挺⼤的,为Autodesk赚到不少的钱。
单纯的CAD软件很难存活,最后的⽬标可能是依附于某些⾏业,或者为各⾏业提供⼀个CAD平台。国内有很多CAD软件商,拥有⾃主的或是外来的平台,都基于⾏业进⾏了⼤量的补充开发。⽣存的基础不是
CAD技术本⾝,反⽽是⾏业本⾝。⽽且也不⽤担⼼国外的⼤公司会介⼊⾏业开发,以他们的开发成本⽽⾔,不会有太⼤的兴趣。不过象机械设计制造之类的⼤⾏业,就别想了,估计很难有新产品能撼动CATIA,UG集团的地位。我想说的是⽐如类似于⼯程量,服装等⾏业。
综合起来,新的CAD的定位不是去竞争CAD软件本⾝,它的⽬标是成为⾏业软件的平台。不依附⾏业,就⽆法盈利。
功能
虽然2D CAD软件承受着来⾃3D CAD多年来的鄙视,但2D存活⾄今,以出乎意料的缓慢速度向3D转移。⾏业软件的⽬的是提⾼⼯作效率,并不是⼏维就能解决。当然漂亮的3D显⽰会更直观,也会为效率做贡献。
本来就不该那么明显的区分2D或者3D,视⾓垂直于轴平⾯,就是2D,只⽤是3D的特殊情。我猜想,2D概念的来源:第⼀是操作系统⽀持的图形视窗是2D的,这就使得3D开发在早期变得困难。第⼆个是Autocad作为2D CAD软件的概念深⼊⼈⼼。
CAD软件的总体结构分为领域,建模,图形显⽰3⼤类。
领域就是⾏业的应⽤模型,真对每个⾏业具体应⽤设计不同。
建模指的是⼏何建模技术,虽然⼏何建模的研究已经不是热点,但实质上建模技术掌握在少数公司⼿⾥。最流⾏的ACIS和Parallel Solid分别掌握在CATIA和UG集团⼿中。Autodesk的⼏何建模技术源于ACIS;流⾏的Solidwork使⽤的是Parallel Solid,并且作为了CATIA集团的⼀个产品;UG集团旗下的⼏个产品也都使⽤的是Paralle Solid⼏何内核。 ⽐较流⾏的例外是PTC的proE,作为参数化建模的最早提出者,他应该使⽤的是⾃⼰的技术。 作为号称成熟的⼏何建模技术,要想实现出来,难度⼤,成本⾼,⽆利润,是个亏本的买卖。后起CAD公司都会避免⾃⼰实现,替代⽅案是购买ACIS和Parallel Solid库的使⽤权,好像它们卖的并不贵。如果期望购买的ACIS库像CATIA⾥⽤那样强⼤,那⼜是在做梦了。CATIA⾃⼰做了很⼤的努⼒去提升⼏何建模,这些努⼒都是保密的。算法是公开的,CAGD的算法理论⼀套⼀套的,能实现到商业强度才真的⽜B。
ACIS和Parallel Solid使⽤的是B-rep模型表⽰法。另外⼀种流⾏的是CSG表⽰法,但基于某些限制,单纯的CSG不能很好的适应现代CAD 建模需求。⽐如对solid entity倒⾓操作,CSG就不能简单表⽰出来。
如果还有其它的⽅法,那就是mesh建模,可以融⼊subdivision技术。⼀般动画软件⽤的较多,⽐如3dmax,maya之类。这类⽅法相对于B-rep来说,要简单好多,如果想亲⾃实现也⽐较现实。并且有开源的库作为技术上⽀持。已有的⼤型CAD软件没有使⽤纯mesh建模。如果是新开发CAD,以mesh为主的建模倒是⼀个很好的尝试。
服装软件企业
图形显⽰技术,得益于游戏的快速发展,发展很迅速,也很公开。CAD的图形显⽰引擎和游戏使⽤的⽐较相似。已有那么多的优秀的开源引擎。这个问题对于CAD开发来讲是最好解决的。
还有⼀个值得注意的是⼏何约束技术,它是现代CAD的基础技术。尺⼨/参数化驱动,装配,运动仿真都以约束作为基础。很不幸,类似于建模,这⼜是⼀个理论成熟,但是实现掌握在少数公司⼿中的技术。DCM求解器⾪属于UG集团,但是包括竞争对⼿的很多软件都在⽤它。我理想中的绘图,就应该类似于Solidworks中的草图,迅速⽽且智能。⼀个完整的⼏何约束求解器,是那么的复杂。也许我们需要的是简单实⽤的,融⼊CAD架构的全局⼏何约束。
开发
新开发软件是困难的。开发基础技术更加困难,谁会有能⼒和精⼒开发新的字体表⽰,反⾛样技术?基于windows7,这些都是免费的,利⽤Direct2D,DirectWrite, DirectX11功能。我还没有⼀个Directx10/11的显卡,庆幸的是微软提供了⼀个⾼质量的软实现。(等ATI的卡降价了再说吧)
多核计算机已经普及好⼏年了。由于多线程程序的复杂,以前的软件很难充分利⽤多核的优势。软件越开发越慢,越复杂。当CPU停⽌提速转向提量时,有⼀批软件将会跟不上时代。
模仿(如果我发明不出来)先进的交互也是新软件的⼀个优势。没有历史负担是轻松的。(如果同意这个观点,那就更想不通为什么⼤家还在模仿Autocad)
这是我所认识到的困难。难度很⼤。⼼⾥仍然含有希望。