今天讲了三个东西分别是ACIS,HOOPS和AGM。
ACIS是一个完整的modeling的内核,说白了就是一套用C++写的modeling类库,只要你掌握了这个库就可以完成所有的建模工作(基本上所有3D造型软件的功能他都有),但是这个库的易用性不够,所以在其上又开发了一些API进一步对底层的acis类库进行封装,而最上层则是现在非常流行的一中类lisp的解释器平台,应用scheme语言作为上层的开发语言,经过这么多步骤的封装,你只需要输入(block(0,0,0),(10,10,10))这个命令就能建立一个立方体,其他相似的简单命令就能完成很复杂的操作,已经相当于AutoCAD里面的命令行模式了。
因为ACIS是从底层开始提供的,不像其他的CAD软件之给你一个封装好的盒子,所以你的开发灵活性非常大;初期你可以用scheme编程,然后你可以过渡到直接API调用,最后你可以直接操作底层的类库,并扩展出你自己的库,这个前景非常诱人。
ACIS除了在开放性上独树一帜,他还有个重要的杀手锏就是所谓Deformable Modeling,这个功能已经超出了普通的建模概念,他实际上是在model的数据节点上再附加一层数据(包括质量,刚度,阻尼等),并引入了deform算法。当你加载荷时调入算法计算出变形和新模型的状况。 在现场就演示了一个橡皮的东西加了一个手抓的载荷后反应出抓痕的动画,非常逼真。
我们知道你建立一个模型后不能只存为一个数据文件就完了,我们需要把这个模型显示在计算机屏幕上,并实时对他进行操作,这就需要一个图形显示引擎来干这个事儿了。
HOOPS是一个在底层图形驱动基础上开发的显示类库,他不是一个单独的图形显示引擎,而是对OpenGL、DirectX这些图形引擎进行封装和扩展的结果。他的最大优势是对大模型操作和显示的优化以及一种压缩比高,适合网络传输的stream模式。这两者都可以理解为对原有图形引擎的优化,使文件更小,运行更快。当然,灵活的对OpenGL和directX的支持也是其卖点,HOOPS保证自己能同步跟上OpenGL和DirectX的发展步伐并在其上做有益的改进。
AGM的用途就是在ACIS和HOOPS之间建立一个桥梁,因为这两个东西都之不过是两套类库而已,他们之间没有什么联系,一个新的开发者如果想上手作开发,那么他需要把两套东西都弄的通透才能开始干活,这样的开发周期实在太长了。AGM为初次开发者提供一个快速开发的平台,把两者结合起来,相当于一个成型的可视化的CAD系统。AGM是VC++ based,提供源代码,你可以很快的用他开始你的工作,理解ACIS和HOOPS之间的关系,加入你自己的功能,完全掌控两套库的功能以及他们的连接。之后你可以继续在AGM上开发你自己的产品,或者抛开它开创你自己的天地。
说了这么多,你也许会问,这个东西到底能干吗呢?对,我也想说说这个问题。
这个东西开发出来的目的就是卖给一些想做有自主知识产权的应用与专业针对性领域的CAD/CAM/CAE软件的开发商。让他们不必去花时间研究modeling和visualization这种繁琐的问题,而可以专注于他自己的领域中,开发自己的库和算法,提供高的附加值;比如我们老板想做一套专门用于电主轴建模和分析的软件,用现有的软件可能无法实现所需的功能,那么我们老板就可以买一套内核回来开发自己的专用软件,然后售出,赚取其中的附加值。
但是这个在中国能行的通么?ACIS一个license的价格大概几千美元,和pro/e,UG这些巨无霸比肯定是一根冰棒的价钱,应该是CAD二次开发的最便宜的平台了,但是在中国盗版泛滥,价格优势变得毫无用处,那么谁会睬你呢?中国现在的CAD市场被几个大软件把持着,像ACIS这种没什么人用的东西,推广难度很大,一般的开发者都会去选择在一些流行的软件商二次开发,而不会去找个新的平台。还有就是ACIS开发周期太长,他毕竟不像现在的CAD软件给你套API你就能很快上手开发,他给你的就是俩类库而已,你要把软件搭起来需要太多的时间了,他的灵活性相对于开发周期来说基本可以忽略。
最后,我的悲观结论,这个东西仅限在学校里面当玩具,许老板的发财梦可能要落空了