通过关联约束多轴仿真图形实现自动推算产品的结构数据的制作方法

文档序号:11830788阅读:313来源:国知局
通过关联约束多轴仿真图形实现自动推算产品的结构数据的制作方法与工艺

本发明涉及计算机程序和工业设计领域,具体涉及工业产品设计的方法、算法,包括使用基于有向图的二维关联约束多轴仿真图形实现自动推算产品的结构数据。



背景技术:

在市场上提供用于对对象进行设计、工程、制造的多个系统和程序。CAD是计算机辅助设计的缩写,例如,它涉及用于设计对象的软件解决方案,传统CAD系统一般要求用户构造语句输入几何图形,但有些图形的构造性描述并不容易,为了弥补传统CAD系统的不足,更好地满足概念化设计的要求,提高设计效率,人们试图将人工智能的思想和方法引入到CAD系统中而形成智能CAD。智能CAD的主要特征和标志是参数化和变量化。

后期出现的参数化技术首次引入了约束的概念,参数化技术将一组参数与控制零部件几何图形的一组结构尺寸序列相对应,当赋予不同的参数值时,就可以产生一系列具有相似几何图形的零部件。参数化实体造型技术的特点是:基于特征的设计、全尺寸约束、全数据相关、尺寸驱动设计的修改。

变量化技术是参数化技术的一次飞跃。变量化技术将整个设计草图当作一个完整的系统来考虑,与构造过程的顺序无关,将草图中的控制尺寸和拓扑关系都用约束来表示,这使得设计初期的草图可以不是完全定义的,将没有完全定义的控制尺寸和拓扑关系用变量储存起来,暂时以当前的绘制尺寸赋值。设计者可以在任何阶段对草图中的任何尺寸和拓扑关系进行重新定义,同时这种重新定义也不必牵扯草图中所有几何实体的改动。变量化技术提供的灵活更该模型的方式有效的支持了CAD的概念化设计,可以使设计者的创造力和想象力得到更充分地发挥。

参数化技术与变量化技术的核心是一旦给定了设计草图的若干尺寸和拓扑关系,系统就可以自动生成相应的设计图,这一几何约束求解的过程可以理解为几何作图的自动化过程。



技术实现要素:

本发明要解决的技术问题在于提供一种通过关联约束多轴仿真图形实现自动推算产品的结构数据,使用基于有向图的二维约束求解,顶点表示几何元素,边表示约束,约束图将相互关联的所有的几何和约束关系联系在一起。

为了解决上述技术问题,本发明通过以下方式来实现:

通过关联约束多轴仿真图形实现自动推算产品的结构数据,其具体包括以下步骤:

1)选择建立产品由顶点和约束边组成的约束图;

2)根据任意选取约束图中的一个约束方向进行过约束判断;

3)对构造的约束图进行约束平衡;

4)根据调整约束平衡后的约束图进行约束求解排序。

为了提高系统的交互设计能力,且避免过约束情况的出现,本发明提出了几何完全定义状态(几何的形状和位置完全确定时的状态),满足以下所有条件的判断为几何完全定义状态:

(1)几何对象的前承约束中不存在过约束;

(2)几何对象的剩余自由度为0;

(3)在约束图中,反向该几何的任意一个前承约束,利用约束平衡方法,反向均失败,即该几何对象的所有前承约束均无法反向。

对于上述步骤2)中的过约束判断而言,其具体的判断方法如下:

(21)约束平衡失败,则存在过约束;否则不存在过约束;

(22)约束平衡失败后,约束图中所有反向失败的约束都是过约束;

(23)过约束指向的几何对象均是过约束所在的几何对象。

对于上述步骤3)中的约束平衡,其具体的约束平衡方法步骤如下:

(31)首先找到过定义顶点(剩余自由度小于0的顶点或相冲突的约束传递顶点);

(32)在过定义顶点的前承约束中挑选一个约束进行反向,要求反向后过定义顶点不再是过定义顶点,反向约束后进入步骤(33),若没有合适的前承约束可以反向,则分以下两种情况:

(321)若过定义顶点是因为反向约束导致的过定义顶点,那么恢复约束的方向,重新选择一个合适的前承约束方向,进行步骤(32);

