文章来自于翻译,原文在:https://isicad.net/articles.php?article_num=14805

当1985年前苏联的移民、原列宁格勒大学教授塞缪尔·格斯伯格在美国创办了参数化技术公司(PTC),以开发改变了MCAD(机械计算机辅助设计软件)市场的Pro/Engineer系统时,他能想象到基于参数特性的建模会在行业中占主导地位长达四分之一个世纪,并且所有领先的MCAD系统(如CATIA和NX,以及代表Windows一代系统的SolidWorks、Inventor和Solid Edge)会成为Pro/Engineer的意识形态后继者吗?他能猜到PTC在取得难以置信的商业成功后,会出人意料地决定牺牲他们的“神圣不可侵犯的”的Pro/Engineer品牌吗?

分析师有理由相信,PTC的这个决定与其近期(2007年)收购了倡导另一种方法——直接建模的CoCreate有直接关系。新的品牌(Creo)和新的共享相同数据格式的应用程序(Creo Parametric和Creo Direct)反映了PTC对MCAD市场现状的看法——现在它没有一种主导技术,所以“青铜色”的品牌(Pro/Engineer)不再需要了。

在命名其新的应用程序时,PTC强调实体建模有两种方法——参数化和直接建模,每一种都有自己的市场定位。似乎发展第二种方法对CoCreate来说是一个明确的胜利。

CoCreate

SolidDesigner

在PTC四年前以2.5亿美元买下CoCreate之前,很少有人听说过它。那时候CoCreate有280名员工,满足了5000名客户(包括富士通、惠普、利勃海尔、NEC、松下、爱普生等知名公司)的需求,创造了8000万美元的年收入。尽管这些数据看起来非常普通,但CoCreate拥有一份非常引人注目的成绩单,这都要归功于它在惠普机械设计部门的根基。正是这个部门在1992年开发了一种新颖的3D建模系统——SolidDesigner。与当时其他知名的MCAD系统不同,SolidDesigner基于动态建模,作为历史建模的替代品。

在此,我需要稍微离开主题,以澄清一些与实体建模相关的术语,因为在以上的文本中,我已经使用了四个不同的术语:参数建模、直接建模、动态建模和历史建模。从逻辑上思考,参数模型是一个带有参数的几何模型,通过改变参数可以获得不同的设计方案。参数建模是CAD的基本概念,它大大降低了对项目进行修改、创建新的修改等操作的成本。

然而,由于最初的参数模型基于设计历史,这两个完全不同的概念之间就形成了相当稳定的联系。的确,设计历史(从零开始构造几何体形状所使用的操作记录)可以很容易地转化为参数模型,只需把一组参数与每个操作关联起来就可以了。这样的参数示例包括二维轮廓中的实体类型和坐标,以及它在3D空间中的挤出高度,或者是孔的直径和深度。通过改变他们的值和重新生成设计历史,就可以创建相同几何体的不同版本。塞缪尔·格斯伯格在Pro/Engineer中使用的参数特性形成了一棵树,这棵树是根据设计历史自动构建的。后来,这种方法几乎在所有的MCAD系统中都被复制了。

尽管这种基于历史的参数化方法简单且通用,但它也有一些严重的缺点。最重要的是它对于客户来说过于复杂,缺乏透明度。要改变几何形状,必须在树中找到适当的特性,并弄清楚应该改变哪个特定的参数。用户界面的基本原则——WYSIWYG(所见即所得)在这里并不适用,因为你在编辑一个特性参数的文本或数值,结果就会改变几何体形状。
众所周知,在大型几何模型中,设计历史可能相当长,再生可能花费大量时间,这使得MCAD用户处于等待的状态,并迫使他们白白浪费时间和精力。

基于历史的参数化的另一个臭名昭著的缺点是,决定哪些模型参数可以被更改的决策必须在创建模型的时候就做出。如果后来由于某种原因你需要改变树中不存在的某个特定参数,解决方案并不会很简单:要么从头开始重做模型,要么尝试使用复杂的优化算法,通过改变定义参数(在树中呈现出来的参数)的值来接近所需参数的值。

这个缺点反映了程序化参数化方法的总体问题,历史再生法就是这种方法的一种。在程序化方法下,你需要预先把所有模型参数划分为输入参数和输出参数。只有第一组参数可以改变,而输出参数的数值则按照预定的程序、公式、历史等进行计算。

最后,基于历史的参数化的另一个关键问题是在处理多CAD和遗留数据时无法使用这项技术。设计历史在从一个CAD格式转换到另一个格式时通常会丢失。只有边界模型被翻译过来,这种情况下被称为“哑巴”几何图形。有些昂贵的翻译器可以将一个系统的特性转换到另一个系统,但这并非灵丹妙药,因为每个系统都有各自的特性混合,原则上不可能进行精确的翻译。关于在“哑巴”几何形状中自动识别特性也是同样的说法:它只能在最简单的情况下工作,并未解决总体问题。

