几何建模内核是用于提供计算机辅助设计 (CAD) 软件中的 3D 建模功能的软件组件。它用于设计虚拟模型以为真实对象的仿真和制造提供支持。几何建模内核使用各种不同的几何表示形式来表示真实对象。这些模型包括使用三角形表面网格粗略估计对象的小平面模型,以及使用在数学上定义的表面精确定义实体模型的 B-rep 模型。很多内核可提供广泛的建模工具。例如,可以将 2D 草图扫掠或旋转为 3D 体,或者使用布尔运算添加、减去或合并 3D 体。高级内核提供如拔模、抽壳和偏置等直接的模型编辑工具,还支持创建非常大的模型和复杂的自由曲面。几何建模内核支持基于相同内核的软件之间的无转换互操作性。对于在 CAD 软件与计算机辅助制造 (CAM) 和计算机辅助工程 (CAE) 软件之间传达 3D 设计意图而言,这一点可提高模型稳定性和性能。
几何内核主要包括数学、几何和拓扑对象的数据结构及相应算法;以及文件导入/导出功能,可实现IGES模型导入、STEP模型等标准文件格式的导入,并可统一转为自主文件格式。非核心需求也可称为拓展性需求,主要包含以简化用户操作为目的的通用或专用功能。
1) 基本数学对象:点、向量、直线、平面、坐标系、矩阵、坐标变换等的数据结构及相关运算;
2) 几何对象:点、线、面的数据结构,支持7种曲线、9种曲面;
3) 几何操作:也称几何运算,主要包含求交、投影、反射、坐标变换等;
4) 拓扑元素:采用B-Rep描述拓扑结构,主要的拓扑结构层次有:点(Vertex)、边(Edge)、环(Loop)、面(Face)、壳(Shell)、块(Lump)、体(Body);? ?
5) 拓扑关系:包含拓扑依赖关系及拓扑元素与几何元素间的关联,前者即点、边、面的相邻和从属关系等的查找,后者为拓扑元素到几何元素的映射关系;?? ????
6) 拓扑操作:又称拓扑运算,主要包括拉伸、旋转、阵列、布尔运算、扫掠、放样、圆角、拔模、加厚等;
7) 对象管理的常规机制:创建和删除对象集合、对象创建和删除、对象检查、stream和unstream,磁盘读写,持久化引用;
8) 剖分:将参数曲线、曲面和实体离散成若干三角形和点的操作,为显示引擎等提供数据来源;
?9) 实现自主文件格式,实现单个实体的数据表达的导入/导出函数;
10)IGES(The Initial Graphics ExchangeSpecification,初始图形交换标准)的国家标准号为GB/T 14213,对应美国国家标准US PRO/IPO-100;现行的IGES国家标准号为GB/T 14213-2008,对应于IGES 5.3;
11)对STEP AP242是最新标准支持,以及兼容AP203和AP214标准。
目前主流的商业三维几何内核商业有ACIS,Parasolid,这两个三维内核同宗同源,只是两个发展分支,ACIS的Spatial公司被达索收购,而Parasolid经历多次收购现收归西门子。现在的两个商业内核除了加强底层内核功能,ACIS更偏向于CAD/CAE/EDA/CAM等客户应用领域,而Parasolid更偏向于加强西门子自身业务的支撑,在CAD功能上,Parasolid要优于ACIS。
目前市面上的大多数三维CAD软件,和拥有三维几何造型仿真软件几何内核都采用ACIS或者Parasolid。
? ? ? ? ??
目前开源的几何内核有法国公司推出的Opencascade,对于小型项目的开发是个不错的选择。
ACIS是美国spatial technology公司的产品,是应用于CAD系统开发的几何平台。它提供从简单实体到复杂实体的造型功能,以及实体的布尔运算、曲面裁减、曲面过渡等多种编辑功能,还提供了实体的数据存储功能和SAT文件的输入、输出功能。? ?
ACIS的特点是采用面向对象的数据结构,用C++编程,使得线架造型、曲面造型、实体造型任意灵活组合使用。线架造型仅用边和顶点定义物体;曲面造型类似线框造型,只不过多定义了物体的可视面;实体造型用物体的大小、形状、密度和属性(重量、容积、重心)来表示。
ACIS产品使用软件组件技术,用户可使用所需的部件,也可以用自己开发的部件来替代ACIS的部件。ACIS产品包括一系列的ACIS 3D Toolkit几何造型和多种可选择的软件包,一个软件包类似于一个或多个部件,提供一些高级专业函数,可以单独出售给需要特定功能的用户。ACIS产品可向外出售接口源程序,同时鼓励各家软件公司在ACIS核心开发系统的基础上发展与STEP标准相兼容的集成制造系统。使用ACIS引擎的底层产品主要包括了AutoCAD、Inventer、Catia、MicroSolid等。
Parasolid是一个几何建模内核,最初由Shape Data Limited开发,现在由Siemens PLM Software(前身为UGS Corp.)拥有,可以被其他公司许可用于其3D计算机图形软件产品。
Parasolid的功能包括模型创建和编辑实用程序,如布尔建模操作,特征建模支持,高级曲面设计,加厚和挖空,混合和切片以及图纸建模。Parasolid还包括用于直接模型编辑的工具,包括逐渐变细,偏移,几何替换以及通过自动再生周围数据来移除特征细节。Parasolid还提供广泛的图形和渲染支持,包括隐藏线,线框和绘图,曲面细分和模型数据查询。使用ParaSolid引擎的主要包括了UG、Solidworks、SolidEdge等。
内核 | 开发者 | 特点及优势 | 典型软件 | 注释 |
ACIS | spatial technology?? ? ? ? | 平面造型;对比较简单的三维模型节省计算资源和存盘空间 | AutoCAD、CATIA、proe、ABAQUS、Fluent、Nastran等 | 从平面造型发展起来 |
Parasolid | UGS | 对造型复杂、碎面较多的实体具有优势 | UG、solidedge、solidworks、ANSYS、Comos、FEMAP、Adams、Adina等 | 最成熟,应用最广泛的几何造型内核 |
? ? ? ? ??
在商用CAD软件外,还有一些比较成熟的开源CAD内核,其中使用的比较多的是OpenCascade(简称OCC)。
Open CASCADE (简称OCC)是一开源的几何造型引擎。基于该建模引擎发展了若干CAD/CAE/CAM软件,如国外的FreeCAD、HeeksCAD,国内的AnyCAD。Open CASCADE(简称OCC)为开源社区比较成熟的基于BREP结构的建模引擎,能够满足二维三维实体造型和曲面造型,国内研究和使用它的单位也越来越多.OCC可以分为建模、可视化和数据管理(OCAF)三大模块。其中建模为核心组件;可视化组件基于OpenGL,相对其他的三维可视化OpenGL平台(如Coin3d,OpenInventor,Ogre3d,OSG,VTK等),功能简单,并且显示效果比较差,不能充分利用GPU硬件加速;OCAF采用树的方式管理数据,使用比较复杂,效率比较低,并且不适合自定义扩展。因此,不推荐使用OCC的可视化和数据管理组件。? ?
? ? ? ? ??
? ? ? ? ??
平台 | 领域 | 三维内核 | 产品 | 公司 | 国家 |
Windows, macOS, Linux, iOS, Android | CAD, CAM, CAE, AEC | DGM | CrownCAD | 华云三维 | 中国 |
Windows | CAD,CAM,CAE?? ? ? ? | CRUX IV | SINOVATION | 华天软件 | 中国 |
Windows,Linux, | CAD, CAM, CAE | Overdrive | 中望3D | 中望软件 | 中国 |
Windows | CAD, CAM, CAE | Parasolid & ACIS | CAXA实体设计 | 数码大方 | 中国 |
Windows,Linux, | CAD, CAM, CAE, AEC | C3D | Kompas-3D | ASCON Group | 俄罗斯 |
Windows | CAD, AEC | Open CASCADE | 4MCAD IntelliCAD | 4M S.A | 希腊 |
Windows | MCAD | ACIS / KCM | KeyCreator | Kubotek3D | 美国 |
Windows | AEC | C3D | KOMPAS-Builder | ASCON Group | 俄罗斯 |
Windows | CAD | C3D + K3 kernel | K3-Furniture | Center GeoS | 俄罗斯 |
Windows | AEC | C3D | Renga Architecture?? ? ? ? | ASCON Group | 俄罗斯 |
iPad | MCAD | Parasolid | Shapr3D | Shapr3D zrt. | 匈牙利 |
Android | MCAD | C3D | KOMPAS:24 | ASCON Group | 俄罗斯 |
Windows | CAD,BIM | C3D/ACIS | NanoCAD | NanoSoft | 俄罗斯 |
Windows | MCAD | Parasolid | T-FLEX | Top Systems | 俄罗斯 |
Windows | CAM | C3D | TECHTRAN | NIP-Informatic | 俄罗斯 |
Windows | CAD | C3D | PASSAT | NIP-Informatic | 俄罗斯 |
Windows, Mac?? ? ? ? | CAD, CAM | Own Kernel | Rhinoceros 3D | Robert McNeel and Associates | 美国 |
Windows | CAD | C3D | ESPRIT Extra CAD | LO CNITI, Rubius | 俄罗斯 |
Windows | CAD | C3D | BAZIS System | BAZIS Center | 俄罗斯 |
Windows | CAE | Parasolid | Adams | MSC Software | 美国 |
Windows | CAD, CAM, CAPP | C3D,ACIS | ADEM | ADEM Group | 俄罗斯 |
Windows | CAE | Parasolid | ADINA Modeler | ADINA R&D Inc. | 美国 |
Windows | CAD, AEC, GIS | ShapeManager | AutoCAD | Autodesk | 美国 |
Windows | MCAD | ShapeManager?? ? ? ? | Inventor | Autodesk | 美国 |
Windows, Mac | Solid Modeler & Machiner | ShapeManager | Fusion360 | Autodesk | 美国 |
Windows, Linux, Mac | MCAD, AEC | ACIS | BricsCAD | Bricsys | 瑞典 |
Windows, Mac | CAD, CAM, CAE | Parasolid | Siemens NX | Siemens PLM Software | 德国 |
Windows | MCAD | Parasolid | SolidFace | SolidFace | 巴西 |
Windows | MCAD | Parasolid,ACIS | Solid Edge | Siemens PLM Software | 德国 |
Windows | MCAD | Parasolid | SolidWorks | Dassault Systèmes | 法国 |
Windows | AEC | Parasolid,ACIS | MicroStation | Bentley Systems | 美国 |
Windows, Unix?? ? ? ? | CAD, CAM, CAE, AEC | CGM,ACIS | CATIA | Dassault Systèmes | 法国 |
Windows | Solid Modeler | GRANITE | Creo | Parametric Technology Corporation | 美国 |
SaaS | Solid Modeler | Parasolid | Onshape | PTC | 美国 |
Windows, SaaS | Solid Modeler | Parasolid ,ACIS | IRONCAD | 数码大方 | 中国 |
Windows | CAD | Own Kernel | 浩辰CAD | 浩辰软件 | 中国 |
Windows, Mac | AEC, BIM | Own Kernel | ArchiCAD | Graphisoft | 匈牙利 |
Windows | MCAD | ACIS | Cimatron | 3D Systems (Cimatron Ltd.) | 以色列 |
Windows?? ? ? ? | MCAD | ACIS | SpaceClaim | ANSYS Inc | 美国 |
Windows | MCAD | European Solid Modeller ESM | HiCAD | ISD Group | 德国 |
Mac, Windows | MCAD | ACIS | Cobalt, Xenon, Argon | Ashlar | 美国 |
Windows, Linux | CAD Optimization | Own Kernel | CAESES | Friendship Systems | 德国 |
Windows, macOS, Linux, | CAD | Open Cascade, Coin3D, | FreeCAD | FreeCAD | ? ? ? ? ? ? ? ? ?? |
Windows, macOS, Linux, iOS, Android | CAD, AEC, BIM | Geometry Kernel | IFCEngine, STEPEngine | RDF | 保加利亚 |
Windows | BIM | ACIS | REVIT | Autodesk | 美国 |
? ? ? ? ? ? ? ? ???? ? ? ? | ? ? ? ? ? ? ? ? ?? | ? ? ? ? ? ? ? ? ?? | ? ? ? ? ? ? ? ? ?? | ? ? ? ? ? ? ? ? ?? | ? ? ? ? ? ? ? ? ?? |
Windows,LINUX | CAD | Own Kernel | CAXA电子图板 | 数码大方 | 中国 |
Windows,LINUX | CAD | ACIS | 中望CAD | 中望软件 | 中国 |
Windows | CAD,CAM | Own Kernel,OCC | JDPaint,ArtForm,SurfMill | 精雕集团 | 中国 |
Windows | CAM | OCC | UltraCAM | 千机智能 | 中国 |
? ? ? ? ??
提升性能。早期的内核数据结构设计并没有考虑到硬件的发展,默认按照当时的单CPU单核设计。而现在多CPU多核,分布式,GPU计算已经相当成熟。多线程已经在使用,但也只是基于一定接口使用,由于历史原因,这块商业和开源内核底层改进进度都比较缓慢。现在除了工业设计仿真软件外,很多业务场景对实时性都提出了很高要求,目前这一块几何内核还达不到要求。纵观近十年技术领域的发展,相比于人工智能,机器视觉,大数据,互联网的发展速度,几何内核的更新和发展速度可以算得上是龟速了。
进一步轻量化。PS提出的Convergent Modeling的初衷就在于高效的处理三维打印数据,因为三维打印数据为海量三角面片,用纯BREP结构表示性能低下。而CM正是通过简化BREP数据和操作,并融合面片数据,来处理这个矛盾。根据需求进一步简化或者轻量化数据结构,类似于“外科手术”式精准操作。? ?
BREP增强。BREP是目前主流三维几何内核的基础数据结构,但这并不意味着BREP等于三维几何内核数据结构。就如同CAD不等于AutoCAD,CAE不等同于ANSYS。BREP的优缺点之前做过描述,参见深入剖析三维几何内核(3)–基础数据结构。BREP无法表达出三维几何内部的结构,如果要用BREP对内部数据进一步细化,需要将原有结构拆分,或者建立虚拟拓扑。而基于几何特征的一些算法(比如MAR中轴变换)或者类似体渲染的技术可以有效弥补这种不足。未来有可能将这些技术和方法融合到BREP结构中,在更小的维度实现对三维实体的控制。
业务融合。利用商用内核开发通用CAD软件其实性价比已经非常低,风险也很大,除非能在应用层整出点花样出来。通用三维几何内核提供了丰富的功能,但一般的仿真软件实际上能用得上的只有一小部分,性价比很低。所以未来如果开发几何内核可以和业务融合,根据业务情况建立更符合实际的内核结构和功能。早期的CFD前处理软件就是一个很好的例子。因为CFD通常需要处理的是表面数据,所以不需要基于BREP的结构,一般的CFD前处理器会自己构建一套几何数据系统。
人工智能。几何内核在拓扑跟踪,特征模式识别,对象计算,参数建模,约束求解方面是有一定的固定模式的,AI是可以发挥作用的。
参考文献
1、https://zhuanlan.zhihu.com/p/454466612
2、https://www.caxkernel.com/5426.html
? ? ? ?