本号按:为我国工业软件的发展,本号发布“我国工业软件基础建设”系列文章。讨论标准建设、理论建设、计算工具、几何内核开发等工业软件基础建设中的一些问题。这些文章是基于作者数十年从事CAD/CG和几何计算的科学研究、理论探索、软件开发和教学实践等的长期积累形成的一些思考。鉴于CAD是工业软件的杰出代表,也是作者主持过CAD软件开发和推广应用,系列文章将主要基于CAD软件的基础建设开展。欢迎同行、读者提出宝贵意见。
这是“我国工业软件基础建设”系列文章的第二篇——CAD的十大挑战。
CAD十大挑战
——“我国工业软件基础建设”系列之二
2005年,LesA. Piegl(美国佛罗里达州坦帕市南佛罗里达大学计算机科学与工程系教授,CAD'xx 年度会议的总主席)发表了《Ten challenges in computer-aided design》的论文[1] ,提出了CAD的十大挑战(表1)。
Ten challenges in computer-aided design | CAD十大挑战 |
Challenge no. 1: robustness | 挑战 1:稳健性 |
Challenge no. 2: geometric uncertainties | 挑战 2:几何不确定性 |
Challenge no. 3: error handling | 挑战 3:错误处理 |
Challenge no. 4: CAD engines | 挑战 4:CAD 引擎 |
Challenge no. 5: 3D | 挑战 5:3D |
Challenge no. 6: from idea to design | 挑战 6:从构思到设计 |
Challenge no. 7: CAD for the disabled | 挑战 7:为残疾人的CAD |
Challenge no. 8: internet CAD | 挑战 8:互联网 CAD |
Challenge no. 9: CAD education | 挑战 9:CAD 教育 |
Challenge no. 10: CAD theory | 挑战 10:CAD 理论 |
表2 DavidJ. Kasik等提出的CAD十大挑战
Ten CAD challenges | CAD十大挑战 |
Challenge no. 1: Shape control | 挑战1:形状控制 |
Challenge no.2: Interoperability | 挑战2:互操作性 |
Challenge no.3:Design exploration | 挑战3:设计探索 |
Challenge no.4:Reversing engineering | 挑战4:逆向工程 |
Challenge no. 5: Everything in its place | 挑战5:各司其职 |
Challenge no.6: What we do | 挑战6:我们的工作 |
Challenge no.7:Understanding vast quantities of data | 挑战7:理解大量数据 |
Challenge no.8:Appropriate designs for other uses and users | 挑战8:针对其他用途和用户的适当设计 |
Challenge no.9: Retrieving data years late | 挑战9:多年后的数据检索 |
Challenge no.10: Limited by the speed of light | 挑战10:光速的限制 |
可能与作者的身份有关或是各人所从事的工作性质不同,两文所提挑战的侧重点不一样。前者偏重于从理论上挑战问题的要求。后者则更偏重于从应用角度给出CAD要解决的问题。
为什么都会讨论CAD的挑战问题?因为CAD是工业软件的代表,CAD的关键问题解决了,工业软件的发展也就顺了。
本文提出一个国产版的《CAD的十大挑战》,主要是基于几何的。因为CAD的基础和核心是几何问题。
CAD的处理对象是“形”,包括“形体”和“形状”。CAD在计算机上以形模拟现实世界,构建虚拟世界,先造型而后得图。
表示(模型)
表现(显示)
计算(求交)
构造(造型)
回顾我国CAD系统的研发历史及我国学者取得的成果与基础。面向新时期,需要明晰当今工业软件的新需求、新瓶颈、新技术,去提炼共性问题、解决关键问题、探索基础理论、构建开发工具、提供软件服务,寻求从根源上解决工业软件几何引擎等核心算法的理论、方法和技术问题,突破工业软件的根技术。
针对图形图像已经成为新的计算源、计算对象和计算结果的新环境,需要研究“几何计算”问题。“形计算”【4-7】就是基于“几何问题几何化”的思想提出来的一种几何计算理论和计算机制,它将向量几何、画法几何、高等代数、算法理论等融合起来,在几何定义、几何表示、几何相交、几何重构以及几何变换等方面,充分发挥人的空间思维特长,将繁复的代数运算尽可能地分离出来,让计算机去做,寻求一种解的表述与传递的新方法。从理论上提出了一种解决重点、重线和重面等几何奇异问题的完整方案。
因此,如果基于形计算更新工业软件的计算基础,将为使工业软件的核心技术,以及几何内核的关键算法在稳定性、简单化和计算效率上有大提升。
基于以上对CAD本质的认知,正视现有CAD系统亟待解决的关键问题和发展瓶颈,面向CAD系统的发展趋势,本文提炼出CAD的十大基础问题。阐述CAD的十大挑战,也适当给出一些解决问题的思路和方案。
挑战一、几何定义 | 挑战六、工程应用 |
挑战二、几何表示 | 挑战七、基础理论 |
挑战三、几何表现 | 挑战八、几何内核 |
挑战四、几何计算 | 挑战九、数据交换 |
挑战五、人机交互 | 挑战十、软件生态 |
1.1 CAD是基于几何的
CAD基于数字化模型,模型是图形之本。
模型由几何描述,由点/线/圆/面等构成基本几何,由曲线曲面建立高级几何。
模型的本质是几何,关键是几何关系。
1.2 许多数学研究成果促进了CAD的发展
应用数学的许多关于几何定义的研究成果促进了CAD的发展。例如
基本几何。一是直线、圆和弧,是形的描述基础,需要简单、严密、通用、……。二是虽然基本几何是简单的,但他们组合起来(关系)却十分复杂。
曲线曲面。在工程上的定义与应用,曲线曲面的求交、拼接等,这要求比较高的数学基础。
几何关系。几何约束、几何重构(造型)等是CAD的核心算法,“核心”在几何关系处理。
1.3 曲线曲面
模拟客观世界、构造虚拟世界需要曲线与曲面的支持,简单地说“曲线”“曲面”并不准确。工程上,曲线曲面分为两大类,设计型和拟合型。
设计型,设计人员对其所设计的曲线/曲面并无定量的概念,而是在设计过程中即兴发挥。Bezir曲线是典型的设计型曲线,它的性质是“表示”性的,典型应用是外形设计,例如设计汽车外形。特点是曲线不通过控制点。
拟合型:对已经存在的离散点列、点云构造出尽可能光滑的曲线或曲面,用以直观地反映出物体的实验特性、变化规律和趋势等。拟合曲线、拟合曲面的主要工作是如何“忠实地”反映事物的本来面目、变化规律和趋势,偏重于对已有几何的表现,属于“输出”性质。
设计型曲线,曲线不通过控制点 | 拟合型曲线,曲线通过控制点 |
设计型曲线在汽车外形设计中的应用 www.nipic.com | ![]() |
拟合型曲线是一种试图对已有曲线的客观“表述”问题,这个问题可以这样来叙述:
1)给定平面上一组有序离散点列要求连出适当的曲线通过这些点并使曲线尽量保持光顺,这是曲线拟合问题。
2)用一些简单的图元(如直线、圆弧等)去逼近已经建立的光顺曲线,这是逼近问题。
它们是坐标不变的。因此,在进行平移和旋转变换时,对直线段只是作端点的平移和旋转;对圆弧只是作圆弧段首末点和圆心的相应变换。
曲线求交问题可转化为直线与直线、直线与圆弧、圆弧与圆弧的求交,不需要反复迭代的过程,使求交算法规范化。
在计算曲线长度、图形面积和重心等时可化为非常简单的运算。
便于图形处理的标准化、系统化。
适宜于数控绘图机、切割机和显示系统等硬件制造。
隔行如隔山。数学家们对两曲线/面的相交研究并不都是在CAD中是合适的。数学上的求交目标很单一:求出两曲线/面的交点/线即可,求解方程、近似逼近、插值求交各种方法都行。CAD的求交不单纯是“求交”,它更对“交点/线”的“性质”感兴趣,因为在此处,将影响几何模型的重构。因此,化成基本几何间的求交往往是有效的。
1.5 一些数学问题仍在困扰CAD
CAD的一些数学问题一直是数学界研究的课题。
解决曲面求交的水密性问题
传统NUBSS曲面的“脏几何”问题。
代数几何理论证明了NURBS裁剪导致的缝隙无法避免。
要解决一个问题,先要表述它!
计算的本质是将一种数据结构转换成另一种数据结构。
2.1 CAD数据模型标准最重要的是解决“表示”问题
编制所谓“CAD数据模型和格式标准”,先解决“表示”问题:基本几何、曲线曲面、几何模型、工程模型、应用模型、变换模型、显示模型和零域模型等。宏观上,是几何模型、工程模型、应用模型三大类,其中,几何模型是基础。表述这些模型的需要从数学(几何)层面,从较高的抽象角度,唯一的、决定性的去表述几何元素、几何形体。
2.2 强调几何方向在模型表示中的作用
通过几何方向表示外边界和内孔 | 点在边界内外的局部判别 |
![]() 交点实际上有“两个” | ![]() |
|
2.3 复杂平面形体与曲面形体的统一表述问题并未解决
表达统一:如何用统一的数据结构,表达0维(点云)、1维(线框)、2维(图形)、3维(实体)模型,以及离散模型(Mesh)。
处理统一:不同维度及类型的模型,能否在统一的框架下处理?
Breps 模型的若干表述 |
CAD操作过程依赖于几何(模型)在屏幕上的显示。
CAD由计算支撑!
4.1 计算的挑战来自多方原因
几何空间(3D)与计算空间(Linear)的不一致,
思维空间(3D)与实施空间(2D或Linear)的不一致。
【形→数】→【数计算】→【数→形】
这不符合人的思维习惯!从三维形到一维的数计算,空间的形被直接跨越到一维的数计算,形的关系和变化难以完备地获得、理解和表达。人的思维被强制地用于去适应这种转换上,空间思维优势就难以发挥。数学应发生于幕后,起关键作用的是人,人的思维、人的逻辑。
2)计算工具
二进制的数近似表示机制下,却要求精确计算。
用于计算的计算工具并不理想。计算机的计算依赖于Johnvon Neumann建立的二进制数制,这是一种有误差的表示与计算。计算机表述的几何与数学上的几何是不一致的。代数为主的计算是一个线性处理过程,是一种不可直观理解的计算。特别是在碰到几何奇异的情况时,算法的大量代码被扩展到去处理那些退化的情况了,甚至于使得算法的性质也被改变了。
3)关系计算
重构几何关系重于(难于)几何求交得到几何参数
平面上5个点,可以形成一个五边形,也可以组成一个五角星,变成两个完全不同的图形,关键在于5个点之间的连接关系不同。而一个几何点位置的(非极限)改变,通常不影响图形的实质性,看上去还是五角形和五边星。
构建一个模型或图形的难点在于如何根据参与运算的那些源去重构一个几何关系。几何引擎、几何约束求解器等CAD的核心算法的难度就在于几何关系的重构。
两个图形,同样两个交点,因几何关系的不同组合得到布尔运算的不同结果
4)稳定性
算法的主要考量是计算稳定性而不是计算速度。
算法的主要考量是计算的稳定性而不是计算速度。现在的算法研究常出现两个偏向, 一是只偏重速度而忽视稳定性(robustness),偏重速度的研究方法只是去减少浮点运算的次数,这是令人担心的。 二是采用一些大规模的、没有理论分析的随机测试去验证算法的稳定性。这很难检测到影响算法的特殊状况。一个不稳定的算法,速度最快也只能是南辕北辙。
代数计算的对象是“数”,现在,计算的对象有所改变,需要引入新的计算方法和计算机制。
模型是有界的,不是直线而是线段、不是(无限)平面而是(有界)多边形。
模型的有界造成几何间的几何奇异(共点、共线、共面)。
几何奇异是几何计算不稳定性的关键原因。
解决几何奇异问题是几何计算的一个重大难题。
一是在形的表述和几何关系中出现几何奇异,是正常现象;
二是几何奇异对几何计算稳定性的冲击是根本性的。
从类型和层次上解决几何计算稳定性,可以分为科学问题和工程问题两个方面,制定相应的对策。
科学问题 | 怎样表示一个几何? 什么是在几何的“共、上、内、外”? 怎样定义及选择一个解? | |
如何判断这是一个奇异? 如何处理一个已知奇异? | ||
工程问题 | 怎样叫在几何的“共、上、内、外”? 怎样群举几何奇异? | |
如何设定满足工程应用的零域? 如何解决连续实数与计算机中离散浮点数近似表示? |
数学主要发生于幕后,关键是人:人的思维、人的逻辑。
CAD对外有三大部分:
交互是输入的重要手段,交互也是系统应用好坏的关键。
软件设计从认识交互开始,从构造菜单树启动。交互操作包括直接对屏幕上的图元进行定义、修改、删除、移动、复 制、陈列、旋转和比例等各种操作。交互系统设计的先期工作就是构造一颗菜单树,它体现了软件的总体结构和功能框架。交互界面设计的好坏影响系统使用的方便性和应用的广泛性。
人机交互技术通常是以WIMP为特征的图形用户界面:
W(Window)、I(Icon)、M(Menu)、P(PointingDevices)。
人机交互需要考虑功能性、易用性、可靠性、一致性、简单性和开放性。
工业软件的属性是“工业”,包含工业知识、工业技术,工程理论、以及工程特征、工程性质等等。早期的设计是基于工程制图的,画法几何是它的理论基础。
CAD的功能依赖于工程需求,源于工程,用于工程。支持工程设计意图、思想与方案的快速准确表达。CAD基于工程应用而开发,也是在强大的工程应用中发展的。如果没有强大的应用功能,或者工程应用达不到某一个高度,软件不可能推广和应用。
理论化——计算基础。涉及数学、计算机、物理等多学科。
工程化——应用基础。涉及工程、设计、制造等众多学科。
CAD有复杂的架构、浩瀚的内容,需要坚实的理论支持,涉及数学、计算机、物理等多学科,尤其数学工作者的参与。
理论与工程,各司其责。针对理论和知识的多学科交叉及算法源的多样性,要处理好多学科交叉,尽可能分离理论部分和工程化部分,使理论、方法、技术等多学科的知识都能相对“独立”地运用,淋漓极致的发挥各类参与人员特长。
统一规划,分步实施。搞好总体层次设计,精细规划接口,坚实基础、攻克核心、构建系统、服务应用等各层次能够有相对独立的分工。
基础研究足够基础,应用研究足够应用,工业软件的大厦才稳固。
一图胜千言,社会已经进入数字化时代,这个时代的特征是世界图形/图像时代。它的主要认知方式是视觉形象方式,这是一种全球化的联络模式,语言的阻隔被打破,文字的垄断被消解。传统文学借助文本对人世的间接性和想象性的体会、感悟转变为借助图形/图像对现实的记录、展示和消费。
理论是基础。这里不讲设计本身的理论,而从几何、表示、计算与几何核心算法的角度讨论CAD理论:满足图形图像已成为新的计算对象与计算目标的新需求;满足几何计算的特殊性、精确性、鲁棒性和可扩展性的需要。
因此,需要探索一种新机制,从几何与计算两个基本要素,揭示形、图、几何与几何计算之本质。
基于“几何问题几何化”的思想,通过引入新的计算单元和计算策略,定义几何元素、描述几何关系、简化求交计算,特别是在几何层面上考虑几何奇异问题,构建了一套解决几何奇异问题的完整理论和方法,支持几何核心问题的解决,建立统一、稳定的几何化求解机制。
从处理对象、几何、计算与几何核心算法的角度讨论几何计算理论,
满足图形图像已成为新的计算对象与计算目标的新需求。
满足几何计算的特殊性、精确性、鲁棒性和可扩展性的需要。
一种新的基于几何的计算理论和计算机制。
基于“几何问题几何化”的思想,从几何与计算两个基本要素,揭示图与形,几何与几何计算的本质与关系。
在几何层面上考虑几何奇异问题,支持几何核心问题的解决。
形计算架构 |
提高几何计算的稳定性是几何内核的关键问题。
造成计算不稳定的缘由分为源于数字误差(代数角度的计算误差)的不稳定和源于几何关系(几何角度的几何奇异)的不稳定两个方面。
数字误差又可分为原始输入数据误差和计算机的表示误差与计算误差两方面。
几何奇异又分为判定是否几何奇异(未知问题变成已知问题)与处理几何奇异问题(解决一个已知问题)两个方面。
形计算理论支持下的,一个简洁、统一的处理因计算机数字计算误差及几何位置的奇异两者引起的几何计算的不稳定性问题全面解决方案。
保证几何的精准计算与稳定计算。
几何奇异处理框架 |
以几何学家的思路去考虑问题——宏观而慎密;
以代数学家的方式去解决问题——严格而有序。
1)计算架构更合理。实现 “三维思维,二维图解,一维计算”
2)算法设计更宏观。“从定性、直观的角度去思考,以定量、有序的方式去求解”的过程,达到“形思考、数计算”的境界。
3)几何关系更清晰。主要不是研究数字关系,而是更清晰的几何关系。
4)设计方式更简单。几何基构建了几何解的基础
5)算法运行更稳定。几何基的高度稳定性也使几何计算整体的稳定性上升。
基于几何与计算两个要素,攻克以几何内核为代表的几何根技术。包括:
1)图形布尔运算
算法本质:对两个运算对象进行拓扑关系的重组。
关键认知:拓扑关系的改变在两个实体的交界处!
基于交点几何数的布尔运算算法:从某一个交点出发搜索,对并(交、差)运算,若交点几何数为负(正),则转向另一环,直至回到该搜索出发时的首交点,就得到一个新边界(环)。一旦所有交点均被遍历,算法结束。
2)三维布尔运算
利用形计算的降维计算方法,充分利用二维布尔运算的策略与结果。逻辑变得简洁,几何求交与拓扑关系重构是同时进行的。
3)三维几何引擎
1)形体表述及几何模型构建
8.2 几何约束求解器
1)问题表述
问题性质:几何约束满足问题(Geometric Constraint Satisfaction Problem——GCSP)。
给定一组几何元素和一组描述几何元素间关系的约束条件,求解这组几何元素满足这组约束。
工作本质:在某些几何参数改变时,进行约束下形体的整体重构。
算法输出:把未知元素转化成已知元素。
认识:几何约束实际上包含了“几何约束”和“工程约束”两者:
约束 | |||
直线水平、直线铅垂、两线平行、线圆相切、各种对称关系等 | |||
工程约束 | 设计变量间的约束关系、几何间的连接关系等 |
几何约束:几何元素之间固有的约束关系,它直接反映了几何体的形状和位置关系。
工程约束:外部施加的设计变量之间的约束关系,它反映了产品在工程语义上的设计要求。
2)总体策略
所谓几何约束求解就是几何的改变要满足“几何间的约束”条件。实际上所谓“几何约束”包括几何关系的约束及几何尺寸的约束,不管几何如何改变,都能保持原给出的这些约束。
用代数方程表示这些约束,就是现在常用的求解线性方程组的方法。
从几何相切、相交的角度看,采用基于几何的约束表示、识别与求解策略。
解决策略:分而治之——将几何约束求解分成:完全约束、欠约束和过约束等3类。先解决完全约束下的几何约束的正确求解是基础。
3)欠约束与过约束
先看两个例子。
例1 几何方向引起的问题
几何约束求解器DCM中出现的错误现象,这显然是不想得到的求解结果。
一个简单的三角形欠约束例子。
4)非完全约束下的求解问题
更明晰欠约束与过约束时,补充约束和剔除约束的规则。
给出相应的欠约束或过约束提示;
给出建议的处理策略;
接受用户的加或减约束的指令;
如果用户有指令,按用户给出的加或减约束求解,否则按系统的处理规则求解。
1)草图校正;
7)过约束之解决冲突;
8.3 渲染引擎
1)充分关注客户体验,通过沉浸式渲染,提供丰富的客户体验;
2)解决几何到图形,几何到图像的显示问题;
3)兼具2D图形渲染和3D图形渲染的功能;
计算的本质是将一种数据结构转换成另一种数据结构。
9.1 在CAD内部
要有一个好的模型,保证运行高速、有效稳定。
每个CAD系统有它自己表达几何形体的模型,这样的模型可能不止一个。
1)构造表示Constructive Solid Geometry,CSG | 2)边界表示 Boundary Representation,Breps |
3)分解表示 | 4)三角化表示 |
9.2 在不同CAD系统的数据之间
要解决异构几何信息与非几何信息间的有效转换,达到信息共享。
两个系统的模型会有不同的数学表达式(如曲面)由不同的逼近表示(如三角面片)。
几何关系表示的差别,更会造成同一模型在两个系统间转换以后出现不可避免的误差,例如在A系统下两个圆柱面是相切的,转换以后,变成“干涉”了。
像几何间出现“几何奇异”是正常现状一样,难度在于如何去认定这些“合理”的差异又是“正常”的?
新时期、新需求、新技术,集中力量大力发展我国工业软件的基础建设,需要突破现有的计算瓶颈,构建支撑我国制造强国战略下的新一代工业软件系统的计算基础,建立共研、共用、共推广的持续发展的工业软件发展生态系统。
工业软件处理的对象是“几何”,理论是“几何学”;方法是“几何问题几何化”;计算机制是“形计算” 。
软件生态是从软件系统整体和软件的发展的角度考虑的问题。一般需要下列条件与环境:
1)一个好的理论——形计算
“形计算”是一个几何问题几何化中的几何计算理论与计算机制,辅助现在广泛使用的“数计算”机制。特别在几何表示、几何关系重构、几何奇异处理,以及几何变换、降维计算等方面,在几何计算、几何引擎以及几何约束求解等方面有独特的优势。为工业软件提供了简洁、稳定和高效的几何计算理论,使几何计算简洁、稳定和高效。
需要将形计算行之有效的方法和技术在工业软件中发扬光大,突破计算基础瓶颈,建立我国特色的工业软件基础计算平台,协助我国工业软件的自立自强、高速稳定的发展。
要坚持两条腿走路,加强基础、优化架构、扩展功能、提升性能、增加算力;要基于形计算理论,建设具有我国特色的工业软件计算基础平台,保证几何计算以及CAD核心算法能够简洁、稳定、高效的运行。
建立强有力的几何内核:
降低它的使用门槛,不只是算法的组织和调用;
编写使用说明书、开发指导书等应用说明;
编写功能说明书、数据结构设计书等设计说明等;
开展使用的教学和培训;
有一个相对权威的、对CAD有全局认知的核心骨干;
有一个规划良好的、高素质开发队伍和测试团队;
有一批相对稳定的应用队伍。
建立一个良好的开发和应用服务机制,认识用户是工业软件发展中的一支重要力量。将基于形计算开发的数百个基础算法作适应性的修改,构建基于形计算的计算工具箱,作为工业软件的基础计算平台。
开展以咨询服务、计算服务、开发服务、数据服务等方面的服务工作,吸收各相关领域专家,跨领域人才,充分研讨,构建广泛的用户群,支持用户开发不同的应用软件;
构建共研、共用、共推广的持续发展的工业软件发展生态系统。
几何:CAD对象是形和图,图源于形而展现形,基础是几何。
表示:单个几何的表示,以及多个几何元之间的关系。
表现:几何(模型)在屏幕上的显示(表现)。
计算:几何关系的重构,几何奇异的认定与处理,计算稳定性。
交互:让人做人擅长做的事,让计算机做计算机擅长的事。
工程:CAD来自工程,服务工程。
理论:基于几何问题几何化的形计算理论
内核:打磨一把几何之剑,攻克CAD内核,构筑牢固的CAD基石
交换:与大部分流行软件系统数据的精准交换
生态:一批志士、一批团队、一批基地;一个理论、一个平台、一批教材。
2024年6月25日
参考文献
【1】Les A. Piegl. Tenchallenges in computer-aided design. Computer-Aided Design 37 (2005) 461–470
【2】David J. Kasik ,William Buxton,DavidR. Ferguson. Ten cad challenges. IEEE Computer Graphics & Applications(2005). 25(2), 81-92.
【3】何援军,国产CAD软件重启之路[J],CIMS封面文章,计算机集成制造系统第27卷第11期2021年11月
【4】何援军,几何计算及其理论研究[J],上海交通大学学报,2010年3月,第44卷第3期,PP407-412
【5】何援军,对几何计算的一些思考[J],上海交通大学学报,2012年2月,第46卷第2期,PP0167-0171.
【6】何援军,几何计算[M],北京:高等教育出版社,2013年3月
【7】何援军,一种基于几何的形计算机制[J],图学学报,2015年第3期,2015年5月,PP1-10