上述所有基于历史的参数化的缺点在动态建模系统——SolidDesigner中得到了成功的克服,首次为用户提供了在3D空间中直接操作几何模型元素的工具。这主要要归功于ACIS——一种实体建模内核,惠普是1989年第一个从Spatial获得其许可的公司。

ACIS通过边界表示法(BRep)对实体几何进行建模,并实现了对实体体(形成形状特性的基础)的布尔运算。布尔运算在全局意义上说,两个体的并集、交集或差集都需要进行与其完整边界结构相关的计算密集操作(这就是基于历史的参数系统的生产效率问题)。然而,Spatial在ACIS中也实现了所谓的局部操作;执行这些操作只需要处理体边界的某个局部邻域即可。在许多情况下,局部操作不需要改变模型的拓扑(其面、边、顶点的数量以及它们之间的邻接关系),因此可以非常高效地执行。有关详细信息,请参阅1995年出版的《惠普PE/SolidDesigner: 三维计算机辅助设计的动态建模》。

惠普的动态建模使用户可以选择模型中的一个或几个面,并对它们进行平移或旋转。SolidDesigner帮助用户自动选择形成特性(包括兜、圆角、孔等)的相邻面。SolidDesigner还允许从一个地方复制特性到另一个地方。

参数编辑是通过所谓的驱动值进行的。用户可以在模型中设置一个或几个3D标签,以指定面之间所需的距离和角度,系统会自动依次执行相关的局部操作,以逐步满足这些要求。这些操作并未使用迭代解算器。

1996年,受到其客户的压力,其中许多客户都在开发自己的MCAD系统,惠普将机械设计部门剥离为一个名为CoCreate的子公司,并于2000年将其卖给了投资基金。七年后,CoCreate发现自己处于PTC的控制之下(SolidDesigner的直接后继者现在被称为Creo Elements/Direct,其基础理念在新产品Creo Direct中得以实现,Creo Direct和Creo Parametric正是“即将告别”的Pro/Engineer的重生)。

CoCreate提出的方法被称为“直接建模”(“动态建模”的术语并未得到好的评价)。直接建模允许修改3D几何图形,而不考虑其历史。我们不应该混淆几何建模的方法(有无树形结构)和编辑方法,正如Paul Hamilton在一系列名为“编辑3D几何图形”的出版物中所正确指出的那样(Hamilton自1977年以来在惠普工作,然后和其他同事一起转到CoCreate,后来转到PTC)。

直接编辑是对一个或几个体面(例如,构成特定形状特性的面)进行平移/旋转/复制/删除的过程。因此,编辑特性的参数或驱动尺寸被称为间接编辑。直接编辑是直接建模系统的特点,而间接编辑在基于历史的系统中存在。然而,SolidDesigner具有这两种类型的编辑。IRONCAD的开发者首次在基于历史的建模中展示了直接编辑。然而,市场在一段时间内并未注意到所有这些成就。

直接建模的再度发现

SpaceClaim

2007年,当PTC宣布与CoCreate的交易,以及由Blake Courter和David Taylor(前PTC员工)创建的同名公司发布了SpaceClaim的第一个版本——一种全新的直接建模系统时,一切都发生了变化。当行业传奇人物Mike Payne成为其CEO时,SpaceClaim在市场上占据了一席之地。作为PTC和SolidWorks的联合创始人,他帮助新公司吸引了严肃的投资者并建立了稳固的客户组合。与TRUMPF(世界上最大的金属切割机制造商)和ANSYS(领先的计算机辅助工程(CAE)解决方案提供商)签订OEM协议是一项真正的成功。因此,SpaceClaim清晰地勾勒出了直接建模可以带来显著利益的两个领域:为CAM(计算机辅助制造)和CAE准备几何模型。概念设计成为第三个领域。

从原则上讲,SpaceClaim并没有提供SolidDesigner没有的任何新东西:相同的内核(ACIS)、“智能”多选体面的相同概念,以及相同的直接和间接编辑操作。然而,由于它是为Windows平台从头开始设计的,所以与CoCreate不同,它看起来非常现代,而且产生了远超过CoCreate的市场噪音:SpaceClaim每年都宣称他们的客户基础增长了三倍(但没有公开具体数字)。

所以,大型供应商们被迫后退。一年后,西门子PLM软件宣布了其同步技术(承认在公司还被命名为Unigraphics时就已经在开发中);2009年,达索系统向世界展示了CATIA V6 LiveShape;而Autodesk展示了其Inventor Fusion技术预览。这些都是直接建模的应用,其格式与同一供应商的基于历史的系统兼容。