(322)若过定义顶点是最初的那个过定义顶点,则该约束图存在过约束,约束平衡失败;

(33)被反向的约束传递顶点,若传递顶点不是过定义的顶点,则约束平衡成功,即约束图调整成功,约束图不存在过约束;若传递顶点是过定义顶点,将传递顶点当成过定义顶点,继续进行步骤(32)。

对于上述步骤4)中的约束求解排序的具体方法如下:

(41)选择一个新添加或新修改约束的传递顶点I;

(42)将传递顶点I作为一个求解队列元素并放入求解队列的队尾处;

(43)遍历传递顶点I的传递约束,若传递顶点I的传递约束都遍历完毕,则转至步骤(48),否则,选中一条未遍历的传递约束I,得到传递约束I的传递顶点II;

(44)若传递顶点II不在求解队列中,则记录传递顶点II的父顶点,将传递顶点II当成新的传递顶点I,转至步骤(42);若传递顶点II在求解队列中,得到传递顶点I的父顶点为传递顶点III,再清空临时堆栈,将传递顶点I压入临时堆栈;

(45)将传递顶点III压入临时堆栈,若传递顶点III就是顶点传递顶点II,或传递顶点III、传递顶点II属于同一个求解队列元素(说明求解队列中从传递顶点II到传递顶点I的顶点构成了环路),转至步骤(46),否则,将传递顶点III的父顶点当成新的传递顶点III,转至步骤(45),若传递顶点III没有父顶点(即传递顶点III是起始点),转至步骤(47);

(46)调整求解队列,将临时堆栈内顶点所在的队列元素合并为一个,新的队列元素置于求解队列中传递顶点II所在队列元素的位置,转至步骤(43);

(47)若求解队列中,传递顶点II所在队列元素排在传递顶点I所在队列元素后,转至步骤(43),否则,调整求解队列,将传递顶点II所在队列元素以及沿着传递顶点II传递约束方向遍历到的所有顶点所在的队列元素排在传递顶点I所在的队列元素之后,转至步骤(43);

(48)若传递顶点I没有父顶点(即传递顶点I是起始点),则算法至此结束;若传递顶点I有父顶点,则返回传递顶点I的父顶点,将传递顶点I的父顶点当成新的传递顶点I,转至步骤(43)。

与现有技术相比,本发明所具有的有益效果:

本发明所提出以约束图为基础,将几何元素和约束关联在一起,通过平衡来约束,进行过约束的判定,避免几何过定义导致的无解方程组计算;进行几何的完全定义状态的判定,为设计者的设计工作提供依据,提高人机交互设计效率;通过求解队列算法,将复杂约束图进行分解,提高求解速度、效率,实现约束求解,解决复杂约束信息的管理问题。

附图说明

图1a为本发明所构建的几何示意图;

图1b为图1a的约束示意图;

图2a为完全定义状态判断几何示意图;

图2b为图2a的约束示意图;

图3a为过约束判断几何示意图;

图3b为图3a的约束示意图;

图4a为本发明中约束图的约束平衡示意图I;

图4b为本发明中约束图的约束平衡示意图II;

图4c为本发明中约束图的约束平衡示意图III;

图4d为本发明中约束图的约束平衡示意图IV;

图4e为本发明中约束图的约束平衡示意图V;

图4f为本发明中约束图的约束平衡示意图VI;

图5为本发明中约束图的约束平衡后的几何示意图。

具体实施方式

下面结合附图和具体实施例对本发明的具体实施方式作进一步详细的说明。

约束图的建立过程就是创建新的顶点和约束边,并将它们联系在一起的过程。顶点表示点、直线或圆等某一几何元素,顶点又可以分为前承顶点和传递顶点,约束的箭头指向的顶点称为该约束的传递顶点,约束的箭头起始的顶点称为该约束的前承顶点。

约束边是用带箭头的有方向的边来表示,其可以分为前承约束和传递约束,指向顶点的约束边称为该顶点的前承约束,从该顶点起始的约束边称为该顶点的传递约束。

