基于刚体步动微调的几何约束求解方法及系统与流程

文档序号:16755325发布日期:2019-01-29 17:18阅读:213来源:国知局
基于刚体步动微调的几何约束求解方法及系统与流程

本发明涉及计算机图像学领域,具体涉及一种基于刚体步动微调的几何约束求解方法及系统。



背景技术:

几何约束求解geometricconstraintsolving,gcs作为人工智能在几何领域的重要研究分支,是计算机辅助设计(computeraideddesign,cad)和计算机辅助制造(computeraidedmanufacture,cam)的核心。几何约束求解可理解为几何造型(如:企业产品模型、分子结构造型、工程设计用图等)设计的自动化,它作为现代参数化、变量化设计体系的核心,被十分广泛地应用于产品造型、装配设计、虚拟现实、运动学分析、化学分子建模、机器人动力学、教学几何等应用领域,是现代计算机辅助设计和计算机辅助制造的重要标志之一。

自20世纪80年代后期,几何约束求解方法逐渐形成了以数值计算、符号计算、基于规则的方法和基于图论的方法为核心的几何约束求解方法,能够弥补之前cad和cam系统的缺陷,满足概念化设计的需求,提高设计效率,近年来,更是发展迅速,已经取得较多具有针对性的突破,能够有效解决设计时所面临的相当一部分问题,但距离适合所有几何约束系统求解的一般化方法仍然存在差距,实现完整、有效和稳定的几何约束求解仍须继续研究。

在cad和cam中,是由用户按照设计意图,通过装配几何实体和几何约束来建模良约束的几何约束系统,即构造无任何形变的刚体,再应用几何约束求解方法,自动生成满足约束的造型,达到用户设计产品造型等各类造型的目的。目前,几何约束求解主要采用分而治之的策略:首先,使用图论方法将几何约束系统分解为分独立可解的刚体,分解度随分解方法的不同而有很大差异,但都力求使分解后得到的每个刚体都是完全耦合的刚体;其次,采用数值计算、符号计算或基于规则的方法求解每一个刚体;最后,再合并这些刚体的解来构造整个几何约束系统的解。如果要求解的刚体结构简单,那么可应用基于规则或符号计算方法实现求解,效率高、准确性好,求解容易符合设计需求。但通常情况下,实际的几何约束系统被分解后,每一个刚体的结构都很复杂,必须转换为几何约束方程组,再采用数值计算或符号计算方法进行求解。符号计算方法虽然能够准确求解方程,但效率低下,在实现基于约束的造型设计时,不能快速生成造型来满足及时响应用户设计的需求,甚至长时间内都无法生成满足约束的造型。采用数值计算(典型地如newton-raphson迭代法)求解方程组时,虽然求解速度快,但初值若选取不当,则易导致陷入局部极值而无法求解,甚至虽然能够求解,但求解后,得到的造型在其形态上也不能满足设计意图。



技术实现要素:

为解决上述问题,本发明提供了一种基于刚体步动微调的几何约束求解方法及系统,不仅能够分解非完全耦合的几何约束系统,也能够分解完全耦合的几何约束系统。进一步解决几何约束求解时,针对复杂的完全耦合的几何约束系统,只能整体上应用数值计算而导致的求解准确性差,容易陷入局部极值和求解不能满足设计意图等问题。

为实现上述目的,本发明采取的技术方案为:

基于刚体步动微调的几何约束求解系统,采用以下几何约束求解方法,包括如下步骤:

步骤一、分解

1、定义超顶点、广义约束闭环、饱和刚体

(1)超顶点

假设g是几何约束图,称vh是图g的超顶点,如果容器c封装了图g或者封装了图g的真子集的超顶点vh1,vh2,…,vhn和剩余集gs-gs1∪gs2∪…∪gsn,且vh-∪ici=g,是一个容器;

(2)广义约束闭环

