DCM 标注约束管理器介绍_第1页
DCM 标注约束管理器介绍_第2页
DCM 标注约束管理器介绍_第3页
DCM 标注约束管理器介绍_第4页
DCM 标注约束管理器介绍_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第第页DCM标注约束管理器介绍1DCM简介DCM全称为DimensionalConstraintManager(标注约束管理器)。它是由软件模块的形式发布,可以和应用程序进行集成,来完成二维CAD领域的参数化设计功能。1.1DCM提供的功能DCM作为一个软件组件,可以操作几何设计来满足给定的约束条件。DCM关注于二维空间(或者三维空间的二维子空间)的无界限的直线、圆、点和参变量几何体。它包括了两类约束,分别是标注约束(长度和角度)以及逻辑(几何)约束(比如平行、垂直、相切和同心)。当调用DCM进行计算约束时,以下两个步骤会执行:●DCM首先分析几何体之间的相对关系,并且决定使用什么样的解决方案;●DCM重新计算几何体以满足标注约束的需要。在使用约束的设计过程中,这两个步骤可以识别和求解问题域。它可以保证几何体不依赖于任何的问题域进行重新求解,同时可以避免任何可能影响几何体的相对位置的改变。它还可以保证仅仅当标注值改变时快速的进行重新计算(因为求解过程的第一个步骤不需要进行重复)。为了给设计者提供最大的灵活性,DCM使用的算法与几何约束体以及标注约束的顺序是无关的,也就是说可以在任意时刻添加、删除以及改变约束。通过上述机制,应用程序可以通过恢复相关的约束几何体以及标注约束找回先前的状态。DCM的一个最主要的特性是它可以用来处理欠约束和过约束数据,这样用户就可以很容易的建立完全约束。欠约束是指没有足够的标注和逻辑约束来唯一的确定几何体数据;而过约束是指几何体数据含有过多的或者相冲突的标注和逻辑约束。欠约束几何体通过计算可以满足应用到其的任何约束,即使这些约束不能唯一的定义这个几何体。这种情况下,应用程序可以影响DCM返回的实际的求解值。1.2在应用程序中使用DCMDCM有一个很大的优点,就是它专门设计为一个模块,可以加入到任何的应用程序中。在任何可能的地方,DCM总是使用非迭代的算法从而使得DCM运算速度非常快。另外,DCM的计算时间是和几何体数量以及约束数量成线性关系的。在使用DCM时,几何体和约束关系是在应用程序中定义的,DCM通过预先定义的求值函数(回调函数)来访问上面的定义,这些求值函数被称为Frustum接口。这样就可以将DCM需要的额外内存降到最低,同时意味这应用程序对几何体和约束数据具有控制权。2基本的DCM概念2.1数据类型DCM使用的几何体类型(Geomterytypes)包括无限长的直线、圆、椭圆、点、样条曲线以及可估算的参数曲线(evaluatedparametriccurves,通常是指自由曲线)。所有的几何体都假设分布在二维情况下。带值的标注类型包括长度,角度和半径。除此以外,还有一个特殊的标注,她们仅仅是一些逻辑约束(比如平行)。在DCM中,这两种情况都被称为标注约束(dimension)。DCM也可以求解方程式(equation)而得到变量的值。变量可以被用来表示标注的值。2.1.1几何体类型DCM支持下面类型的几何体:●解析几何:点,直线,圆和椭圆。●样条曲线,支持通用的NURBS曲线。●可估算的参数曲线。●严格集(Rigidsets)。一个严格集是若干几何体的集合,并且将其看做严格约束的。除了上述的约束几何体,DCM还支持Offsetcurves和Scaleablesets。经过研究AUTOCAD,发现其并不支持上面两种几何体,估不做详细介绍。2.1.2标注和约束DCM支持下面类型的标注和约束。●标注:长度,角度,半径和曲线长度。●约束:平行,垂直,重合,同心,相切,对称,等长,中点,patterned,等半径,equalparameterandnormal。标注会和一个值关联(标注值),而约束没有。长度和角度标注值可以为0,但在这种情况下,最好是使用逻辑约束替代标注。同理,当角度标注值是180时,也可以使用逻辑约束来替代角度标注。2.1.3变量、等式和不等式DCM可以通过求解等式和不等式来得到变量的值,DCM支持下面的变量类型:●变量和标注相关联,变量表示的是标注的大小。●简单变量,例如不与标注相关联的变量。上面两种变量都可以在等式和不等式中使用。DCM可以求解等式和不等式。2.2固定、冻结和自由几何体几何体第一次被创建的时候,它们是自由的。应用程序可以通过DCM固定和冻结几何体。当几何体被固定或者冻结后,DCM不能再移动几何体。自由、固定和冻结几何体的区别如下:●自由:一个几何体既没有被固定也没有被冻结,它就是自由的。当模型被求解时,DCM可以任意地移动自由几何体。●固定:DCM无法移动被固定的几何体。在固定几何体间的标注和约束将会被DCM忽略并且绝不会影响求解结果。DCM求解时,假设固定几何体永远在指定的位置。当DCM成功的求解了一个模型后,应用程序将固定几何体移动了一个位置,DCM不会重新求解此模型。●冻结:DCM无法移动被冻结的几何体。DCM不会求解应用在两个处于冻结几何体上的标注和约束,即使有些情况下它们可能会影响求解结果。DCM求解时,不会假设冻结几何体永远保持在指定的位置。因此应用程序可以比较容易地移动冻结实体,这是因为DCM的求解结果会更容易预测。2.3自由度(degreeoffreedom)当DCM求解或者计算模型时,它会依次地使用几何体的自由度来求解所有的标注和约束。在二维空间中,点和直线有两个自由度,圆有三个自由度,椭圆有五个自由度。不论集合中的几何体个数多少,它一共有三个自由度。样条曲线的自由度是定义此曲线的所有几何体的自由度之和,也就是说,如果一个样条曲线有个点定义,此样条曲线就有自由度。DCM无法移动固定和冻结几何体,所以它们的自由度为0。当集合(set)被固定或者冻结后,自由度将多3变为0。应用程序可以利用DCM获得几何体和变量的所有自由度,被标注约束和等式去掉的自由度个数以及刚体剩下的自由度个数,这些数量被称为constraintbalance,被调用的DCM函数为constraint_balance。这个函数告诉应用程序是否有足够的标注可以去除掉几何体的所有自由度。2.4模型求值(Evaluatingthemodel)求值过程中,DCM试图处理如下的事情:●DCM求解等式并且得到变量的值,●DCM得到应用到实体的变换矩阵以保证当前所有的标注将被满足,●DCM返回每个实体的状态码表明求解的成功后者失败。在整个求解过程中,上面的步骤是同时进行的。经过DCM的求解,可以得到唯一的解。此唯一的解由几何体的初始配置,标注和等式决定。另外,传递给DCM的属性也可以影响到解。对欠约束几何体,DCM提供了很多影响结果的选项,但是这些选项对完全约束的几何体是没有意义的。2.4.1分辨率与精度(Resolutionandaccuracy)分辨率指的是DCM进行比较时使用的数值。DCM有两个分辨率:角分辨率(angularresolution)和线性分辨率(linearresolution),DCM比较角度时使用角分辨率,比较长度时使用线性分辨率。如图1所示,当DCM判断两条直线是否平行时,将会使用角度分辨率。相似情况,当DCM判断两个标注值的和是否和一个标注值相等时,就会使用线性分辨率。图1分辨率的使用2.4.2增量求解(Incrementalevaluation)DCM有两种方式进行模型求解,完全(full)和增量(incremental)模式。前面曾经提到过,DCM求解包含两个过程,首先DCM对模型进行分析,并且决定求解模型的方法;第二,DCM求解模型,得到满足约束条件的解。DCM分两部求解的可以使得在很多情况下(没有增加或者减少约束),只使用第二个步骤进行重新求解,从而节省时间,提高性能。我们将其称为增量求解。为了能够使用增量求解,必须保证没有增加或者删除约束。否则,DCM会发现无法使用增量求解,取而代之使用完全求解方式求解。增量求解时,即使几何体的位置发生改变,模型原来的手性会被保留。这就意味着:1)如果应用程序希望通过移动几何体来改变模型的手性,则必须使用完全求解模式;2)应用程序可以移动几何体,并且得到保存原来手性的解。相关DCM函数:re_evaluate,dynamic_evaluate。2.4.2.1模型分区如果模型中含有两组或者都组完全不相连的几何体(没有公用的约束),对其中一组几何体的修改不会影响到其他组的几何体。DCM求解时,可以识别出没有联系的模型,然后在内部进行分区。每一个分区后的子集合独立地进行求解,对其中任一个子集合的更改不会影响到其他的子集合。例如,在同一子集合内的两个几何体之间添加约束不会影响的其他子集合内部的节点。如果此时调用re_evaluate函数,被改变的子集合会进行完全求解,但是其他的子集合却可以使用增量求解方式。DCM允许模型在若干情况下进行自动更新模型,比如增加或者删除一个节点。如果将约束添加到处于两个子集合中的两个节点中时,DCM会自动地将这两个子集合进行合并。模型分区功能有DCM自动完成,应用程序不需要进行任何额外的操作。在一些模型中,使用分区机制可以有效地改善性能。2.4.3拖拽几何体在进行设计时,经常先为草图添加一些几何约束。当移动包含几何约束的几何体时,希望与其相关的几何体进行相应的改变。当DCM求解时,可以将指定的变换矩阵应用到相关的几何体来完成上述功能。在欠约束状态下,这些函数可以提供复杂的变化。上述机制被称为拖拽,它只适应于欠约束状态下。当使用拖拽时,下面几点需要注意:●任何数量和任何类型的几何体都可以被变换,包括固定和冻结几何体。但是拖拽很大数量的几何体会导致效率降低。●变换矩阵(不同几何体的变换矩阵可以不同)可以是下面类型的任意组合:平移,旋转和改变半径(圆和椭圆)。●拖拽时,DCM根据指定的变换矩阵变换相关几何体,其他的几何体同样会被变化以满足相应的几何和标注约束。●在很多情况下,指定的几何体没有足够的自由度来接受给定的变换矩阵。应用程序可以通知DCM需要怎样的行为,然后DCM回复是否可以完成指定的要求。详细解释参考dynamic_evaluate函数。2.4.4代数与非代数解决模式不使用数值技术的计算方法被称为代数模式,反之被称为非代数模式或者数值模式。在求值过程中,只要有可能,DCM总是优先使用代数模式。相比数值模式,代数模式有下面的优点:●使用代数模式,设计中几何体的手性会被保留,无论相关的约束和标注有多大的变化。但是,数值模式可能会导致跳变或者滞后,这也是为什么使用数值方法时必须给定比较小的增量的原因。●代数模式天生要比数值模式更准确。●代数模式一般情况下比数值模式快速。当DCM求解时,首先选择代数模式,当代数模式无法求解时,就会使用数值模式来求解。但是,可以通过设置属性改变DCM的求解方式,可以部分或者完全将数值模式禁止掉。相关DCM函数:set_option。2.4.5求解欠约束模型DCM可以用来求解欠约束模型。但是,由于欠约束几何体可能含有多个未被使用的自由度,所以欠约束模型可能会有多个可能的解决方案。比如为两条直线添加一个平行约束,如果这两条直线都有2个自由度,此时无法确定最后得到的平行线会是什么样子的,有可能第二条与第一条平行(第一条方向不变),也有可能第一条与第二条平行,也有可能两条直线方向都改变(保持平行)。DCM提供了三种方法影响欠约束模型的求解结果:求解模式(solvingmodes),优先几何体(prioristedgeometry)和变换偏见(transformbias)。每一种求解模式(solvingmode)都会以不同的方式看待欠约束模型。DCM提供了四种求解模式,每一种求解模式都可以使用在任何求值函数下(evaluate,re_evaluate,dynamic_evaluate和move_and_evaluate)。但是,强烈建议对每一个求解函数使用其默认的求解模式。求解函数和求解模式对应如下:●标准模式(Standard):严格地移动欠约束几何体,是evaluate,re_evaluate的默认模式。●加权标准模式(Weightedstandard):移动所选择的几何体,是move_and_evaluate的默认模式。●最小移动模式(Minimummove):移动最小数量的几何体,是dynamic_evaluate的默认模式。●松弛模式(Relaxation):一般情况下是最慢的求解模式,当标准模式无法求解模型时可以使用此模式。此模式没有对应的求解函数。优先几何体(prioristedgeometry)与求解模式结合使用,可以控制欠约束几何体求解的更细节的问题。比如,在求解过程中,你可以指定一组几何体具有较高的优先级。在指定的几何体数组中,第一个几何体具有最高的优先级。根据不同的求解模式,优先几何体数组内的几何体有可能是优先被移动也有可能是优先保存原位置不变。变换偏见(transformbias)允许应用程序指定期望那个几何体被移动或者不被移动。变换偏见信息是有等级的,DCM为了得到一个解可以重新设置变换偏见的等级。一般而言,使用变换偏见(transformbias)可以更灵活地控制几何体的移动形式。2.4.5.1标准求解模式(Standardsolvingmode)在标准求解模式下,DCM将产生所求解模型内几何体的变换矩阵,并且其按照一定的顺序改变欠约束几何体。选择这种顺序主要是为了将每个几何体的改变限制在最小的范围内。比如,一个固定的点和一个直线间存在一个标注约束,当改变标注值时,DCM将会平移直线来满足新的标注值,但不会改变直线的角度。当使用标准求解模式时,DCM会考虑几何体原来的位置。所以,此模式相比最小移动模式和加权标准模式更容易得到一个解。当使用标准模式时,应用程序可以指定一组优先几何体,详细内容请参考软参考几何体部分。2.4.5.2加权标准求解模式(Weightedstandardsolvingmode)加权标准求解模式和标准求解模式的不同在于两者使用优先几何体数组方式上。标准求解模式下,优先数组中的几何体只能影响到三个自由度,但是,在加权标准模式下,则可以影响到模型中的所有自由度。也就是说,加权标准求解模式将不需要保持模型几何体的刚性要求。相对其他模式,加权标准求解模式可以是应用程序对模型的单个几何体位置控制性更强大。但是,此模式的缺点它会限制DCM求解,也就是说,在标准求解模式下可以得到解,但是在此模式下将无法得到解。另外,当使用优先数组时,欠约束几何体的形状更容易发生变化。下图显示了使用标准求解模式和加权标准求解模式的不同。图中,有一条固定的竖直直线,一个点和一个矩形,原来的位置如上面的图所示。在标准求解模式下,将点向右移动,然后求解,被移动的点就会跳回到原来的位置,即使这个点被设置为软参考几何体,这是因为标准模式下要保持几何体的刚体性。但是,在加权标准求解模式下,将会得到第二个图中显示的位置,将矩形的刚体性改变。2.4.5.3最小移动求解模式(Minimummovesolvingmode)使用最小移动求解模式时,DCM不会对模型中的所有几何体产生变换矩阵,反之,它将几何体的变化限制在一个局部范围内,然后求得解。应用程序可以决定将变化限制在那,也可以让DCM自己做出决定。假设允许DCM决定,此求解模式将移动最小数量的几何体。DCM以下面的标准决定几何体的移动:●在拖拽过程中,被拖拽的几何体相比于其他几何体优先移动。●当几何约束或者标注约束不满足时,DCM优先移动约束末尾的几何体。在使用此模式求解时,建议不再使用优先几何体数组。在此情况下,DCM有权决定如何移动几何体。下图展示了标准求解模式和最小移动求解模式的区别。左边的图先改变约束,然后使用标准模式求解;右图使用dynamic_evaluate求解。可以看出,左图P1和直线都发生了改变,但右图中P1点并没有改变位置。2.4.5.4松弛求解模式(Relaxationsolvingmode)顾名思义,松弛求解模式使用数值松弛法进行求解。与其他求解模式相比,此求解模式会移动更多的相关的几何体,它的优点是在其他求解模式得不到解的情况下,有可能会得到解。但是,数值求解效率较低。松弛求解模式也可以使用优先几何体作为软参考,其使用方法与标准求解模式相同。但此求解模式尽量少使用。2.4.5.5变换偏见(Transformbias)当求解模型时(任何求解模式),应用程序可以使用变换偏见通知DCM那些几何体可以被移动,那些几何体则保存不变。在求解过程中,DCM通过Frustum接口查询每个几何体的变换偏见。在可能情况下,DCM根据变换偏见的优先级求得需要的解,但是,DCM无法按照指定的变换偏见求解时,其也可能会改写几何体的变换偏见。注意,变换偏见只对欠约束模型有效。指定变换偏见和使用加权标准求解模型类似,然而相比而言,变换偏见更加灵活,应用程序可以对几何体指定一个完全的顺序来表示几何体是否移动或者保持不变。变换偏见适用于所有的求解模式,也适用于任何的求解函数。但是,松弛求解模式的本质导致了变换偏见不会对其起作用,所以,不要在此模式下使用变换偏见。注意:在增量求解时,DCM不会查询变换偏见,此时DCM将使用上次完全求解时几何体的变换偏见。软参考(softreferences)可以改写几何体的变换偏见,所以建议不要同时使用软参考和变换偏见机制。相关Frustum函数:D

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论