由于没有人真正看到LiveShape(互联网上没有那个应用程序能力的全面评价),我只打算讨论西门子和Autodesk的方法。但首先,我想提醒大家我自己的一种称为变分直接建模的方法,我在2007年的论文《Using LEDAS Computational Software Toolkits to Shorten Development Cycle of Variational CAD Systems》中首次提出,在2008年的论文《Variational Direct Modeling: How to Keep Design Intent in History-Free CAD》中更详细地描述。我想提醒大家这一点,因为Autodesk和西门子后来提出的两种方法在概念上与变分直接建模有很多共同点。

变分直接建模

当我谈到参数化的程序化方法的缺点时(主要的缺点是预先将所有参数分为输入和输出),我并没有提到一个长期已知的替代方案-变分建模。在变分建模中,模型的参数连接是以声明方式设置的-通过列出连接模型元素的约束。与过程、公式和设计历史不同,约束是无定向的:它们不确定连接的参数中哪个是输入还是输出。因此,约束可以轻易地在参数之间形成循环依赖(例如,x=2*y和y=x-2),所以需要一个特殊的迭代求解器,可以通过计算所有链接参数的新值来同时解决所有给定的约束。

这样的解算器是众所周知的。一些最早的商业产品是由英国公司D-Cubed(现为西门子PLM软件的一部分)从1980年代末开始开发的2D/3D DCM解算器。现在,他们与俄罗斯LEDAS公司自2001年起开发的LGS 2D/3D在市场上竞争,最近这家公司已经有了新的所有者——Bricsys(比利时)。这类解算器的传统应用领域是2D参数化绘图/草图和3D装配设计/运动学。然而,与高效的实体建模内核结合,变分解算器也可以用来控制以BRep表示的实体几何形状。正是为这个应用领域,我建议使用“变分直接建模”这个术语。

2008年,LEDAS发布了其第一个具有有限功能的面向Google SketchUp的变分直接建模产品;2009年开始为Rhino开发一个更高级的产品(插件的第一个商业版-RhinoWorks于2011年4月发布);并且在2010-2011年签署了开发Bricscad和KOMPAS-3D中类似功能的合同。今天,变分直接建模技术最有效的实现是在Bricscad中,这主要归功于ACIS——构成SolidDesigner和SpaceClaim基础的内核。

开发技术的一个重要部分是可以避免手动指定大量的约束,这会保证保持模型的设计意图。在直接建模系统中,这种意图很容易丧失。例如,如果你试图通过旋转其顶部的上面来编辑一个桌子的3D模型(使桌子顶部倾斜到地面水平),你可能会对结果感到非常烦恼。要正确地修改这样的模型,必须同时旋转桌子顶部的上面、下面和侧面,以保持它们之间的互相平行和垂直。在SolidDesigner和SpaceClaim中,这样的功能是通过使用模式实现的,允许同时选择多个面。然而,对于复杂模型,多选可能效率低下,并且能力大大减弱——与自动约束识别相比。

Bricscad

同步技术

西门子PLM软件公司向世界展示的同步技术,实际上在专家们之前就已经被了解。在他们的书《Parametric and Feature-Based CAD/CAM》中,Jami Shah和Martti Mäntylä描述了定义特性的两种方法-程序化和声明式。在程序化方法中,通用特性是根据一组相关过程预先定义的,即实例化、修改、复制和删除特性、生成特性几何、派生某些参数和验证特性操作的方法。声明式方法的主要特点是系统使用一个非过程化方法来描述特性及其属性。

声明式方法将特性定义与实施分离。这与程序化方法形成明显对比,在程序化方法中,这两者在过程定义中是交织在一起的。为了实现这种分离,特性的几何形状和其他属性可以用基于边界的建模实体(面、边、顶点)之间的关系(约束)来定义。这就产生了所谓的基于约束的特性定义。

例如,一个“挤出形状”可以由形状平面和因其挤出而形成的侧面之间的垂直约束,以及形状平面和顶部(挤出的)面之间的距离约束来定义。这样的基于约束的特性定义使得模型可以直接编辑——在约束下转换体面。在这种情况下,每一次转换都是动态进行的,同时满足定义模型的所有约束。结果是,在每次变换后,约束依然得到满足,这意味着特性仍然符合它们的定义(并且模型的设计意图被保持)。