假设eij是关联顶点vi和vj的几何约束边,将表达ggcc=({vi1|1≤i1≤j1},ec12,{vi2|j1+1≤i2≤j2},ec23,{vi3|j2+1≤i3≤j3},…,{vi,n-1|(j,n-2)+1≤i,n-1≤j,n-1},ecn-1,n,{vin|(j,n-1)+1≤in≤jn},en1,v1)称为广义约束闭环,如果vik(1≤k≤jk)满足:①当(j,k-1)+1=jk时,vik是一个几何实体顶点vg或超顶点vh;②当(j,k-1)+1≠jk时,vik是一个超顶点vh。其中,且当n=1时,③对于任意的超顶点(vi1,,k∩vi1,k+1)∩(vi2,k∩vi2,k+1)=φ;

(3)饱和刚体

假设ws是约束子域gs包含的一个刚体,如果不存在ws’满足:和ws’也是刚体,则称ws是约束子域gs的一个饱和刚体;

2、基于增广广义约束闭环搜索的超顶点构造

首先,定义一个集合s,初始时,s包含几何约束图g的全部n个几何实体顶点{vi|1≤i≤n};其次,向集合s中持续装配图g的几何约束边,装配时要求:

优先考虑关联两个已经被装配的边关联过的几何实体顶点的边;然后再考虑关联一个已经被装配的边关联过的几何实体顶点的边;最后考虑关联没有被任何装配的边关联过的几何实体顶点的边;

每装配一条边eij,,就从eij开始,搜索一个满足下列条件的广义约束闭环ggcci:①ggcci包含eij;②ggcci是s中最小的满足与s中其余全部只关联ggcci顶点的几何约束边的并集恰好是刚体的广义约束闭环;若找到,则选取该并集建立刚体wr;建立后,若wr上的超顶点不可分离,则wr恰好是完全耦合刚体,就使用一个容器cfci封装wr为超顶点vhfci;否则,wr上的超顶点可分离,若分离wr上的全部超顶点,则剩余集ri恰好是完全耦合刚体,就使用容器cfci封装ri为超顶点vhfci;此时,再拆卸掉wr上全部已经封装了非完全耦合刚体的超顶点的容器,得到wr’,再使用一个新的容器cnfcj封装wr’为超顶点vhnfci;若wr上的超顶点不可分离,则从vhfci开始;否则,从vhnfci开始,继续搜索下一个满足条件②且包含vhfci或vhnfci的广义约束闭环ggccj,若找到,则采用相同的方法构造超顶点;该过程在装配下一条几何约束边之前也持续进行,直至搜索并找到每一个满足条件②且包含最近一次封装得到的超顶点的广义约束闭环、再使用相同方法构造出全部超顶点为止;同时,若边eij与它关联的两个几何实体顶点的并集是刚体,则需使用一个容器封装该并集为超顶点;

同时,将图g视为几何约束图集合的一个元素,则图g是该集合的一个饱和刚体。由此,以容器封装了几何约束系统的每一个完全耦合刚体和每一个完全耦合刚体内的饱和非完全耦合刚体,基于刚体的步动微调求解几何约束系统实现完全分解,得到唯一一个封装了g的每一个完全耦合刚体和每一个完全耦合刚体内的饱和刚体的超顶点;

步骤二、递归求解独立可解的完全耦合刚体。

使用上述方法分解几何约束图g后得到的每一个g的饱和完全耦合刚体wgsfci可以独立求解;求解采用递归方法,自顶向下地求解内层完全耦合刚体,再按照设定的步长,自底向上地移动内层已解的饱和刚体来求解外层完全耦合刚体;称被移动的刚体是饱和的,是相对于包含它的最近外层刚体而言;每求解一个完全耦合刚体时,首先要拆卸掉能够破坏广义约束闭环的最少几何约束边,通过移动内层饱和刚体来满足被拆卸掉的几何约束边实现求解;需要指出:包含基本几何实体顶点的最近一层完全耦合刚体仅由两个几何实体顶点和关联二者的一条几何约束边构成;并且,按照饱和刚体的定义,每一个几何实体顶点也可看作该完全耦合刚体内的饱和刚体;求解它时,移动其中的一个几何实体顶点来满足约束边即可;

步骤三、合并

