2024年4月19日发(作者:)

DCM介绍

1 DCM简介

DCM全称为Dimensional Constraint Manager(标注约束管理器)。它是由软

件模块的形式发布,可以和应用程序进行集成,来完成二维CAD领域的参数化

设计功能。

1.1 DCM提供的功能

DCM作为一个软件组件,可以操作几何设计来满足给定的约束条件。DCM

关注于二维空间(或者三维空间的二维子空间)的无界限的直线、圆、点和参变

量几何体。它包括了两类约束,分别是标注约束(长度和角度)以及逻辑(几何)

约束(比如平行、垂直、相切和同心)。

当调用DCM进行计算约束时,以下两个步骤会执行:

 DCM首先分析几何体之间的相对关系,并且决定使用什么样的解决方

案;

 DCM重新计算几何体以满足标注约束的需要。

在使用约束的设计过程中,这两个步骤可以识别和求解问题域。它可以保证

几何体不依赖于任何的问题域进行重新求解,同时可以避免任何可能影响几何体

的相对位置的改变。它还可以保证仅仅当标注值改变时快速的进行重新计算(因

为求解过程的第一个步骤不需要进行重复)。

为了给设计者提供最大的灵活性,DCM使用的算法与几何约束体以及标注

约束的顺序是无关的,也就是说可以在任意时刻添加、删除以及改变约束。通过

上述机制,应用程序可以通过恢复相关的约束几何体以及标注约束找回先前的状

态。

DCM的一个最主要的特性是它可以用来处理欠约束和过约束数据,这样用

户就可以很容易的建立完全约束。欠约束是指没有足够的标注和逻辑约束来唯一

的确定几何体数据;而过约束是指几何体数据含有过多的或者相冲突的标注和逻

辑约束。

欠约束几何体通过计算可以满足应用到其的任何约束,即使这些约束不能唯

一的定义这个几何体。这种情况下,应用程序可以影响DCM返回的实际的求解

值。

1.2 在应用程序中使用DCM

DCM有一个很大的优点,就是它专门设计为一个模块,可以加入到任何的

应用程序中。在任何可能的地方,DCM总是使用非迭代的算法从而使得DCM运

算速度非常快。另外,DCM的计算时间是和几何体数量以及约束数量成线性关

系的。

在使用DCM时,几何体和约束关系是在应用程序中定义的,DCM通过预先

定义的求值函数(回调函数)来访问上面的定义,这些求值函数被称为Frustum

接口。这样就可以将DCM需要的额外内存降到最低,同时意味这应用程序对几

何体和约束数据具有控制权。

2 基本的DCM概念

2.1 数据类型

DCM使用的几何体类型(Geomtery types)包括无限长的直线、圆、椭圆、

点、样条曲线以及可估算的参数曲线(evaluated parametric curves,通常是指自

由曲线)。所有的几何体都假设分布在二维情况下。

带值的标注类型包括长度,角度和半径。除此以外,还有一个特殊的标注,

她们仅仅是一些逻辑约束(比如平行)。在DCM中,这两种情况都被称为标注约

束(dimension)。DCM也可以求解方程式(equation)而得到变量的值。变量可

以被用来表示标注的值。

2.1.1 几何体类型

DCM支持下面类型的几何体:

 解析几何:点,直线,圆和椭圆。

 样条曲线,支持通用的NURBS曲线。

 可估算的参数曲线。

 严格集(Rigid sets)。一个严格集是若干几何体的集合,并且将其看做严

格约束的。

除了上述的约束几何体,DCM还支持Offset curves和Scaleable sets。经过研

究AUTOCAD,发现其并不支持上面两种几何体,估不做详细介绍。