如图1a所示,创建由3个点P1、P2、P3和3条直线L1、L2、L3组成的6个几何元素顶点的三角形;然后创建这6个顶点在直线上的约束e1、e2、e3、e4、e5、e6,其中e1是点P1指向直线L1,e2~e6进行类似处理,如何1b所示,再在其基础上添加P1与P2之间10mm的距离约束e9,约束e9的方向由P1指向P2,表示P1的位置通过10mm的距离来约束点P2的位置;然后添加P1的固定约束e7和直线L1的水平约束e8以及直线L1与L3之间300约束e10。

如图2a、2b所示,点P1″有固定约束e1″,点P1″与直线L1″间也存在点在直线上约束e2″,直线L2″有水平约束e3″,同时直线L1″和L2″之间存在平行约束e4″。故采用上述规则进行几何完全定义状态的判断:

P1″的前承约束e1″不是过约束,P1″剩余自由度为0,e1″不能反向,因此P1″是完全定义状态;

直线L1″的前承约束e2″、e4″不是过约束,直线L1″的剩余自由度为0,反向e2″和e4″均失败(e3″和e4″互为约束冲突,同时指向直线L2″时出现过定义),因此直线L1″是完全定义状态;

直线L2″的前承约束e3″不是过约束,但直线L2″的剩余自由度为1,因此直线L2″不是完全定义状态,而处于欠定义状态。

由于几何的约束冗余导致约束求解失败的称为几何过定义,而导致约束图存在几何过定义的约束称为过约束,当几何自由度与其前承约束的所有约束度和的差称为几何的剩余自由度,而导致几何过定义的原因是:几何的剩余自由度小于零或存在约束冲突。

如何3a、3b所示,e1'~e4'是点在直线上约束、且e5'是直线L1'的水平约束、e6'是直线L2'的竖直约束、e7'是圆C1与直线L2'的相切约束。再次添加直线L1'和直线L2'的平行约束e8',按照算法进行约束平衡,结果约束平衡失败存在过约束;约束图中e5'、e6'和e8'反向失败(由于约束冲突的机制,其他约束没有被反向),判定为过约束;它们所指向的直线L1'和L2'为过约束所在几何,即水平、竖直和平行约束为过约束,直线L1'和L2'为过约束所在的几何。

在图1b中新添加L2与L1的垂直约束e11,如图4a所示,过定义顶点可能是新添加的约束e11的传递顶点L1;由于L1是过定义顶点,其前承约束e11和e8约束冲突,且L1的剩余自由度小于0,由于存在约束冲突,只能反向约束e8或e11(反向其他前承约束无法解除L1的过定义状态),反向约束e8后L1仍是过定义状态,恢复约束e8的方向,反向约束e11使L1不再是过定义顶点,如图4b所示。

如图4c所示,约束e11的传递顶点L2变为过定义顶点,其剩余自由度小于0,反向L2的前承约束e3,使L2不再是过定义顶点;反向约束e3后,约束e3的传递顶点P2变为过定义顶点,其剩余自由度小于0,反向P2的前承约束e9,使P2不在是过定义顶点,如图4d所示。然后在反向约束e9后,约束e9的传递顶点P1变为过定义顶点,P1没有合适的前承约束可以反向,恢复e9的方向;重新选择P2的一个前承约束e2进行反向,使P2不再是过定义顶点如图4e所示,根据之前的分析方法科得到反向约束e2失败,恢复e2的方向,进而P2没有合适的前承约束可以反向,故恢复约束e3的方向。

进一步的,选择L2的一个前承约束e4进行反向,使L2不再是过定义顶点如图4f所示,反向e4后,e4的传递顶点P3也不是过定义顶点,即约束图调整成功。

通过对调整成功后的约束图进行约束求解队列排序,如图4f所示。

将新添加垂直约束e11的传递顶点L2压入求解队列,此时求解队列为L2;然后就遍历L2的传递约束e4,得起传递顶点P3,P3不在求解队列中,将P3压入求解队列中,此时的求解队列为P3;由于P3没有传递约束,返回到P3的父顶点L2,再对L2的传递约束遍历完毕,L2是起始点,算法结束。最终得到求解队列:L2→P3,即先通过几何L1、P2和约束e11、e3计算L2,再通过几何L2、L3和约束e4、e5计算P3。最终得到的图形就 是一张满足所有约束的如图5所示的几何图形。

以上所述仅是本发明的实施方式,再次声明,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进,这些改进也列入本发明权利要求的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1