每一个独立可解的完全耦合刚体求解后,通过坐标的旋转和平移,合并这些已经求解的刚体,构成整个几何约束系统的解。

本发明具有以下有益效果:

以草图为原型,能够快速准确地生成满足设计意图的造型。避免了传统的求解复杂完全耦合刚体时,只能整体应用数值计算而导致的容易陷入局部极值而无法求解,以及求解得到的满足约束的造型在其形态不能满足设计意图等现象的发生。

附图说明

图1几何约束图的超顶点实例。

图2广义约束闭环实例。

图3几何约束求解实例。

图4初始的集合s。

图5装配e1,2,e2,3,e1,3封装构造的超顶点。

图6装配e1,7、e2,4、e4,7、e1,5、e4,5、e3,6、e5,6、e6,7封装构造的超顶点。

图7装配e4,15、e7,14、e14,15、e2,9、e9,15、e5,10、e9,10、e5,17、e10,11、e3,16、e16,17、e6,12、e11,12、e16,18、e17,18封装构造的超顶点。

图8装配e12,18、e13,14、e7,8、e8,13、e12,13、e6,8封装构造的超顶点。

图9装配e12,13封装构造的超顶点。

图10装配e9,19、e15,19封装构造的超顶点。

具体实施方式

为了使本发明的目的及优点更加清楚明白,以下结合实施例对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明的一种基于刚体步动微调的几何约束求解方法,包括如下步骤:

(一)分解。

1、定义超顶点、广义约束闭环、饱和刚体。

(1)超顶点。假设g是几何约束图,称vh是图g的超顶点,如果容器c封装了图g或者封装了图g的真子集的超顶点vh1,vh2,…,vhn和剩余集gs-gs1∪gs2∪…∪gsn,且vh-∪ici=g,是一个容器。如1图中,vh-11,vh-12,vh-21,vh-22和vh-31是符合定义的超顶点。

(2)广义约束闭环。假设eij是关联顶点vi和vj的几何约束边,将表达ggcc=({vi1|1≤i1≤j1},ec12,{vi2|j1+1≤i2≤j2},ec23,{vi3|j2+1≤i3≤j3},…,{vi,n-1|(j,n-2)+1≤i,n-1≤j,n-1},ecn-1,n,{vin|(j,n-1)+1≤in≤jn},en1,v1)称为广义约束闭环,如果vik(1≤k≤jk)满足:①当(j,k-1)+1=jk时,vik是一个几何实体顶点vg或超顶点vh;②当(j,k-1)+1≠jk时,vik是一个超顶点vh。其中,且当n=1时,③对于任意的超顶点(vi1,,k∩vi1,k+1)∩(vi2,k∩vi2,k+1)=φ。如图2,均符合广义约束闭环的定义。按照该定义,几何约束图g中的环也是广义约束闭环,如图1中的ggcc=(vg16,e16,17,vg17,e17,18,vg18,e16,18,vg16).。

(3)饱和刚体。假设ws是约束子域gs包含的一个刚体,如果不存在ws’满足:和ws’也是刚体,则称ws是约束子域gs的一个饱和刚体。

图1中,若假设二维空间中,每一个几何实体顶点vgi的自由度dof(vgi)=2,每一条边eij(i,j表示eij关联的是几何实体顶点vi和vj)的约束度doc(eij)=1,则该几何约束系统是完全耦合刚体,它的超顶点vh-12,vh-31都是该刚体内的饱和刚体,且vh-12是完全耦合的;vh-31是非完全耦合的,被分解为vh-21和vh-22。定义饱和刚体的主要目的是:在求解一个完全耦合刚体wf时,以wf内的饱和刚体为基本单位,通过按照设定步长移动这些饱和刚体来满足约束。

