本發(fā)明屬于三維數(shù)字化工藝設計領域,更具體地,涉及一種生成機加件工序模型的方法和系統(tǒng)。
背景技術:
1、機加工是用刀具從毛坯(或型材)上切除多余的材料,以便獲得形狀、尺寸、精度和表面質量等都符合要求的零件的加工過程,利用機加工方法形成的零件稱為機加件。機加件工藝設計方法可大致分為二維工藝設計和三維工藝設計兩類,三維工藝設計技術通過三維工序模型來完整表達產(chǎn)品工藝信息,詳細規(guī)定三維模型中產(chǎn)品定義和工藝信息的表達方法。工序模型是指,產(chǎn)品從原材料形態(tài)到最終成品的過程中,反映零件模型各工序加工過程所對應的模型狀態(tài)。
2、目前常用的工序模型生成方法主要有三種,第一種是通過正向建模繪制工藝模型,其原理是按照工藝路線要求,人工交互構建一系列三維工序模型,實現(xiàn)毛坯與最終成品模型之間的演變;第二種是特征抑制生成方法,該方法以最后一個工序為起點逐漸向前一工序演進,根據(jù)每個工步關聯(lián)的特征和加工信息對幾何模型進行幾何操作,逐步將該工序模型恢復為未加工時的模型狀態(tài);第三種方法是基于加工元體的三維工藝模型構建方法,其原理根據(jù)制造特征構造制造特征體,依據(jù)加工余量將制造特征體離散成一系列加工元體,以加工元體作為基本單元,通過布爾運算逐步生成三維工藝模型。
3、然而,上述幾種工藝模型構建方法都具有一些不可忽略的缺陷。
4、第一.通過正向建模繪制工藝模型的方法需要大量的人工交互操作,耗時較長,當零件比較復雜,工序比較多時,工作量十分巨大,會延長產(chǎn)品生產(chǎn)周期,增加生產(chǎn)成本;
5、第二.特征抑制方法的工藝模型設計順序與真實的零件加工順序相反,工序模型設計更易出錯且不易校驗,同時對于復雜的機加件,復雜的特征抑制后,剩余特征不能自動補全模型,從而無法生成工序模型;
6、第三.基于加工元體的方法大多需要構建一個參數(shù)化的加工元庫,加工元庫中通常包含簡單的槽、孔、階梯孔等簡單特征,對于簡單產(chǎn)品可以正確生成工藝模型,但是對于復雜產(chǎn)品,該方法適用性不高。
技術實現(xiàn)思路
1、針對現(xiàn)有技術的以上缺陷或改進需求,本發(fā)明提供了一種生成機加件工序模型的方法和系統(tǒng),其目的在于,解決現(xiàn)有通過正向建模繪制工藝模型的方法由于需要大量的人工交互操作,耗時較長,當零件比較復雜,工序比較多時,工作量十分巨大,會延長產(chǎn)品生產(chǎn)周期,增加生產(chǎn)成本的技術問題,以及現(xiàn)有特征抑制方法工序模型設計容易出錯且不易校驗,同時對于復雜的機加件,復雜的特征抑制后,剩余特征不能自動補全模型,從而無法生成工序模型的技術問題,以及現(xiàn)有基于加工元體的方法對于復雜產(chǎn)品的適用性不高的技術問題。
2、為實現(xiàn)上述目的,按照本發(fā)明的一個方面,提供了一種生成機加件工序模型的方法,包括以下步驟:
3、(1)獲取設計模型,并讀取該設計模型中所有的面,并將每個面加入預先設置的管理器allfaces中;
4、(2)針對步驟(1)獲取的每個面而言,識別所有孔特征并構造孔特征對象、獲取孔特征數(shù)據(jù)并保存到空特征對象中,將獲取的所有孔特征對象加入預先建立的管理器allfeatures中。
5、(3)針對步驟(1)得到的管理器allfaces中的每個面而言,獲取該面對應的槽特征,并將獲取的槽特征加入預先建立的管理器allfeatures中,并計算每個槽特征的對應參數(shù)。
6、(4)針對步驟(1)得到的管理器allfaces中的每個面而言,獲取該面的倒圓特征,并將獲取的該面的倒圓特征加入管理器allfeatures中。
7、(5)針對步驟(1)得到的管理器allfaces中的每個面而言,獲取該面的倒角特征,將獲取的該面的倒角特征加入管理器allfeatures中。
8、(6)針對步驟(1)得到的管理器allfaces中的每個面而言,獲取該面的外圓柱特征(例如圓柱的軸線位置、圓柱兩端圓心的位置等),將獲取的該面的外圓柱特征加入管理器allfeatures中。
9、(7)針對步驟(1)得到的管理器allfaces中的每個面而言,獲取該面的平面特征,并將獲取到的該面的平面特征加入管理器allfeatures。
10、(8)獲取工藝設計師根據(jù)設計模型編制的工藝路線,其包括多道加工工序,并且每道加工工序與管理器allfeatures中的一個特征相關聯(lián);
11、(9)針對管理器allfeatures中的每一個特征而言,生成該特征對應的制造特征體,并將該制造特征體記錄到管理器allfeatures中的該特征中。
12、(10)針對步驟(8)獲取的工藝路線中的每一道加工工序而言,獲取該加工工序在管理器allfeatures中所關聯(lián)的特征,從該特征中獲取記錄的制造特征體,獲取該加工工序在工藝路線中前一道加工工序的工序模型,并將該工序模型與該特征對應的制造特征體做布爾差運算,以得到該加工工序的工序模型。
13、優(yōu)選地,孔特征包括簡單孔、埋頭孔、沉頭孔、錐孔;
14、孔特征對應的孔特征數(shù)據(jù)包括孔的類型、組成孔的面、孔的軸線方向、孔的大半徑、孔的小半徑、孔的軸線上的一點、孔的入口點、以及孔的終止點等。
15、管理器allfaces、管理器allfeatures、以及管理器allholes都是容器對象,用于存放多個任意類型的數(shù)據(jù)。
16、優(yōu)選地,步驟(2)包括以下子步驟:
17、(2-1)設置計數(shù)器i=0,并初始化管理器allholes為空;
18、(2-2)判斷計數(shù)器i是否小于管理器allfaces中面的總數(shù),如果是則轉入步驟(2-3),否則轉入步驟(2-8);
19、(2-3)判斷管理器allfaces中第i個面allfaces[i]是否是圓柱面,如果是則轉入步驟(2-4),否則轉入步驟(2-6);
20、(2-4)使用第i個面allfaces[i]構造簡單孔特征,并將構造的孔特征加入管理器allholes中,然后轉入步驟(2-5);
21、(2-5)設置計數(shù)器i=i+1,并返回步驟(2-2);
22、(2-6)判斷第i個面allfaces[i]是否是圓錐面,如果是則轉入步驟(2-7),否則返回步驟(2-5);
23、(2-7)使用第i個面allfaces[i]構造錐孔特征,并將構造的錐孔特征加入管理器allholes中,然后返回步驟(2-5);
24、(2-8)設置計數(shù)器j=0;
25、(2-9)判斷計數(shù)器j是否小于管理器allholes中孔特征的總數(shù),如果是則轉入步驟(2-10),否則過程結束;
26、(2-10)判斷管理器allholes中的第j個孔特征allholes[j]是否存在于預先設置的特征管理器allfeatures中,如果是則轉入步驟(2-20),否則轉入步驟(2-11);
27、(2-11)設置計數(shù)器k=0;
28、(2-12)判斷計數(shù)器k是否小于管理器allholes中孔特征的總數(shù),如果是則轉入步驟(2-14),否則轉入步驟(2-13);
29、(2-13)將第j個孔allholes[j]加入管理器allfeatures中,并轉入步驟(2-20);
30、(2-14)判斷第k個孔allholes[k]是否存在于管理器allfeatures中,如果是則轉入步驟(2-19),否則轉入步驟(2-15);
31、(2-15)判斷第j個孔allholes[j]和第k個孔allholes[k]能否組成沉頭孔,如果是則轉入步驟(2-16),否則轉入步驟(2-17);
32、(2-16)利用第j個孔allholes[j]和第k個孔allholes[k]構造沉頭孔,并將構造的沉頭孔加入管理器allfeatures中,然后轉入步驟(2-20);
33、(2-17)判斷第j個孔allholes[j]和第k個孔allholes[k]能否組成埋頭孔,如果是則轉入步驟(2-18),否則轉入步驟(2-19);
34、(2-18)利用第j個孔allholes[j]和第k個孔allholes[k]構造埋頭孔,將埋頭孔加入管理器allfeatures中,然后轉入步驟(2-20);
35、(2-19)設置計數(shù)器k=k+1,并返回步驟(2-12);
36、(2-20)設置計數(shù)器j=j+1,并返回步驟(2-9)。
37、優(yōu)選地,步驟(2-4)中使用第i個面allfaces[i]構造簡單孔特征這一過程,具體為構造一個孔特征對象,將面allfaces[i]記錄到孔特征對象中,利用工具opencascade獲取面allfaces[i]的數(shù)據(jù)如兩端圓心位置,半徑,軸線位置,將面allfaces[i]的上述數(shù)據(jù)記錄到孔特征對象中。
38、步驟(2-7)中使用第i個面allfaces[i]構造錐孔特征這一過程,具體為構造一個錐孔特征對象,將面allfaces[i]記錄到錐孔特征對象中,利用工具opencascade獲取面allfaces[i]中的數(shù)據(jù)(如兩端圓心位置、半徑、軸線位置),最后將面allfaces[i]的上述數(shù)據(jù)記錄到錐孔特征對象中。
39、步驟(2-15)中判斷孔allholes[j]和孔allholes[k]能否組成沉頭孔的條件是,孔allholes[j]包含的面和孔allholes[k]包含的面直接相連,并且孔allholes[j]的軸線和孔allholes[k]的軸線重合,如果滿足這兩個條件,則說明孔allholes[j]和孔allholes[k]能組成沉頭孔,否則說明二者不能組成沉頭孔。
40、步驟(2-16)中利用孔allholes[j]和孔allholes[k]構造沉頭孔這一過程為,先構造一個沉頭孔對象,然后利用孔allholes[j]所在的面和孔allholes[k]所在的面計算沉頭孔參數(shù),并將計算得到的沉頭孔參數(shù)記錄到沉頭孔對象中,從而形成最終的沉頭孔。
41、步驟(2-17)中判斷第j個孔allholes[j]和第k個孔allholes[k]能否組成埋頭孔的條件是:①孔allholes[j]和孔allholes[k]所在的面直接相連;②孔allholes[j]和孔allholes[k]中的一個是簡單孔,另一個是錐孔;③孔allholes[j]和孔allholes[k]的軸線必須重合。如果三個條件都能滿足,則說明孔allholes[j]和孔allholes[k]能組成埋頭孔,否則說明孔allholes[j]和孔allholes[k]不組成埋頭孔。
42、步驟(2-18)中構造埋頭孔的過程為:先構造一個埋頭孔對象,然后根據(jù)第j個孔allholes[j]和第k個孔allholes[k]包含的面計算埋頭孔的參數(shù),并將計算得到的埋頭孔參數(shù)記錄到埋頭孔對象中,從而形成最終的埋頭孔。
43、優(yōu)選地,步驟(3)包括以下子步驟:
44、(3-1)設置計數(shù)器m=0,并初始化相鄰面集合alladjs為空;
45、(3-2)判斷計數(shù)器m是否小于管理器allfaces中面的總數(shù),如果是則轉入步驟(3-3),否則過程結束;
46、(3-3)判斷管理器allfaces中的第m個面allfaces[m]是否是平面,如果是則轉入步驟(3-4),否則轉入步驟(3-11);
47、(3-4)獲取第m個面allfaces[m]在設計模型中的所有相鄰面,并將所有相鄰面添加到相鄰面集合alladjs中;
48、(3-5)設置計數(shù)器n=0;
49、(3-6)判斷計數(shù)器n是否小于相鄰面集合alladjs中相鄰面的總數(shù),如果是則轉入步驟(3-7),否則轉入步驟(3-10);
50、(3-7)判斷相鄰面集合alladjs中的第n個相鄰面alladjs[n]是否是合法平面,如果是則轉入步驟(3-9),否則轉入步驟(3-8);
51、(3-8)判斷相鄰面集合alladjs中的第n個相鄰面alladjs[n]是否是合法圓柱面,如果是則轉入步驟(3-9),否則轉入步驟(3-11);
52、(3-9)設置計數(shù)器n=n+1,并返回步驟(3-6);
53、(3-10)利用相鄰面集合alladjs中的面allfaces[i]和所有相鄰面alladjs構造槽特征,并且在槽特征中記錄面allfaces[i]為底面,將槽特征加入管理器allfeatures中管理,返回步驟(3-11);
54、(3-11)計數(shù)器m=m+1,返回步驟(3-2);
55、優(yōu)選地,步驟(4)包括以下子步驟:
56、(4-1)設置計數(shù)器o=0;
57、(4-2)判斷計數(shù)器o是否小于管理器allfaces中面的總數(shù),如果是則轉入步驟(4-3),否則過程結束;
58、(4-3)判斷管理器allfaces中第o個面allfaces[o]是否是合法的倒圓面,如果是則轉入步驟(4-4),否則轉入步驟(4-5);
59、(4-4)利用第o個面allfaces[o]構造倒圓特征,并將該倒圓特征加入管理器allfeatures中;
60、(4-5)設置計數(shù)器o=o+1,返回步驟(4-2);
61、步驟(5)包括以下子步驟:
62、(5-1)設置計數(shù)器p=0;
63、(5-2)判斷計數(shù)器p是否小于管理器allfaces中面的總數(shù),如果是則轉入步驟(5-3),否則過程結束;
64、(5-3)判斷管理器allfaces中的第p個面allfaces[p]是否是合法的倒角面,如果是則轉入步驟(5-4),否則轉入步驟(5-5);
65、(5-4)利用第p個面allfaces[p]構造倒角特征,并將該倒角特征加入管理器allfeatures中;
66、(5-5)計數(shù)器p=p+1,返回步驟(5-2);
67、優(yōu)選地,步驟(6)包括以下子步驟:
68、(6-1)設置計數(shù)器q=0;
69、(6-2)判斷計數(shù)器q是否小于管理器allfaces中面的總數(shù),如果是則轉入步驟(6-3),否則過程結束;
70、(6-3)判斷管理器allfaces中的第q個面allfaces[q]是否是合法的外圓柱面,如果是則轉入步驟(6-4),否則轉入步驟(6-5);
71、(6-4)利用第q個面allfaces[q]構造外圓柱特征,并將該外圓柱特征加入管理器allfeatures中;
72、(6-5)設置計數(shù)器q=q+1,返回步驟(6-2);
73、步驟(7)包括以下子步驟:
74、(7-1)設置計數(shù)器r=0;
75、(7-2)判斷計數(shù)器r是否小于管理器allfaces中面的總數(shù),如果是則轉入步驟(7-3),否則過程結束;
76、(7-3)判斷管理器allfaces中第r個面allfaces[r]是否是合法的平面,如果是則轉入步驟(7-4),否則轉入步驟(7-5);
77、(7-4)利用第r個面allfaces[r]構造平面特征,并將該平面特征加入管理器allfeatures中;
78、(7-5)計數(shù)器r=r+1,并返回步驟(7-2)。
79、優(yōu)選地,步驟(9)包括以下子步驟:
80、(9-1)設置計數(shù)器s=0;
81、(9-2)判斷計數(shù)器s是否小于管理器allfeatures中特征的總數(shù),如果是則轉入步驟(9-3),否則過程結束;
82、(9-3)判斷管理器allfeatures中第s個特征allfeatures[s]是否是孔特征,如果是則轉入步驟(9-4),否則轉入步驟(9-5);
83、(9-4)為孔特征allfeatures[s]生成對應的制造特征體,并將該制造特征體記錄到孔特征allfeatures[s]中,然后轉入步驟(9-11);
84、(9-5)判斷第s個特征allfeatures[s]是否是槽特征,如果是則轉入步驟(9-6),否則轉入步驟(9-7);
85、(9-6)為槽特征allfeatures[s]生成對應的制造特征體,并將該制造特征體記錄到特征allfeatures[s]中,然后轉入步驟(9-11);
86、(9-7)判斷特征allfeatures[s]是否是外圓柱特征,如果是則轉入步驟(9-8),否則轉入步驟(9-9);
87、(9-8)生成外圓柱特征allfeatures[s]對應的制造特征體,并將制造特征體記錄到特征allfeatures[s]中,然后轉入步驟(9-11);
88、(9-9)判斷特征allfeatures[s]是否是平面特征,如果是則轉入步驟(9-10),否則轉入步驟(9-11);
89、(9-10)生成平面特征allfeatures[s]對應的制造特征體,并將該制造特征體記錄到特征allfeatures[s]中,然后轉入步驟(9-11);
90、(9-11)計數(shù)器s=s+1,并返回步驟(9-2);
91、優(yōu)選地,步驟(10)具體為,對工藝路線中的每一道加工工序而言,首先,獲取該加工工序在管理器allfeatures中所關聯(lián)的特征,然后,根據(jù)該特征的類型,分別作以下兩類處理:
92、①如果特征的類型是孔、槽、外圓柱、或者平面,則直接獲取到特征中記錄的制造特征體,然后利用工具opencascade將該制造特征體與前一道加工工序的工序模型做布爾差運算,從而得到當前加工工序的工序模型;
93、②如果特征的類型是倒圓或倒角,首先,根據(jù)該特征獲取對應的面pface,然后,獲取倒圓大小或倒角厚度fval,利用工具opencascade獲取面pface上的一點pt和方向vec4,將點pt沿方向vec4偏置距離fval,得到一個新點offpt,獲取前一個加工工序的工序模型,利用工具opencascade獲取該工序模型的所有邊,從所有邊中找到一條距離點offpt最近的邊pedge,利用工具opencascade對邊pedge做倒圓或倒角處理,得到的模型即為加工工序的工序模型。
94、按照本發(fā)明的另一方面,提供了一種生成機加件工序模型的系統(tǒng),包括:
95、第一模塊,用于獲取設計模型,并讀取該設計模型中所有的面,并將每個面加入預先設置的管理器allfaces中;
96、第二模塊,用于針對第一模塊獲取的每個面而言,識別所有孔特征并構造孔特征對象、獲取孔特征數(shù)據(jù)并保存到空特征對象中,將獲取的所有孔特征對象加入預先建立的管理器allfeatures中。
97、第三模塊,用于針對第一模塊得到的管理器allfaces中的每個面而言,獲取該面對應的槽特征,并將獲取的槽特征加入預先建立的管理器allfeatures中,并計算每個槽特征的對應參數(shù)。
98、第四模塊,用于針對第一模塊得到的管理器allfaces中的每個面而言,獲取該面的倒圓特征,并將獲取的該面的倒圓特征加入管理器allfeatures中。
99、第五模塊,用于針對第一模塊得到的管理器allfaces中的每個面而言,獲取該面的倒角特征,將獲取的該面的倒角特征加入管理器allfeatures中。
100、第六模塊,用于針對第一模塊得到的管理器allfaces中的每個面而言,獲取該面的外圓柱特征(例如圓柱的軸線位置、圓柱兩端圓心的位置等),將獲取的該面的外圓柱特征加入管理器allfeatures中。
101、第七模塊,用于針對第一模塊得到的管理器allfaces中的每個面而言,獲取該面的平面特征,并將獲取到的該面的平面特征加入管理器allfeatures。
102、第八模塊,用于獲取工藝設計師根據(jù)設計模型編制的工藝路線,其包括多道加工工序,并且每道加工工序與管理器allfeatures中的一個特征相關聯(lián);
103、第九模塊,用于針對管理器allfeatures中的每一個特征而言,生成該特征對應的制造特征體,并將該制造特征體記錄到管理器allfeatures中的該特征中。
104、第十模塊,用于針對第八模塊獲取的工藝路線中的每一道加工工序而言,獲取該加工工序在管理器allfeatures中所關聯(lián)的特征,從該特征中獲取記錄的制造特征體,獲取該加工工序在工藝路線中前一道加工工序的工序模型,并將該工序模型與該特征對應的制造特征體做布爾差運算,以得到該加工工序的工序模型。
105、總體而言,通過本發(fā)明所構思的以上技術方案與現(xiàn)有技術相比,能夠取得下列有益效果:
106、(1)本發(fā)明由于采用了步驟(2)至步驟(7),其利用特征識別算法識別了孔特征,槽特征,倒圓特征,倒角特征,外圓柱面特征,平面特征,將多個面構造成一個特征管理,快速獲取了特征參數(shù),為后續(xù)工序模型的自動生成做了數(shù)據(jù)準備,同時由于采用了步驟(9)和步驟(10)自動生成工序模型,因此計算過程效率高,計算速度快;
107、(2)本發(fā)明由于采用了步驟(9),針對倒圓特征和倒角特征生成工序模型做了特殊處理,充分考慮了倒圓和倒角由于結構復雜難以生成制造特征體的性質,采用了查找邊然后正向倒圓或倒角的方法,提高了工序模型生成的準確率;
108、(3)本發(fā)明邏輯簡單,其采用的特征識別步驟、制造特征體生成步驟、以及工序模型生成步驟易于排錯,同時也方便調整擴充,對不同場景稍微調整便可適應,提高了發(fā)明的適用性;
109、(4)本發(fā)明操作簡單,特征識別過程和工序模型自動生成過程均可自動進行,操作時只需要讀取模型文件等幾步操作即可生成工藝模型,操作簡單便捷,對使用者的要求不高。