本发明属于三维数字化工艺设计领域,更具体地,涉及一种基于特征的工艺模型更新方法和系统。
背景技术:
1、设计模型变更是工艺设计过程中经常出现的情况,设计模型发生变更后,要同步更新工艺过程。在三维工艺设计模式中,工艺模型是核心数据之一,工艺模型是否正确在很大程度上决定了三维工艺设计是否正确,应此当设计模型变更后,保证工艺模型正确更新是决定工艺过程正确更新的关键一步。现有的工艺模型更新方法主要有三种,第一种是人工调整方法,其原理是按照工艺路线要求,对需要变更的工艺模型手动调整结构参数,使其满足尺寸要求;第二种是重新生成方法,其原理是删除旧的工艺模型,根据新的设计模型重新生成工艺模型;第三种是基于加工元更新的方法,其原理是将旧的加工元与新的设计模型进行比较,根据新的设计模型调整加工元的参数并更新加工元,利用新的加工元重新生成工艺模型。
2、然而,上述几种工艺模型构建方法都存在一些不可忽略的缺陷:
3、第一.现有通过人工调整工艺模型的方法需要大量的人工交互操作,耗时较长,当零件比较复杂、工序比较多时,工作量十分巨大,会延长产品生产周期,并增加生产成本;
4、第二.现有通过重新生成工艺模型的方法完全没有利用到旧的工艺模型数据,当设计模型的变更很小时,重新生成工艺模型代价过高,还可以会丢失一些人工添加的工艺数据;此外,该方法与工艺模型生成方式有很大关联,当工艺生成过程中需要较多的人工交互时,这种方法效率较低,工作量较大;
5、第三.现有基于加工元体的方法需要根据设计模型调整加工元体,加工元体通常需要依赖加工元体库,提前定义好加工元体数据,这种方法十分依赖加工元体库,当出现新类型的零件、又缺乏对应的加工元时,该方法无法完成工艺模型的更新。
技术实现思路
1、针对现有技术的以上缺陷或改进需求,本发明提供了一种基于特征的工艺模型更新方法,其目的在于,解决现有通过人工调整工艺模型的方法需要大量的人工交互操作,耗时较长,当零件比较复杂、工序比较多时,工作量十分巨大,会延长产品生产周期,并增加生产成本的技术问题,以及现有通过重新生成工艺模型的方法完全没有利用到旧的工艺模型数据,当设计模型变更很小时,重新生成工艺模型代价过高,并会丢失一些人工添加的工艺数据的技术问题,以及当工艺生成过程中需要较多的人工交互时,这种方法效率较低,工作量较大的技术问题,以及现有基于加工元体的方法由于非常依赖加工元体库,当出现新类型的零件、又缺乏对应的加工元时,该方法无法完成工艺模型的更新的技术问题。
2、为实现上述目的,按照本发明的一个方面,提供了一种基于特征的工艺模型更新方法,包括以下步骤:
3、(1)初始化旧特征管理器oldfeats、新特征管理器newfeats、匹配特征管理器matchfeats、以及未匹配特征管理器nomatfeats为空;
4、(2)获取三维工艺文件、该三维工艺文件中的特征和工艺模型,并将特征加入管理器oldfeats中;
5、(3)获取三维模型及其中的特征,并将获取的特征加入管理器newfeats中;
6、(4)将管理器oldfeats中的孔特征与管理器newfeats中的孔特征进行匹配,针对管理器oldfeats中匹配成功的孔特征而言,更新其参数,将更新参数后的孔特征加入管理器matchfeats中,并将管理器oldfeats中匹配失败的孔特征加入管理器nomatfeats中。
7、(5)将管理器oldfeats中的槽特征与管理器newfeats中的槽特征进行匹配,针对管理器oldfeats中匹配成功的槽特征而言,更新其参数,将更新参数后的槽特征加入管理器matchfeats中,并将管理器oldfeats中匹配失败的槽特征加入管理器nomatfeats中。
8、(6)将管理器oldfeats中的倒圆特征与管理器newfeats中的倒圆特征进行匹配,针对管理器oldfeats中匹配成功的倒圆特征而言,更新其参数,将更新参数后的倒圆特征加入管理器matchfeats中,并将管理器oldfeats中匹配失败的倒圆特征加入管理器nomatfeats中管理。
9、(7)将管理器oldfeats中的倒角特征与管理器newfeats中的倒角特征进行匹配,针对管理器oldfeats中匹配成功的倒角特征而言,更新其参数,将参数更新后的倒角特征加入管理器matchfeats中,并将管理器oldfeats中匹配失败的倒角特征加入管理器nomatfeats中。
10、(8)将管理器oldfeats中的外圆柱特征与管理器newfeats中的外圆柱特征进行匹配,针对管理器oldfeats中匹配成功的外圆柱特征而言,更新其参数,将参数更新后的外圆柱特征加入管理器matchfeats中,并将管理器oldfeats中匹配失败的外圆柱特征加入管理器nomatfeats中。
11、(9)将管理器oldfeats中的平面特征与管理器newfeats中的平面特征进行匹配,针对管理器oldfeats中匹配成功的平面特征而言,更新其参数,将参数更新后的平面特征加入管理器matchfeats中,并将管理器oldfeats中匹配失败的平面特征加入管理器nomatfeats中。
12、(10)使用管理器matchfeats和nomatfeats的所有特征生成制造特征体,并利用制造特征体对步骤(2)中获取到的工艺模型进行更新,以得到更新后的工艺模型。
13、优选地,旧特征管理器oldfeats、新特征管理器newfeats、匹配特征管理器matchfeats、以及未匹配特征管理器nomatfeats都是容器对象。
14、步骤(2)是使用软件工具从本地文件夹中读取三维工艺文件。
15、三维工艺文件包括工序工步、特征、以及工艺模型三类信息;
16、三维工艺文件中的特征包括孔特征、槽特征、倒圆特征、倒角特征、外圆柱特征、平面特征等;
17、孔特征包括半径、轴线方向、轴线上一点,以及上下两端圆心数据;
18、槽特征包括槽的底面、底面边界、以及槽的深度;
19、倒圆特征包括倒圆面和倒圆半径;
20、倒角特征包括倒角面和倒角半径;
21、外圆柱特征包括外圆柱面、外圆柱面半径、轴线方向、轴线上一点,以及上下两端圆心;
22、平面特征必须包括平面上一点、平面边界、以及平面方向。
23、优选地,步骤(4)包括以下子步骤:
24、(4-1)设置计数器i=0;
25、(4-2)构造距离mindist,并将其初始化为10的9次方;
26、(4-3)初始化两个孔特征optihole1和optihole2为空;
27、(4-4)判断计数器i是否小于管理器oldfeats中特征的总数,如果是则转入步骤(4-5),否则过程结束;
28、(4-5)设置计数器j=0;
29、(4-6)判断计数器j是否小于管理器newfeats中特征的总数,如果是则转入步骤(4-7),否则转入步骤(4-12);
30、(4-7)判断管理器oldfeats中的第i个特征oldfeats[i]和管理器newfeats中的第j个特征newfeats[j]是否都是孔特征,如果是,则转入步骤(4-8),否则转入步骤(4-11);
31、(4-8)判断管理器oldfeats中的第i个特征oldfeats[i]和管理器newfeats中的第j个特征newfeats[j]是否截面相交,如果是则转入步骤(4-9),否则转入步骤(4-11);
32、(4-9)判断管理器oldfeats中的第i个特征oldfeats[i]和管理器newfeats中的第j个特征newfeats[j]之间的最小距离dist是否小于距离mindist,如果是则转入步骤(4-10),否则转入步骤(4-11);
33、(4-10)设置距离mindist=dist,孔特征optihole1=oldfeats[i],孔特征optihole2=newfeats[j];
34、(4-11)设置计数器j=j+1,并返回步骤(4-6);
35、(4-12)判断孔特征optihole1和optihole2是否都不为空,如果是则转入步骤(4-13),否则转入步骤(4-15);
36、(4-13)利用孔特征optihole2的参数更新孔特征optihole1的参数,以得到更新后的孔特征optihole1;
37、(4-14)将步骤(4-13)更新后的孔特征optihole1加入管理器matchfeats中,并转入步骤(4-16);
38、(4-15)将孔特征optihole1加入管理器nomatfeats中,并转入步骤(4-16);
39、(4-16)计数器i=i+1,并返回步骤(4-4)。
40、优选地,步骤(5)包括以下子步骤:
41、(5-1)设置计数器k=0;
42、(5-2)初始化浮点数minarea等于10的9次方;
43、(5-3)初始化两个槽特征optipoc1和optipoc2为空;
44、(5-4)判断计数器k是否小于管理器oldfeats中特征的总数,如果是则转入步骤(5-5),否则过程结束;
45、(5-5)设置计数器l=0;
46、(5-6)判断计数器l是否小于管理器newfeats中特征的总数,如果是则转入步骤(5-7),否则转入步骤(5-12);
47、(5-7)判断第k个特征oldfeats[k]和第l个特征newfeats[l]是否都是槽特征,如果是则转入步骤(5-8),否则转入步骤(5-11);
48、(5-8)判断第k个特征oldfeats[k]和第l个特征newfeats[l]是否截面相交,如果是则转入步骤(5-9),否则转入步骤(5-11);
49、(5-9)判断第k个特征oldfeats[k]和第l个特征newfeats[l]的面积差值darea是否小于浮点数minarea,如果是则转入步骤(5-10),否则转入步骤(5-11);
50、(5-10)设置浮点数minarea=darea,槽特征optipoc1=oldfeats[k],槽特征optipoc2=newfeats[l];
51、(5-11)设置计数器l=l+1,并返回步骤(5-6);
52、(5-12)判断槽特征optipoc1和optipoc2是否都不为空,如果是则转入步骤(5-13),否则转入步骤(5-15);
53、(5-13)利用槽特征optipoc2的参数更新槽特征optipoc1的参数,以得到更新参数后的槽特征optipoc1;
54、(5-14)将步骤(5-13)更新参数后的槽特征optipoc1加入管理器matchfeats中,并转入步骤(5-16);
55、(5-15)将槽特征optipoc1加入管理器nomatfeats中,并转入步骤(5-16);
56、(5-16)计数器k=k+1,返回步骤(5-4)。
57、优选地,步骤(4-8)中判断第i个特征oldfeats[i]和第j个特征newfeats[j]是否截面相交的方法是,首先,获取第i个特征oldfeats[i]的轴线位置点hpt、轴线方向hvec、以及半径hr,并获取第j个特征newfeats[j]的轴线位置点hpt2,然后,将点hpt2投影到点hpt、方向hvec所构成的平面上,以得到投影点proj1,随后,计算投影点proj1到点hpt的距离hdist,如果距离hdist小于半径hr,则说明第i个特征oldfeats[i]和第j个特征newfeats[j]截面相交,否则说明二者截面不相交;
58、步骤(4-9)中获取第i个特征oldfeats[i]和第j个特征newfeats[j]的最小距离dist这一过程具体为,首先,获取第i个特征oldfeats[i]的两端圆心位置,计算两端圆心位置的中间点mid1,然后,获取第j个特征newfeats[j]的两端圆心位置,计算两端圆心位置的中间点mid2,其后,计算点mid1和点mid2之间的距离作为第i个特征oldfeats[i]和第j个特征newfeats[j]的最小距离dist。
59、步骤(5-8)中判断第k个特征oldfeats[k]和第l个特征newfeats[l]是否截面相交这一过程为,首先,获取第k个特征oldfeats[k]的底面botface1,利用工具opencascade获取底面botface1的中间点botpt1,然后,获取第l个特征newfeats[l]的底面botface2,利用工具opencascade将点botpt1投影到底面botface2上,以得到投影点proj2,如果点proj2位于面botface2的内部,则说明第k个特征oldfeats[k]和第l个特征newfeats[l]截面相交,否则说明两个截面不相交;
60、步骤(5-9)中获取第k个特征oldfeats[k]和第l个特征newfeats[l]的面积差值darea这一过程为,首先获取第k个特征oldfeats[k]的底面,利用opencascade工具获取该底面的面积pocarea1,然后,获取第l个特征newfeats[l]的底面,利用opencascade工具获取该底面的面积pocarea2,最后,用面积pocarea1减去面积pocarea2并将结果取绝对值,得到的结果即为面积差值darea。
61、优选地,步骤(6)包括以下子步骤:
62、(6-1)设置计数器m=0;
63、(6-2)初始化浮点数minarea1等于10的9次方;
64、(6-3)初始化两个倒圆特征optible1和optible2为空;
65、(6-4)判断计数器m是否小于管理器oldfeats中特征的总数,如果是则转入步骤(6-5),否则过程结束;
66、(6-5)设置计数器n=0;
67、(6-6)判断计数器n是否小于管理器newfeats中特征的总数,如果是则转入步骤(6-7),否则转入步骤(6-11);
68、(6-7)判断管理器oldfeats中的第m个特征oldfeats[m]和管理器newfeats中的第n个特征newfeats[n]是否都是倒圆特征,如果是则转入步骤(6-8),否则转入步骤(6-10);
69、(6-8)判断第m个特征oldfeats[m]和第n个特征newfeats[n]的面积差值darea1是否小于浮点数minarea1,如果是则转入步骤(6-9),否则转入步骤(6-10);
70、(6-9)设置浮点数minarea1=darea1,倒圆特征optible1=oldfeats[m],倒圆特征optible2=newfeats[n];
71、(6-10)设置计数器n=n+1,并返回步骤(6-6);
72、(6-11)判断倒圆特征optible1和optible2是否都不为空,如果是转入步骤(6-12),否则转入步骤(6-14);
73、(6-12)利用倒圆特征optible2的参数更新倒圆特征optible1的参数,以得到更新参数后的倒圆特征optible1;
74、(6-13)将步骤(6-12)参数更新后的倒圆特征optible1加入管理器matchfeats中,并转入步骤(6-15);
75、(6-14)将倒圆特征optible1加入管理器nomatfeats中;
76、(6-15)设置计数器m=m+1,并返回步骤(6-4);
77、优选地,步骤(8)包括以下子步骤:
78、(8-1)设置计数器o=0;
79、(8-2)初始化浮点数mindist2等于10的9次方;
80、(8-3)初始化两个外圆柱特征opticyl1和opticyl2为空;
81、(8-4)判断计数器o是否小于管理器oldfeats中特征的总数,如果是则转入步骤(8-5),否则过程结束;
82、(8-5)设置计数器p=0;
83、(8-6)判断计数器p是否小于管理器newfeats中特征的总数,如果是则转入步骤(8-7),否则转入步骤(8-12);
84、(8-7)判断管理器oldfeats中的第o个特征oldfeats[o]和管理器newfeats中的第p个特征newfeats[p]是否都是外圆柱特征,如果是则转入步骤(8-8),否则转入步骤(8-11);
85、(8-8)判断第o个特征oldfeats[o]和第p个特征newfeats[p]是否截面相交,如果是则转入步骤(8-9),否则返回步骤(8-11);
86、(8-9)判断第o个特征oldfeats[o]和第p个特征newfeats[p]的最小距离dist2是否小于浮点数mindist2,如果是则转入步骤(8-10),否则转入步骤(8-11);
87、(8-10)设置浮点数mindist2=dist2,外圆柱特征opticyl1=oldfeats[o],opticyl2=newfeats[p];
88、(8-11)设置计数器p=p+1,并返回步骤(8-6);
89、(8-12)判断外圆柱特征opticyl1和外圆柱特征opticyl2是否都不为空,如果是则转入步骤(8-13),否则转入步骤(8-15);
90、(8-13)利用外圆柱特征opticyl2的参数更新外圆柱特征opticyl1的参数,以得到更新参数后的外圆柱特征opticyl1;
91、(8-14)将步骤(8-13)更新参数后的外圆柱特征opticyl1加入管理器matchfeats中,并转入步骤(8-16);
92、(8-15)将外圆柱特征opticyl1加入管理器nomatfeats中;
93、(8-16)设置计数器o=o+1,并返回步骤(8-4);
94、优选地,步骤(6-8)中获取第m个特征oldfeats[m]和第n个特征newfeats[n]的面积差值darea1这一过程为,首先,获取第m个特征oldfeats[m]的底面,利用opencascade工具获取该底面的面积blarea1,获取第n个特征newfeats[n]的底面,利用opencascade工具获取该底面的面积blarea2,用blarea1减去blarea2并将结果取绝对值,得到结果即为面积差值darea1。
95、步骤(8-8)中判断第o个特征oldfeats[o]和第p个特征newfeats[p]是否截面相交这一过程为,首先,获取第o个特征oldfeats[o]的轴线上的一点cylpt1、轴线方向cylvec1、半径cylr,获取第p个特征newfeats[p]的轴线上的一点cylpt2,然后,将点cylpt2投影到点cylpt1和方向cylvec1构成的平面上,以得到投影点proj3,随后,计算点proj3与点cylpt1的距离,如果距离小于半径cylr,则说明第o个特征oldfeats[o]和第p个特征newfeats[p]截面相交,否则说明二者截面不相交。
96、步骤(8-9)中获取第o个特征oldfeats[o]和第p个特征newfeats[p]的最小距离dist2这一过程为,首先,获取第o个特征oldfeats[o]的上下两端圆心位置,并计算得到中间点cylm1,然后,获取第p个特征newfeats[p]的上下两端圆心位置,并计算得到中间点cylm2,最后,计算点cylm1和点cylm2的距离,即为最小距离dist2。
97、优选地,步骤(9)具体包括以下子步骤:
98、(9-1)设置计数器r=0;
99、(9-2)初始化浮点数mindist3为10的9次方;
100、(9-3)初始化两个平面特征optipl1和optipl2为空;
101、(9-4)判断计数器r是否小于管理器oldfeats中特征的总数,如果是则转入步骤(9-5),否则过程结束;
102、(9-5)设置计数器s=0;
103、(9-6)判断计数器s是否小于管理器newfeats中特征的总数,如果是则转入步骤(9-7),否则转入步骤(9-12);
104、(9-7)判断管理器oldfeats中的第r个特征oldfeats[r]和管理器newfeats中的第s个特征newfeats[s]是否都是平面特征,如果是则转入步骤(9-8),否则转入步骤(9-11);
105、(9-8)判断第r个特征oldfeats[r]和第s个特征newfeats[s]是否截面相交,如果是则转入步骤(9-9),否则转入步骤(9-11);
106、具体而言,判断第r个特征oldfeats[r]和第s个特征newfeats[s]是否截面相交这一过程为,首先,获取第r个特征oldfeats[r]对应的面plf1,获取第s个特征newfeats[s]赌赢的面plf2,然后,利用工具opencascade获取面plf1的中点plm1,将点plm1投影到面plf2上,以得到投影点proj4,如果投影点proj4位于面plf2内部,则说明第r个特征oldfeats[r]和第s个特征newfeats[s]截面相交,否则说明两个截面不相交.
107、(9-9)判断第r个特征oldfeats[r]和第s个特征newfeats[s]的最小距离dist3是否小于浮点数mindist3,如果是则转入步骤(9-10),否则转入步骤(9-11);
108、具体而言,获取第r个特征oldfeats[r]和第s个特征newfeats[s]的最小距离dist3这一过程为,首先,获取第r个特征oldfeats[r]对应的面plf3,获取第s个特征newfeats[s]对应的面plf4,然后,利用工具opencascade获取面plf3的中点plm3,获取面plf4的中点plm4,最后,计算点plm3与点plm4的距离,即为最小距离dist3。
109、(9-10)设置浮点数mindist3=dist3,平面特征optipl1=oldfeats[r],optipl2=newfeats[s];
110、(9-11)设置计数器s=s+1,并返回步骤(9-6);
111、(9-12)判断平面特征optipl1和optipl2是否都不为空,如果是则转入步骤(9-13),否则转入步骤(9-15);
112、(9-13)利用平面特征optipl2的参数更新平面特征optipl1的参数,以得到更新参数后的平面特征optipl1;
113、(9-14)将步骤(9-13)更新参数后的平面特征optipl1加入管理器matchfeats中,并转入步骤(9-16);
114、(9-15)将平面特征optipl1加入管理器nomatfeats中;
115、(9-16)设置计数器r=r+1,并返回步骤(9-4)。
116、按照本发明的另一方面,提供了一种基于特征的工艺模型更新系统,包括:
117、第一模块,用于初始化旧特征管理器oldfeats、新特征管理器newfeats、匹配特征管理器matchfeats、以及未匹配特征管理器nomatfeats为空;
118、第二模块,用于获取三维工艺文件、该三维工艺文件中的特征和工艺模型,并将特征加入管理器oldfeats中;
119、第三模块,用于获取三维模型及其中的特征,并将获取的特征加入管理器newfeats中;
120、第四模块,用于将管理器oldfeats中的孔特征与管理器newfeats中的孔特征进行匹配,针对管理器oldfeats中匹配成功的孔特征而言,更新其参数,将更新参数后的孔特征加入管理器matchfeats中,并将管理器oldfeats中匹配失败的孔特征加入管理器nomatfeats中。
121、第五模块,用于将管理器oldfeats中的槽特征与管理器newfeats中的槽特征进行匹配,针对管理器oldfeats中匹配成功的槽特征而言,更新其参数,将更新参数后的槽特征加入管理器matchfeats中,并将管理器oldfeats中匹配失败的槽特征加入管理器nomatfeats中。
122、第六模块,用于将管理器oldfeats中的倒圆特征与管理器newfeats中的倒圆特征进行匹配,针对管理器oldfeats中匹配成功的倒圆特征而言,更新其参数,将更新参数后的倒圆特征加入管理器matchfeats中,并将管理器oldfeats中匹配失败的倒圆特征加入管理器nomatfeats中管理。
123、第七模块,用于将管理器oldfeats中的倒角特征与管理器newfeats中的倒角特征进行匹配,针对管理器oldfeats中匹配成功的倒角特征而言,更新其参数,将参数更新后的倒角特征加入管理器matchfeats中,并将管理器oldfeats中匹配失败的倒角特征加入管理器nomatfeats中。
124、第八模块,用于将管理器oldfeats中的外圆柱特征与管理器newfeats中的外圆柱特征进行匹配,针对管理器oldfeats中匹配成功的外圆柱特征而言,更新其参数,将参数更新后的外圆柱特征加入管理器matchfeats中,并将管理器oldfeats中匹配失败的外圆柱特征加入管理器nomatfeats中。
125、第九模块,用于将管理器oldfeats中的平面特征与管理器newfeats中的平面特征进行匹配,针对管理器oldfeats中匹配成功的平面特征而言,更新其参数,将参数更新后的平面特征加入管理器matchfeats中,并将管理器oldfeats中匹配失败的平面特征加入管理器nomatfeats中。
126、第十模块,用于使用管理器matchfeats和nomatfeats的所有特征生成制造特征体,并利用制造特征体对第二模块获取到的工艺模型进行更新,以得到更新后的工艺模型。
127、总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
128、(1)本发明由于采用了步骤(4)至(9),其利用特征匹配算法识别了孔特征、槽特征、倒圆特征、倒圆特征、倒角特征、平面特征,自动完成了特征参数的更新,自动更新工艺模型,人工交互操作少,耗时短,工作量小。
129、(2)本发明由于采用了步骤(4)至(9),在特征匹配过程中只修改了特征部分参数,没有删除特征,特征的其他数据(如特征加工精度,关联尺寸等)能得到保留,因此能够充分利用到工艺文件的数据,不易造成数据丢失现场,并且当设计模型变更较小时,计算量小,更新工艺模型代价不高。
130、(3)本发明通过特征更新完成工艺模型更新,计算效率与准确性高,且与特征相关,与加工元体无关,不依赖加工元体库。