2、基于增广广义约束闭环搜索的超顶点构造。首先,定义一个集合s,初始时,s包含几何约束图g的全部n个几何实体顶点{vi|1≤i≤n};其次,向集合s中持续装配图g的几何约束边,装配时要求:优先考虑关联两个已经被装配的边关联过的几何实体顶点的边;然后再考虑关联一个已经被装配的边关联过的几何实体顶点的边;最后才考虑关联没有被任何装配的边关联过的几何实体顶点的边。每装配一条边eij,,就从eij开始,搜索一个满足下列条件的广义约束闭环ggcci:①ggcci包含eij;②ggcci是s中最小的满足与s中其余全部只关联ggcci顶点的几何约束边的并集恰好是刚体的广义约束闭环。若找到,则选取该并集建立刚体wr。建立后,若wr上的超顶点不可分离,则wr恰好是完全耦合刚体,就使用一个容器cfci封装wr为超顶点vhfci;否则,wr上的超顶点可分离,若分离wr上的全部超顶点,则剩余集ri恰好是完全耦合刚体,就使用容器cfci封装ri为超顶点vhfci。此时,再拆卸掉wr上全部已经封装了非完全耦合刚体的超顶点的容器,得到wr’,再使用一个新的容器cnfcj封装wr’为超顶点vhnfci。若wr上的超顶点不可分离,则从vhfci开始;否则,从vhnfci开始,继续搜索下一个满足条件②且包含vhfci或vhnfci的广义约束闭环ggccj,若找到,则采用相同的方法构造超顶点。该过程在装配下一条几何约束边之前也持续进行,直至搜索并找到每一个满足条件②且包含最近一次封装得到的超顶点的广义约束闭环、再使用相同方法构造出全部超顶点为止。同时,若边eij与它关联的两个几何实体顶点的并集是刚体,它也必是完全耦合刚体,则也要使用一个容器封装该并集为超顶点。由此,就以容器封装了几何约束系统的每一个完全耦合刚体和每一个完全耦合刚体内的饱和非完全耦合刚体,基于刚体的步动微调求解几何约束系统实现了完全分解。因为g是一个刚体,所以分解后得到唯一一个封装了g的每一个完全耦合刚体和每一个完全耦合刚体内的饱和刚体的超顶点。

(二)递归求解独立可解的完全耦合刚体。

使用上述方法分解几何约束图g(即几何约束系统)后得到的每一个g的饱和完全耦合刚体wgsfci可以独立求解。求解采用递归方法,自顶向下地求解内层完全耦合刚体,再按照设定的步长,自底向上地移动内层已解的饱和刚体来求解外层完全耦合刚体。称被移动的刚体是饱和的,是相对于包含它的最近外层刚体而言。每求解一个完全耦合刚体时,首先要拆卸掉能够破坏广义约束闭环的最少几何约束边,通过移动内层饱和刚体来满足被拆卸掉的几何约束边实现求解。需要指出:包含基本几何实体顶点的最近一层完全耦合刚体仅由两个几何实体顶点和关联二者的一条几何约束边构成。并且,按照饱和刚体的定义,每一个几何实体顶点也可看作该完全耦合刚体内的饱和刚体。求解它时,移动其中的一个几何实体顶点来满足约束边即可。例如:图2中,仍然假设每一个几何实体顶点vgi的自由度dof(vgi)=2,每一条边eij的约束度doc(eij)=1,超顶点vh-3是完全耦合刚体,求解vh-3时,可固定vg1,再移动vg5来满足e1,5。同时,被拆卸掉的破坏约束闭环的几何约束边主要是指要通过移动超顶点来满足的几何约束。假设:wgsfci的超顶点是vh,定义算法solve(vh)求解wgsfci。

solve(vh)

{

ifvh是仅由两个几何实体顶点和关联二者的一条几何约束边构成的完全耦合刚体then

固定其中的一个几何实体顶点,按照设定步长,移动另一个几何实体顶点来满足关联二者的几何约束边;

else

拆卸掉最少的几何约束边,破坏vh的广义约束闭环;

forvh的每一个没有包含被拆卸的几何约束边的超顶点vhido

solve(vhi);

endfor

固定其中的一个超顶点,按照设定步长,移动其他超顶点来满足被拆卸掉的几何约

束边;

endif

}

(三)合并

