CAD内核的奥秘 | 工业软件发展史

(声明:此文非本人原著,仅供交流,如果侵犯到原作者权利,立即删除)

如果一个产业要寻根,就会发现一个万千世界,最后会聚焦到一个点上。 “一沙一世界”,一世界满眼千秋,亦不过是投射到一粒沙芥。
当下,作为工业主流的数字化设计与制造,都需要用到CAD(计算机辅助设计)这样的工具。而CAD的基础底层支撑,就是通用几何造型平台,也可以称之为几何内核。
作为实体造型的关键引擎,许多CAD供应商,都会通过购买或者自研的方式,往上建立自己的CAD功能。 2020年流行的这6种电视柜,据说大多数人家里一件都没有!
广告 然而从萌芽开始,四十年过去了,这个世界却是笼罩在数学家的神话之下。 而这个世界,仍然无比地狭小。这是一个拿着放大镜也找不到的利基市场。
而它却是万神之殿的基座。 天才工程师的两枚金蛋 几何造型平台是CAD软件最核心的基础部分,通常称为几何内核,或者叫做几何引擎。
一般目前的CAD系统都会提供参数建模方法。 这是一个关于数学家传奇的故事,英国剑桥大学是那个时代最璀璨的光亮之地。
剑桥大学CAD实验室的Ian Braid在1973年完成了实体造型的博士论文之后,和导师Charles,以及同窗Alan创办了Shape Data公司,随后开发出第一代实体造型软件Romulus。
1981年一家美国公司买下工程师的公司,着手开发美国版权的第二代产品,也就是后来大名鼎鼎的几何引擎Parasolid。
1988年美国CAD供应商UG,买下Parasolid,将它融入UG集成系统中,将它变成一个实体和曲面造型通用几何平台。
此同时,Parasolid也作为一个单独的内核产品,为其他CAD软件开发商提供高质量的、世界一流的几何造型核心功能。
这个几何内核的故事,本来可以到此结束了。 然而神人永远不会停止折腾。
1986年,Ian被找上门来的美国Spatial Technology公司说的心头发痒,再次开发了第三代面向对象的实体和曲面通用平台ACIS:
ACI分别是三位大仙Alan Grayer,Charles Lang和Ian Braid的名字字首,而S则取自实体(Solid)的字首。
由于ACIS采用了面向对象的数据结构,并采用了C++编程,使得算法大为改进,它的运行速度是第一代Romulus的4-20倍,是第二代Parasolid的2-6倍。
除了技术先进性之外,ACIS还采用了一种有效的商业模式:那就是鼓励各家软件公司在ACIS上开发,并与STEP标准相兼容的集成制造系统。
凡是在ACIS上开发的CAX系统都有共享的几何模型,相互可以直接交换产品数据。ACIS构成了这些系统的几何总线。这样一来,信徒大增。
神剑再次成功出鞘。 1989年ACIS上市后,影响巨大。很多CAD公司都纷纷或者采用ACIS内核,或者采用了它的思想改进了自己的内核。
例如法国的Euclid-S、CATIA 以及美国的Intergraph、I-DEAS都纷纷跟进,采用这种面向对象的思想进行改进。
最重要的时间发生在1993年,Autodesk与Spatial Technology签约,在ACIS平台上开发出MDT三维参数化特征设计系统,成为ACIS的最大用户。
内核不等于CAD:没有UG,就没有几何引擎 然而,对于几何引擎,却有一个极大的误解,以为先有几何引擎,后有之上的CAD软件。
几何引擎本来并不存在,它是藏在CAD里面。 达索航空公司,把CAD部门独立出来,并起名叫做CATIA的时候,没有几何引擎的存在。
从麦道公司发展出来的CAD软件商UG,以及Autodesk的MDT,这些都是没有几何引擎的概念。所有的系统模块,都放在一块。同样,后来靠参数造型而名声大噪的PTC也没有这些引擎的概念。
是UGS在发展自己的商业策略所采用的方针,使得Parasolid几何引擎,成为一个独立的概念,随后甚至发展处来一个很小的利基生意。
最早UGS的CAD也是跟几何引擎搅在一起,后来逐渐将内核方面的工作外包给ShapeData公司。
这意味着,PARASOLID一开始就是两条腿独立走。UGS只是在外包体系中使用PARASOLID的团队,
Parasolid也允许使用UG提供的一些反馈所丰富的功能。这意味着,UG在相当长的时间,一直是负责Parasolid的“测试工作”。
这种唇齿相依的关系到了一定的程度,几何引擎,也逐渐达到了产品级的应用成熟度。一定时间之后,UG和Parasolid已经密不可分了。最后UG索性,将Parasolid购买过来。
没有UG,就没有Parasolid。就没有“几何引擎”的说法。 内核阵营开始分化 虽然很重要,但市场很小,内核公司单独存在是无法存活的。
2000年Spatial被达索系统收购。历经14年之后,著名的几何建模内核ACIS终于归到了大型CAD厂商手中。跟它的前一代几何内核一样,嫁个大户人家,是最好的选择。
然而,在此之前,CATIA跟ACIS一点关系没有。CATIA都是土生土长的内核。高傲自负的法国人一直在为CATIA完善自己的几何造型引擎,从原来的曲面造型到后来的基于BRep的实体造型。
甚至,CATIA也没有购买通用约束求解器,而是自己开发。 直到后来,CATIA决定把底层部分独立出来,单独做成独立的生意。达索也是花了好几年时间,才把所谓的几何内核独立出来,就是CGM。
因此,购买ACIS,对CATIA而言,主要出于商业需要和数据交换。
如此一来,Parasolid和Acis分别被西门子、达索控制着,已发展为巨大的深坑。并成为两个大的阵营。
AutoCAD、MDT和Inventer、Microstation均采用ACIS几何造型器为内核。 而UG、 SolidWorks、SolidEdge则采用Parasolid几何造型器。
在这些三维 CAD的实体几何造型内核中,老将Parasolid和Acis是几何建模系统的两棵老根,由于一开始就相对独立发展,比较著名,也成就了一代又一代的CAD厂商;
加上达索的CGM,是市面上能买到的三款商业化几何引擎。表1 ACIS与Parasolid的对比 但是大的CAD软件公司,一般都是有自己的内核的。
除了CATIA之外,开创参数建模时代的PTC,其内核Granite也是独成一派,主要是自己使用。这是一个情节不断翻转、充满了八卦的故事。
当年日入中天的CAD公司如CV,也有自己的内核,但在转向参数化实体造型方面不成功。从CV“离家出走”的高管创建的PTC了,大获成功,反手倒是收购了CV。
几何引擎让CAD市场充满了猜忌与阴谋 Parasolid被卖了之后,Braid等人,重新做了一个公司,继续做内核生意。这让后起之秀SolidWorks得到了很好的机会,它最初给投资者的版本,正是以ACIS为基础。
但有了投资之后,就开始测试Parasolid和ACIS。几个月之后,换成了Parasolid。尽管ACIS功能表跟Parasolid看上去差不多,但实战不行。
前面提到,尽管ACIS是第三代几何引擎产品,实验室性能甚至更优,但它自从诞生后,没有一个大公司,愿意像当年UG那样,如此紧密地对ACIS进行捆绑。
所以ACIS在市场占有率,一直低于它的前一个版本Parasolid。这充分证明了一点,在工业软件CADCAEEDA领域,没有交互的工程用户反馈,任何工业软件都不可能发展起来。
然而,作为UG的竞争对手之一SolidWorks一直活在一个“杯弓蛇影”的猜忌之中。如果UG将来不肯卖Parasolid,哪会怎么办?这是一个若有若无的阴影下。
而这个问题的解决,要来自更大的家伙。1997年达索以3.1亿美元,收购了SolidWorks。 这次轮到达索进行猜忌了,Parasolid在UG的手中,对Solidworks而言,是一个巨大的威胁。
2000年,达索决定出手,战略性地收购ACIS所在的Spatial Tech公司,为SolidWorks也提供一个备选的安全保障。从这里开始,达索才跟ACIS开始有交集。
随后达索将自己的内核CGM和ACIS,都放在Spatial公司之下。 然而这次收购,又惊动了另外一个巨头的利益。正在使用ACIS作为内核的Autodesk的Inventor,也感受到了同样巨大的威胁。
非常警惕的欧特克,为了避免受制于达索,用反垄断为法律手段,开始跟达索打官司。拉锯的结果是,达索可以拥有ACIS,但欧特克拥有随时购买ACIS源代码的权利。
有了这个条件作为限制,达索随后顺利完成收购ACIS。 几年以后,欧特克迅速地使用了这个权利,掏钱购买了ACIS的全部源代码,也就是ACIS R14版本。
随后Inventor在此基础上,经过多次版本的迭代。应该说,欧特克的几何内核,虽然源自ACIS,但跟原来的版本,已经区别很大。也可以认为欧特克已经拥有了自己的内核。
开源还有一棵独苗 一款开源的OpenCasCade,是一棵奇特的幼苗。成立于1964年的法国马特拉公司MATRA的Euclid系统,也有自己的内核,主要是曲面造型。为了和PTC抗衡,开发了Cas.Cade新一代内核。
现在在华天的一个总工,当年就是在负责基于Cas.Cade的新一代CAD系统Euclid Designer开发。
彼时中国航天对它的理念非常欣赏,认为符合航天设计需求,可以从老的Euclid平稳过渡到新的Euclid Designer。
可惜最终马特拉被达索并购了,整个新一代系列基本停止开发了,曾给予厚望的航天,也只好逐步转向Pro/E了。
达索与马特拉合并后,并没有吸纳所有的研发人员,也没有说要如何用Cas.Cade,让剩下的人员成立了一个公司。
这部分团队,索性将其变成开源,按照全开源(LGPL)协议进行管理。代码主要还是法国团队管理,但是在俄罗斯有一个较大的团队,进行应用定制开发。
虽然这并不是达索所期望的局面,但是已经晚了。最近几年版本更新比较快。在此内核的基础上,开发出一个开源CAD系统FreeCAD。
目前国内也有运用OpenCasCade的社群,开发些小系统。作为开源的几何引擎,做成商业CAD软件开发难度不小。
造不如买,再次毁掉商业化机会 拥有高水平的内核,是发展自主CAD/CAM/CAE和的核心工作。然而,世界上几何引擎不多了,基本处于垄断地位。
中国人手里的中望的Overdrive内核(本来是美国VX CAD的内核,2010年被中望收购)和华天的CRUX IV (华天CAD系统SV的内核)等。
然而,这件事情完全不能商业化。例如中望,也曾经考虑做一套更商业化的内核。然而市场需求并不支持。
最大的几何内核Parasolid一年的生意,也就是3000多万美元。如果做内核, 跟Parasolid去竞争争,是不可能活不下去的。 由于处于商业上的原因,西门子的UG,对于出售给中国内核,一直都不是太热心。
于是中国很多项目,只能二选一,一般都是在跟Spatial公司进行合作。尽管ACIS的价格很高,但国内CAD厂商都只能让步。
中国有自主的内核是个振奋的信息。但是,单独研发CAD几何内核是没有太大市场的,需要与三维CAD软件系统整合起来做。
实际上,国内的CAE和CAM可以用国内的核,共同打开市场。当然这只是一个假设。在中国谁都有生存压力, “造不如买”。
无论是几何内核,还是约束求解器,都可以是核心共性技术,但没有一家厂商能否负担。最后只能是一盘沙子。
中国CAD行业著名的专家、当时中国工程图学学会理事长唐荣锡,在2000年还曾经雄心勃勃地行业喊出“几何造型平台振兴”的口号。
按照唐老的看法,高水平的通用几何造型平台是发展CAD软件产业的一级火箭助推器。而在当时,中国许多CAD公司,正在借助CIMS和甩图板的东风,蓬勃发展。跟国外的差距不是没有,但看上去还能看得见、够的着。
然而,几何内核,是从众多成功的工业软件功能中萃取得来。没有成功的研制优秀CAD软件的基础,就谈不上研制几何平台。
而对于软件公司,要在市场活命,不采用先进、流行的通用平台,不但耽误进度,甚至会劳而无功。 这像不像一个死结?
在西方,主流CAD都是脱胎于航空业,波音公司、达索公司,都给了那些CAD软件厂商足够的机会、充分的反馈,这才使得国外的CAD厂商逐渐壮大。
而在中国,急功近利、追求速度的中国制造,从来不会给上游软件供应商的机会。要么出彩,要么出局。缺少来自用户端的悉心呵护和战略性扶持,是中国CAD、CAE以及EDA在发展路程上的最大死结。
错失的就不会再来 唐老甚至在2004年建议行业,不要将自主研制的开发平台的目标,定位在类似于 ACIS、Parasolid 的几何平台产品,
而是要将目标确定为创建新一代的功能特征平台,以功能特征为操作对象,使得新一代平台必须兼顾几何和功能两大方面。 这是一个更高的志向。
现在回想起来,本世纪初的几年,正是中国自主CAD还方兴正艾的时候,很多企业都跃跃欲试地要做几何内核。结果后来都是铩羽而归。
在十五时候。大家普遍误解,以为几何内核就是CAD系统。这是,历史天空下的误解。随之而来的相应决策,也是是失误的。
近20年过去了,随着国外CAD、CAE厂商的市场占有率超过95%,高端CAD比例更高。唐老的梦想,已经成为不可实现的愿望。
当务之急,还是要把CAD市场做大做活起来。以手机举例来看,华为去做手机芯片是合理的。因为他有足够的体量和自有市场做支撑,当然更是因为有足够的资金。
至于其他小手机厂商,还处于解决生存问题阶段,能抓住一个细分市场存活下才是他们的主要目标。谈做芯片,是不可想象的事情。
国产CAD内核,是能打破国外垄断的潜在希望,就像华为的麒麟芯片一样,是一烛跳动不已的小火苗。
小记 布雷德等三人从1970年起,直到2000年7月5日法国达索系统公司签约以2,150万美元现金收购ACIS业务,三人决定退出ACIS,也退出了几何内核领域。
闪耀了一代人的星空开始暗淡。整整30年,这三个天才工程师科学家的主要精力,都集中在实体造型平台的开发和完善上,也照亮了其他几个CAD公司的探索之旅。它
把后来所有通用几何造型平台要走的路,都几乎探索完毕。 数学家和工程师相结合,正是几何内核四十年不败的传奇魅力。

