时间:2024-07-28
李潇潇 张其林
(上海市同济大学,上海 200092)
参数化建模技术是现代CAD 技术发展的一个里程碑,在机械类三维软件(例如PRO/E、UG、CATIA 等)早已使用,而AutoCAD 软件在之前版本一直没有参数化绘图功能,终于在2009 年4 月发行的AutoCAD 2010 版新增该功能。本文旨在揭露CAD参数化中标注约束可能的内在运作机制,以供大家能够更好地理解CAD 参数化的内部运作机制。
如图1 参数化菜单,几何约束包含了自动约束、水平、竖直、垂直、平行、相切、相等、平滑、重合、同心、共线、对称、固定等各种不同类型约束。其中自动约束功能可以为已经绘制好的图形自动添加约束,如水平、竖直、平行、点重合等。
标注约束设计是现代CAD 技术实现参数化设计的关键技术,它在图形设计,产品设计中起很大作用。Autodesk 公司为AutoCAD 2010 版添加了标注约束的功能,包含了线性、对齐、半径、直径、角度等不同类型的尺寸,也可以将现有图形上的普通尺寸标注转换成标注约束,但无法逆操作。
图1 几何约束类型
不论是几何约束还是标注约束,都离不开给表达式赋予参数值。如图2 参数管理器对话框所示,所有参数可以赋予表达式,支持三角函数、乘方等常用的数学表达式。
所有和参数化相关的类都是从AcRxObject 类派生出来的,其中又分为两大块,一块是以AcConstraintGroupNode 为基类,用于参数化内部图形的处理;另一块是以AcDbObject 为基类,用于CAD 界面的现实。它们各自具有不同的作用。类的派生关系见图4。
图2 参数管理器
我们以图3 的标注约束为例子,图3 中的直线就是图5 中的AcDbLine,图3 中的标注就是图5 中的AcDbDimension。至于直线和标注之间是如何联系起来的,就要用到图5 中的AcDbAssocNetwork 了。可以看到在AcDbAssocNetwork 中又包括了Ac-Db2dConstraintGroup 和AcDbAssocVariable,其中Ac-DbAssocVariable 与直线的长度变量通过AcDbAssocValueDependency 相关联,而AcDb2d-Constraint-Group中包括AcConstrainedGeometry,AcGeomConstraint 和各个Dependency,其中AcConstrainedGeometry 与直线通过AcDbAssoc-GeomDependency 相关联,AcGeomConstraint 与标注通过AcDbAssocDependency 相关联。上述中各个对象之间具体是通过何种函数来关联的,请见图6(图中的AcConstrained-BoundedLine 就是AcConstrainedGeometry,AcDistanceConstraint 就是AcGeomConstraint)。
图3 标注约束
图4 类的派生关系图
图5 类的从属关系图
图6 对象相互关系图
仍然以图3 中的直线与约束标注作为例子,目前d1=1000,如果我们把d1 修改为500,那么直线也要相应的缩短,标注也要跟随直线做相应的变化。在CAD 内部,这到底是如何实现的呢?图7 给出了一种猜想。首先要找到数据库中所有的Value值,通过isReleventChange()来判断该Value 值是否已改变;如果改变,则保存改变后的变量值,并且通过AcExplicitConstraint(AcDistanceConstraint)来找到该Value 值所对应的直线(AcDbLine),给这根直线赋新值,同样通过AcExplicitConstraint(AcDistanceConstraint)来找到该Value 值所对应的标注(AcDbDimension),并给该标注赋新值。这样,直线和标注就都被修改了。计算流程图如图7 所示。
图7 计算流程图
这篇文章阐述了作者对于AutoCAD 参数化内部运行机制的观点,介绍了与AutoCAD 参数化相关的类的派生关系,对象的从属关系,对象的相互关系,以及修改标注约束时AutoCAD 内部可能的运算流程图。希望本文能让广大二次开发人员更深入的理解CAD 参数化的运作机制。
[1]AutoDesk,ObjectARX for AutoCAD 2013:Reference Guide,2013.
[2]童迪.计算机辅助制图[M],北京:清华大学出版社,2006:262-277.
[3]钱可强.机械制图[M],北京:高等教育出版社,2005:153-165.
[4]何关培.BIM 和BIM 相关软件[J],土木建筑工程信息技术,2010,2(4):110-117.
[5]中华人民共和国国家质量监督局.房屋建筑CAD 制图统一规则[S],GB/T18112-2000.
[6]中华人民共和国住房和城乡建设部.房屋建筑制图统一标准[S],GB/T50001-2010.
[7]中华人民共和国建设部.房屋建筑制图统一标准[S],GB/T50001-2001.
[8]上海现代集团.现代集团工程设计CAD 制图标准(XDJB-I-001-2010),2010.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!