每一个独立可解的完全耦合刚体求解后,通过坐标的旋转和平移,合并这些已经求解的刚体,构成整个几何约束系统的解。坐标的旋转和平移是合并得到解的常规方法。

实施例

以下面的二维几何约束图表示的一个几何约束系统为为例,阐述应用本发明实现几何约束系统的分解、计算及合并过程。假设:每一个几何实体顶点vgi的自由度dof(vgi)=2,每一条边eij的约束度doc(eij)=1,则该几何约束系统是一个刚体。

(一)分解

初始时,几何s由全部几何实体顶点构成,如图4所示;按照装配要求:优先考虑关联两个已经被装配的边关联过的几何实体顶点的边;然后再考虑关联一个已经被装配的边关联过的几何实体顶点的边;最后才考虑关联没有被任何装配的边关联过的几何实体顶点的边。向集合s中装配几何约束边e1,2、e2,3和e1,3,得到分别封装(vg1,vg2,e1,2)、(vg2,vg3,e2,3)和(vg1,vg3,e1,3)的超顶点vh1-2、vh2-3和vg1-3,以及封装vh1-2、vh2-3和vh1-3的超顶点vh(vh1-2,vh2-3,vh1-3),vh(a)表示封装序列a的超顶点。vh1-2、vh2-3和vh1-3构成广义约束闭环,恰好为完全耦合刚体。如图5所示。

此后,装配e1,7、e2,4、e4,7、e1,5、e4,5、e3,6、e5,6,得到分别封装(vg1,vg7,e1,7)、(vg2,vg4,e2,4)、(vg4,vg7,e4,7)、(vg1,vg5,e1,5)、(vg4,vg5,e4,5)、(vg3,vg6,e3,6)、(vg5,vg6,e5,6)的超顶点vh1-7、vh2-4、vh4-7、vh1-5、vh4-5、vh3-6、vh5-6。期间虽然有包含装配边的广义约束闭环生成,但是却没有与只关联它的顶点的几何约束边的并集是完全耦合的刚体生成,直到装配e6,7,封装(vg6,vg7,e6,7)为超顶点vh6-7后,从vh6-7出发,得到最小的与只关联它的顶点的几何约束边e1,7、e2,4、e5,6的并集是完全耦合刚体的广义约束闭环ggcc=({vh6-7,vh4-7,vh4-5,vh1-5,vh(vh1-2,vh2-3,vh1-3),vh3-6,vh6-7}),且包含vh6-7。因此,封装得到新的超顶点vh(vh6-7,vh4-7,vh4-5,vh1-5,vh(vh1-2,vh2-3,vh1-3),vh3-6,vh1-7,vh2-4,vh5-6),是完全耦合刚体,如图6所示

接下来,装配e4,15、e7,14、e14,15、e2,9、e9,15、e5,10、e9,10、e5,17、e10,11、e11,17、e3,16、e16,17、e6,12、e11,12、e16,18,得到分别封装(vg4,vg15,e4,15)、(vg7,vg14,e7,14)、(vg14,vg15,e14,15)、(vg2,vg9,e2,9)、(vg9,vg15,e9,15)、(vg5,vg10,e5,10)、(vg9,vg10,e9,10)、(vg5,vg17,e5,17)、(vg10,vg11,e10,11)、(vg11,vg17,e11,17)、(vg3,vg16,e3,16)、(vg16,vg17,e16,17)、(vg6,vg12,e6,12)、(vg16,vg18,e16,18)的超顶点vh4-15、vh7-14、vh14-15、vh2-9、vh9-15、vh5-10、vh9-10、vh5-17、vh10-11、vh11-17、vh3-16、vh16-17、vh6-12、vh11-12、vh16-18。直到装配e17,18,封装(vg17,vg18,e17,18)为超顶点vh17-18后,从vh17-18出发,得到最小为完全耦合刚体的广义约束闭环ggcc=({vh17-18,vh16-18,vh16-17,vh17-18}),且包含vh17-18。因此,封装得到新的超顶点vh(vh17-18,vh16-18,vh16-17),是完全耦合刚体,如图7所示。