CAD内核的奥秘 | 工业软件发展史 (转)的更多相关文章

  1. 解气!哈工大被禁用MATLAB后,国产工业软件霸气回击

    提起哈尔滨工业大学,相信很多人都不会陌生. 它是中国顶级的C9院校之一,从1920年建校的百余年来,哈工大一直享誉"工科强校"的美称,因其在航天领域的不凡成就,更是被人们誉为&qu ...

  2. .NET6: 开发基于WPF的摩登三维工业软件 (7)

    做为一个摩登的工业软件,提供可编程的脚本能力是必不可少的能力.脚本既可以方便用户进行二次开发,也对方便对程序进行自动化测试.本文将结合AnyCAD对Python脚本支持的能力和WPF快速开发带脚本编辑 ...

  3. .NET6: 开发基于WPF的摩登三维工业软件

    MS Office和VisualStudio一直引领着桌面应用的时尚潮流,大型的工业软件一般都会紧跟潮流,搭配着Ribbon和DockPanel风格的界面.本文将介绍WPF下两个轻量级的Ribbon和 ...

  4. .NET6: 开发基于WPF的摩登三维工业软件 (2)

    在<.NET6: 开发基于WPF的摩登三维工业软件 (1)>我们创建了一个"毛坯"界面,距离摩登还差一段距离.本文将对上一阶段的成果进行深化,实现当下流行的暗黑风格UI ...

  5. Ubuntu 系统服务器初始化配置、安全加固、内核优化和常用软件安装的Shell脚本分享

    转载自:https://www.bilibili.com/read/cv13875402?spm_id_from=333.999.0.0 描述: 适用于企业内部 Ubuntu 操作服务器初始化.系统安 ...

  6. SOC-training image镜像内核文件(DE1-soc软件实验”hello_word")

    在DE1-soc软件实验”hello_word"此实验中,我开始并没有将SOC-training image镜像内核文件用win32disk写入sd卡中,直接插入sd卡,发现putty连接c ...

  7. CentOS7 系统服务器初始化配置、安全加固、内核升级优化常用软件安装的Shell脚本分享

    转载自:https://www.bilibili.com/read/cv13875630?spm_id_from=333.999.0.0 描述: 适用于企业内部 CentOS7 系列操作服务器初始化. ...

  8. 跟厂长学PHP7内核(一):发展史

    PHP1 1994年,一位名叫Rasmus lerdorf的兄台为了在网上展示自己的履历和网页流量的统计,用Perl开发了一套脚本,后来因与日俱增的需求无法得到满足,lerdorf便使用c语言进行了重 ...

  9. PHP7内核(一):发展史

    PHP1 1994年,一位名叫Rasmus lerdorf的兄台为了在网上展示自己的履历和网页流量的统计,用Perl开发了一套脚本,后来因与日俱增的需求无法得到满足,lerdorf便使用c语言进行了重 ...

  10. .NET6: 开发基于WPF的摩登三维工业软件 (10) - 机器人

    基于前文介绍的Ribbon界面.插件化.MVVM模式等内容,我们搭建了一个软件雏形.本文将综合之前的内容在RapidCAX框架中集成Robot组件,实现一个简单的机器人正向模拟模块. 1 目标 基于M ...

随机推荐

  1. 题解 ICPC 2019 SH 区域赛 F 树上简单问题

    题解 ICPC 2019 SH 区域赛 F 树上简单问题 CF的Gym里没找着 牛客的题目链接 首先这个题多测非常SB, 每次都要清空, 需要特别注意. 树剖应该都会吧, Defad之后也会发博客讲解 ...

  2. Kafka Streams 在监控场景的应用与实践

    作者:来自 vivo 互联网服务器团队- Pang Haiyun 介绍 Kafka Streams 的原理架构,常见配置以及在监控场景的应用. 一.背景 在当今大数据时代,实时数据处理变得越来越重要, ...

  3. 有关IOS内存读写冲突

    有关IOS内存读写冲突 在写内存相关代码时,获取已使用内存代码中报错 let hostPort: mach_port_t = mach_host_self() var host_size = mach ...

  4. 2024年1月Java项目开发指南6:接口测试

    我们使用API Fox这款工具对接口进行测试. (你要是会其他的例如postman进行测试也行) https://apifox.com/ 新建一个项目,新增一个接口 因为这个接口没有参数,所以无需填写 ...

  5. Qt/C++开源作品45-CPU内存显示控件/和任务管理器一致

    一.前言 在很多软件上,会在某个部位显示一个部件,专门显示当前的CPU使用率以及内存占用,方便用户判断当前程序或者当前环境中是否还有剩余的CPU和内存留给程序使用,在不用打开任务管理器或者资源查看器的 ...

  6. 超图SuperMap Objects的API开发中线对象和点对象查询

    注意:超图API开发中,如果将线对象和点对象都同时画在同一个CAD图层中,则在图查属性时,有可能现查询到线对象,而不能查询到点对象的信息.

  7. GitHub Workflow 和 Action 的一些注意事项

    GitHub 的 workflow 和 action 存在一些注意事项,总结如下,以供参考 Workflow on.issues.types 如果需要判断 label,不需要指定 opened,只需要 ...

  8. Windows安全加固(四)

    七.服务安全 1.禁用TCP/IP上的NetBIOS(协议所用端口139) 作用:禁用TCP/IP上的NetBIOS协议,可以关闭监听的UDP137.UDP138.UDP139端口. (1)使用快捷键 ...

  9. git撤销远已经push到程服务器上某次提交

    git撤销远已经push到程服务器上某次提交 问题: 不小心把一次错误的代码push到远程服务器上的分支上,或者没有merge强制将本地的方法push到git服务器上. 解决方法: 输入 git lo ...

  10. 京东从 OpenStack 改用 Kubernetes 的始末

    构建集群的历史 物理机器的时代(2004年-2014年) 在2014年之前,我们公司的应用程序都部署在物理机器上.在物理机器时代,为了给即将上线的应用程序分配物理机器,我们平均需要等上一周的时间.由于 ...