通过结合Parasolid几何建模内核和3D DCM几何约束求解器的功能,西门子PLM软件的工程师在Solid Edge中实现了所谓的同步(声明式定义的约束特性),为他们的用户提供了选择:要么立即使用同步特征设计他们的模型,要么构建混合模型,树中包含程序化(在西门子技术语言中被命名为有序的)和新的同步特性(参见“同步技术:第三次尝试”)。

结合直接建模与历史树

Autodesk和PTC为他们的用户提供了一种不同的方法,其中直接几何建模在单独的应用中进行(分别是Inventor Fusion和Creo Direct),并且用户在没有访问设计树的情况下执行直接和间接的模型编辑(通过驱动尺寸)。然后,同一模型可以在“经典”的基于历史的应用(Inventor和Creo Parametric)中下载,其中在直接建模系统中对模型作出的更改可以被整合到其设计树中。

在这里,PTC使用了一种相当直接的方法,在设计树的末尾添加了类似于Move和EditRound的伪特性(参见Deelip Menezes的“Creo Explained - Part 5”),而Autodesk则实现了一个专用的Change Manager,它能够将直接编辑操作转化为更改设计树中已存在特性的参数的操作。

有趣的是,Autodesk在Inventor Fusion中(以及在其为DIY市场改名的版本Autodesk 123D中),也实现了一个非常简单的约束求解器,这使这些应用在一定程度上类似于LEDAS正在开发的应用,除了Autodesk的产品没有自动约束识别模块,可能的约束集合(包括它们的参数类型的所有变化)显然较差。然而,毫无疑问,随着新版本的发布,这个功能将会不断进行建设。

编辑导入的几何形状

西门子、Autodesk和PTC的方法首先是为了给他们的经典MCAD应用的用户提供使用直接建模的可能性。可能真的对SpaceClaim的努力和围绕它的过度炒作感到担忧,这些知名的供应商主要是在解决保留自己的客户基础的任务。实际上,他们已经告诉他们的用户:“你想要直接建模?你已经得到了!现在你可以迅速、方便、明显地(不比SpaceClaim差)编辑自己的模型,甚至将你的改变整合到设计历史中(在SpaceClaim中是不可能的)”。

让我们回到历史建模的另一个问题,这是在文档的开始提到的:使用多CAD和遗留数据的工作。毫无疑问,这种数据的重要性是不可否认的:根据Aberdeen Research最近的一项调查,82%的设计部门的应答者使用三种以上的CAD数据格式,42%的人使用超过五种格式。原因是很客观的:与OEM供应商紧密合作的必要性,设计产品的生命周期(超过软件的生命周期),影响业务发展的历史因素。

调查回答者表示,使用多CAD数据的主要问题是在原始模型创建的系统中丢失了嵌入的智能设计思维。在一个“陌生”的系统中,设计历史丢失了,参数几何模型变成了“哑巴”。

直接建模系统可以用来改变“哑巴几何”,但他们不能保证初始几何的决策意图。变分直接建模技术解决了这个问题,因为它可以自动识别“哑巴几何”的决策意图,以几何和尺寸约束之间的边界元素的条款。如果模型的两个平面面相互平行或垂直,这种排列很可能是初始模型的设计者的意图。所以当用户编辑“哑巴”几何时,这些面可能应该仍然平行(垂直)(除非用户明确指定两个面之间的不同角度)。等直径的孔,等深的孔,模型的各种类型的对称等也是一样。所有这些关系都可以被识别,并用于修改“哑巴”几何。

约束识别远比特性识别或树重建要简单,因为迭代边界元素可以很容易地验证可能的几何关系。这正是我认为直接建模系统智能的关键。当然,向“哑巴”几何添加用户规格的可能性(无论是基于约束的特性定义还是仅仅是单位约束)允许以最强大的方式表达其设计意图。

直接建模的挑战

所有现代直接建模系统的弱点仍然是编辑复杂的NURBS曲面。在边界模型中识别平面、圆柱、球面、圆锥或圆环面是一回事。另一回事是认识到一个特定的面是横扫、放样或混合操作的结果。这种识别对于根据它们的设计意图编辑这些面是绝对必要的。而我不知道有任何直接建模系统能够编辑(直接或间接)如弹簧、螺旋桨、翼、罩等形状。

科技正在迅速发展。我相信不久我们就会看到直接建模系统如何大胆地“破解”具有如此复杂面部的标准机械构建组件。然而,目前,如果你设计的产品具有非常规的几何形状,最好使用基于历史的系统。

在许多其他情况下,直接建模系统可能是唯一正确的选择。你必须处理多CAD和遗留数据?你无法投入时间培训你的专家(学习基于历史建模的正确方法并非易事)?或者你没有资金购买昂贵的许可证(“经典的”MCAD系统远非便宜)?那么,你应该考虑使用这篇评论中描述的某一个直接建模系统的可能性。