然后,装配e12,18、e13,14、e7,8、e8,13,得到分别封装(vg12,vg18,e12,18)、(vg13,vg14,e13,14)、(vg7,vg8,e7,8)、(vg8,vg13,e8,13)、的超顶点vh12-18、vh13-14、vh7-8、vh8-13,直到装配e6,8,封装(vg6,vg8,e6,8)为超顶点vh6-8后,从vh6-8出发,得到最小为非完全耦合刚体的广义约束闭环ggcc=({vh6-8,vh(vh6-7,vh4-7,vh4-5,vh1-5,vh(vh1-2,vh2-3,vh1-3),vh3-6,vh1-7,vh2-4,vh5-6),vh7-8,vh6-8}),且包含vh6-8。因此,封装分离超顶点vh(vh6-7,vh4-7,vh4-5,vh1-5,vh(vh1-2,vh2-3,vh1-3),vh3-6,vh1-7,vh2-4,vh5-6)的剩余集,得到超顶点vh(vh6-7,vh7-8,vh6-8),是完全耦合刚体,并封装vh(vh6-7,vh4-7,vh4-5,vh-5,vh(vh1-2,vh2-3,vh1-3),vh3-6,vh1-7,vh2-4,vh5-6)和vh(vh6-7,vh7-8,vh6-8)得到超顶点vh(vh(vh6-7,vh4-7,vh4-5,vh1-5,vh(vh1-2,vh2-3,vh1-3),vh3-6,vh1-7,vh2-4,vh5-6),vh(vh6-7,vh7-8,vh6-8)),是非完全耦合刚体,如图8所示。

当装配e12,13时,封装(vg12,vg13,e8,13)为超顶点vh12-13后,从vh12-13出发,得到最小的与只关联它的顶点的几何约束边e11,12、e6,12、e3,16、e5,17、e5,10、e2,9、e4,15、e13,14的并集是完全耦合刚体的广义约束闭环ggcc=({vh12-13,vh12-18,vh(vh17-18,vh16-18,vh16-17),vh11-17,vh10-11,vh9-10,vh9-15,vh14-15,vh7-14,vh(vh(vh6-7,vh4-7,vh4-5,vh1-5,vh(vh1-2,vh2-3,vh1-3),vh3-6,vh1-7,vh2-4,vh5-6),vh(vh6-7,vh7-8,vh6-8)),vh8-13,vh12-13}),且包含vh12-12。因此,封装得到新的超顶点vh(vh12-13,vh12-18,vh(vh17-18,vh16-18,vh16-17),vh11-17,vh10-11,vh9-10,vh9-15,vh14-15,vh7-14,vh(vh6-7,vh4-7,vh4-5,vh1-5,vh(vh1-2,vh2-3,vh1-3),vh3-6,vh1-7,vh2-4,vh5-6),vh11-12,vh6-12,vh3-16,vh5-17,vh5-10,vh2-9,vh4-15,vh13-14),是完全耦合刚体,如图9所示。

又装配e9,19,封装(vg9,vg19,e9,19)为超顶点vh9-19。最后,装配e15,19,封装(vg15,vg19,e15,19)为超顶点vh15-19。从vh15-19出发,得到最小为非完全耦合刚体的广义约束闭环ggcc=({vh15-19,vh(vh12-13,vh12-18,vh(vh17-18,vh16-18,vh16-17),vh11-17,vh10-11,vh9-10,vh9-15,vh14-15,vh7-14,vh(vh(vh6-7,vh4-7,vh4-5,vh1-5,vh(vh1-2,vh2-3,vh1-3),vh3-6,vh1-7,vh2-4,vh5-6),vh(vh6-7,vh7-8,vh6-8)),vh11-12,vh6-12,vh3-16,vh5-17,vh5-10,vh2-9,vh4-15,vh13-14),vh9-19,vh15-19}),并且包含了vh15-19。因此,封装分离超顶点vh(vh12-13,vh12-18,vh(vh17-18,vh16-18,vh16-17),vh11-17,vh10-11,vh9-10,vh9-15,vh14-15,vh7-14,vh(vh(vh6-7,vh4-7,vh4-5,vh1-5,vh(vh1-2,vh2-3,vh1-3),vh3-6,vh1-7,vh2-4,vh5-6),vh(vh6-7,vh7-8,vh6-8)),vh11-12,vh6-12,vh3-16,vh5-17,vh5-10,vh2-9,vh4-15,vh13-14)的剩余集,得到超顶点vh(vh15-19,vh9-15,vh9-19),是完全耦合刚体,并封装vh(vh(vh12-13,vh12-18,vh(vh17-18,vh16-18,vh16-17),vh11-17,vh10-11,vh9-10,vh9-15,vh14-15,vh7-14,vh(vh(vh6-7,vh4-7,vh4-5,vh1-5,vh(vh1-2,vh2-3,vh1-3),vh3-6,vh1-7,vh2-4,vh5-6),vh(vh6-7,vh7-8,vh6-8)),vh11-12,vh6-12,vh3-16,vh5-17,vh5-10,vh2-9,vh4-15,vh13-14)和vh(vh15-19,vh9-15,vh9-19),得到超顶点vh(vh(vh(vh12-13,vh12-18,vh(vh17-18,vh16-18,vh16-17),vh11-17,vh10-11,vh9-10,vh9-15,vh14-15,vh7-14,vh(vh(vh6-7,vh4-7,vh4-5,vh1-5,vh(vh1-2,vh2-3,vh1-3),vh3-6,vh1-7,vh2-4,vh5-6),vh(vh6-7,vh7-8,vh6-8)),vh11-12,vh6-12,vh3-16,vh5-17,vh5-10,vh2-9,vh4-15,vh13-14),vh(vh15-19,vh9-15,vh9-19)),非完全耦合刚体,如图10所示。

同时,可以得到由此,该几何约束系统通过使用容器封装全部的完全耦合刚体和每一个完全耦合刚体内的饱和刚体,实现完全分解。

(二)计算(递归求解独立可解的完全耦合刚体)

该几何约束系统被分解为两个独立可解的完全耦合刚体,分别对应于超顶点vh(vh15-19,vh9-15,vh9-19)和vh(vh(vh12-13,vh12-18,vh(vh17-18,vh16-18,vh16-17),vh11-17,vh10-11,vh9-10,vh9-15,vh14-15,vh7-14,vh(vh6-7,vh4-7,vh4-5,vh1-5,vh(vh1-2,vh2-3,vh1-3),vh3-6,vh1-7,vh2-4,vh5-6),vh11-12,vh6-12,vh3-16,vh5-17,vh5-10,vh2-9,vh4-15,vh13-14)可以分别独立求解。

1、求解vh(vh15-19,vh9-15,vh9-19)

step1:拆卸掉最少能够破坏唯一的广义约束闭环ggcc=({vh15-19,vh9-15,vh9-19,vh15-19})的几何约束边。拆卸掉其中的任意一条边,都可破坏广义约束闭环。假设:e9,19被拆卸掉。

step2:固定vg15,分别移动vg9和vg19来满足e9,15和e15,19。

step3:固定vh9-15,移动vh15-19来满足e9,19,使vh(vh15-19,vh9-15,vh9-19被求解。

2、求解vh’=vh(vh(vh12-13,vh12-18,vh(vh17-18,vh16-18,vh16-17),vh11-17,vh10-11,vh9-10,vh9-15,vh14-15,vh7-14,vh(vh(vh6-7,vh4-7,vh4-5,vh1-5,vh(vh1-2,vh2-3,vh1-3),vh3-6,vh1-7,vh2-4,vh5-6),vh(vh6-7,vh7-8,vh6-8)),,h11-12,vh6-12,vh3-16,vh5-17,vh5-10,vh2-9,vh4-15,vh13-14)

step1:拆卸掉最少能够破坏vh’的所有广义约束闭环的几何约束边。假设,拆卸e9,10、e10,11、e11,12、e12,13、e13,14、e14,15、e6,12、e3,16。

step2:

step2.1:vh(vh6-7,vh4-7,vh4-5,vh1-5,vh(vh1-2,vh2-3,vh1-3),vh3-6,vh1-7,vh2-4,vh5-6)和vh(vh6-7,vh7-8,vh6-8)可分别独立求解,因此

step2.2:

step2.2.1:拆卸最少能够破坏vh(vh6-7,vh4-7,vh4-5,vh1-5,vh(vh1-2,vh2-3,vh1-3),vh3-6,vh1-7,vh2-4,vh5-6)的所有广义约束闭环的几何约束边。假设,拆卸e4,5、e5,6、e6,7、e4,7。

step2.2.2:

step2.2.2.1:拆卸最少能够破坏vh(vh1-2,vh2-3,vh1-3)的所有广义约束闭环的几何约束边。假设,拆卸e1,2。

step2.2.2.2:固定vg3,分别移动vg1和vg2来满足e1,3和e2,3。

step2.2.2.3:固定vh1-3,移动vh2-3来满足e1,2,使vh(vh1-2,vh2-3,vh1-3)被求解。

step2.2.3:固定vh(vh1-2,vh2-3,vh1-3),分别移动vh2-4、vh1-5、vh3-6、vh1-7来满足e4,5、e5,6、e6,7、e4,7,使vh(vh6-7,vh4-7,vh4-5,vh1-5,vh(vh1-2,vh2-3,vh1-3),vh3-6,vh1-7,vh2-4,vh5-6)被求解。

step2.3:

step2.3.1:拆卸最少能够破坏vh(vh6-7,vh7-8,vh6-8)所有广义约束闭环的几何约束边。假设:拆卸e6,8.

step2.3.2:固定vg7,分别移动vg6和vg8来满足e6,7和e7,8。

step2.3.3:固定vh6-7,移动vh7-8来满足e6,8,使vh(vh6-7,vh7-8,vh6-8)被求解。

step2.4::合并vh(vh6-7,vh4-7,vh4-5,vh1-5,vh(vh1-2,vh2-3,vh1-3),vh3-6,vh1-7,vh2-4,vh5-6)和vh(vh6-7,vh7-8,vh6-8)的解而得到vh(vh(vh6-7,vh4-7,vh4-5,vh1-5,vh(vh1-2,vh2-3,vh1-3),vh3-6,vh1-7,vh2-4,vh5-6),vh(vh6-7,vh7-8,vh6-8))的解。

step3:

step3.1:拆卸最少能够破坏vh(vh17-18,vh16-18,vh16-17)所有广义约束闭环的几何约束边。假设:拆卸e17,18。

step3.2:固定vg16,分别移动vg17和vg18来满足e16,17和e16,18。

step3.3:固定vh16-17,移动vh16-18来满足e17,18,使vh(vh17-18,vh16-18,vh16-17)被求解。

step4:固定vh(vh(vh6-7,vh4-7,vh4-5,vh1-5,vh(vh1-2,vh2-3,vh1-3),vh3-6,vh1-7,vh2-4,vh5-6),vh(vh6-7,vh7-8,vh6-8)),分别移动vg9、vg10、vh(vh17-18,vh16-18,vh16-17)、vg11、vg12、vg13、vg14、vg15来满足边e2,9、e5,10、e5,17、e11,17、e12,18、e8,13、e7,14、e4,15。

step5:固定vh(vh(vh6-7,vh4-7,vh4-5,vh1-5,vh(vh1-2,vh2-3,vh1-3),vh3-6,vh1-7,vh2-4,vh5-6),vh(vh6-7,vh7-8,vh6-8)),通过移动vh2-9、vh5-10、vh5-17、vh11-17、vh12-18、vh8-13、vh7-14、vh4-15、vh(vh17-18,vh16-18,vh16-17)来满足边e9,10、e10,11、e11,12、e12,13、e13,14、e14,15、e6,12、e3,16,使vh’被求解。

(三)合并。

合并vh(vh15-19,vh9-15,vh9-19)和vh’的解,得到整个几何约束系统的解。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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