唐碩
摘要:為了解決在工程實踐中非參數(shù)化三維零件模型的信息提取效率不高的問題,研究了一種基于邊界表示法的孔類零件的特征識別方法。首先根據(jù)孔類特征的屬性參數(shù)建立特征知識庫,然后論述了NX/Open在特征識別和信息提取的推理過程中的應(yīng)用,最后通過實例詳細介紹了特征識別的實現(xiàn)過程,完成了典型孔類特征的識別以及特征信息的提取。
關(guān)鍵詞:特征識別;邊界表示法;NX/Open;二次開發(fā)
中圖分類號:TP391.41? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻標(biāo)識碼:A? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文章編號:1674-957X(2021)08-0194-02
0? 引言
隨著CAD技術(shù)的發(fā)展,逐漸出現(xiàn)了很多種三維實體模型表示方法,如邊界表示法、體素構(gòu)造表示法、參數(shù)表示法等,目前最普遍、無歧義的特征識別方法是邊界表示法[1-3]。邊界表示法是通過幾何信息和幾何信息間的拓撲關(guān)系來定義和描寫一個三維實體模型的方法,它能夠為設(shè)計人員提供一個完整邊界表示模式[4]。
在工程實踐中非參數(shù)化三維實體模型是很常見的,雖然這種三維模型的特征信息數(shù)據(jù)丟失了,但是在建模時所產(chǎn)生的特征的幾何信息和拓撲信息仍然保存在模型中,包括以及它們之間的特定位置關(guān)系[5]。技術(shù)人員可以基于邊界表示法的原理,建立三維實體模型,按照由高層次到低層次的順序,與特征識別知識庫中的信息進行對比,即通過實體找到符合要求的面,通過面找到符合要求的環(huán),通過環(huán)找到環(huán)上的邊,繼而找到邊的兩個端點的信息,就可完成特征的識別。
1? 建立特征識別知識庫
根據(jù)邊界表示法進行特征識別的算法要求,首先應(yīng)該收集典型特征幾何信息和其拓撲關(guān)系,建立特征的知識庫,為特征識別提供信息匹配數(shù)據(jù)。
本文以對典型孔特征的識別為例,來闡述構(gòu)建特征知識庫的方法。在UG NX中,典型的孔特征有四種形式:簡單孔、沉頭孔、埋頭孔、錐孔??滋卣鞯陌仓妹婧痛┩该婵赡苁瞧矫?、圓柱面、球面等表面類型,按照表面類型不同,可以進一步對孔特征分類。本文選擇安置面和穿透面均為平面的情況進行討論。每種孔還可以進一步分為通孔與盲孔。由于錐孔是否為通孔不會對特征的屬性參數(shù)有影響,故不作進一步分類。因此,共有7種相關(guān)的孔特征模式,分別是:通的簡單孔和非通的簡單孔;通的沉頭孔和非通的沉頭孔;通的埋頭孔和非通的埋頭孔以及錐孔。圖1為7種孔特征的結(jié)構(gòu)示例圖。
每個特征都是由幾何信息和幾何信息的拓撲關(guān)系構(gòu)成,幾何信息是指特征中所有幾何元素的尺寸和位置關(guān)系;拓撲信息是指特征中各個表面、環(huán)、邊、點之間的層次結(jié)構(gòu)。這些信息讓每個特征都具有與其他特征相區(qū)別的特定屬性,特征識別就是要充分利用這種屬性的特殊性。對于不同的孔特征都對應(yīng)著不同的特征屬性參數(shù),見表1。
2? 用NX/Open來實現(xiàn)推理過程
為了滿足用戶的個性化需要,UG NX平臺上為使用者提供了二次開發(fā)編程語言NX/Open[6]。NX/Open中常用的高級編程語言有VB、C、C++、C#、KF、.NET、Java等。NX/Open為UG NX的二次開發(fā)提供了多種二次開發(fā)工具包,如MenuScript、Block UI Styler、NX/Open API等,通過使用這些二次開發(fā)工具,使用者能夠根據(jù)自身需求開發(fā)出具有UG NX風(fēng)格的特定功能模塊。
一個完整的特征識別UG NX二次開發(fā)的總體流程包括:設(shè)置系統(tǒng)環(huán)境變量、搭建開發(fā)環(huán)境;編寫菜單腳本文件和工具條文件;創(chuàng)建特征識別對話框;在Visual Studio中建立工程,編譯、調(diào)試、運行程序代碼,生成可用于執(zhí)行的動態(tài)鏈接庫文件;將動態(tài)鏈接庫文件和對話框文件與UG NX系統(tǒng)集成,供用戶調(diào)用;應(yīng)用程序開發(fā)完成。
特征識別分為兩個部分:一是找到與特征知識庫中相匹配的特征;二是得到所匹配特征相應(yīng)的參數(shù),都可以利用NX/Open提供的二次開發(fā)函數(shù)來實現(xiàn)[7]。調(diào)用二次開發(fā)函數(shù),可以實現(xiàn)三維模型的遍歷,得到模型上所有的face、loop、edge、vertex的信息及它們之間的結(jié)構(gòu)關(guān)系,將這些結(jié)構(gòu)關(guān)系與預(yù)定義特征知識庫中的信息進行比對,找出符合要求的幾何特征,從而完成第一個部分。通過二次開發(fā)函數(shù)可以測量已匹配特征上幾何元素的數(shù)據(jù),如距離、直徑、角度等,然后將這些數(shù)據(jù)匹配到相應(yīng)的特征參數(shù)上,從而完成第二個部分。
下面列出幾個在特征識別種會用到的二次開發(fā)函數(shù)及其釋義:
int UF_MODL_ask_face_body;//查詢面上的體
int UF_ MODL_ask_edge_body;//查詢邊上的體
int UF_MODL_ask_body_faces;//查詢體上的面
int UF_MODL_ask_face_type;//查詢面的類型
int UF_MODL_ask_face_data;//查詢面的信息
int UF_MODL_ask_edge_type;//查詢邊的類型
int UF_MODL_ask_face_edge;//查詢面上的邊
int UF_MODL_ask_face_loops;//查詢面上的環(huán)
int UF_MODL_ask_loop_list_item;//查詢環(huán)列表迭代對象
int UF_MODL_ask_loop_list_count;//查詢環(huán)列表中成員的數(shù)量
……
3? 特征識別的實現(xiàn)流程
特征是由幾何元素特定的位置關(guān)系與一定數(shù)量的面與邊組成。如非通的沉頭孔,其特征是構(gòu)成如圖2所示。
沉頭孔的安置平面與沉頭的圓柱面之間通過一條封閉的環(huán)邊相連,沉頭平面與沉頭的圓柱面之間通過另一條封閉的環(huán)邊相連,孔的圓柱面與沉頭平面之間通過一條封閉的環(huán)邊相連,孔的圓柱面與孔的頂錐面之間通過一條封閉的環(huán)邊相連,同時,沉頭圓柱面、孔的圓柱面與孔的頂錐面三者為同軸關(guān)系,與沉頭平面為垂直關(guān)系。
在確定了特征所具有的幾何位置信息后,就可以來確定遍歷的順序。對于非通的沉頭孔特征來說,遍歷的順序是:①指定一個面作為孔安置面P1,搜索面上所有的封閉環(huán),將只擁有一條邊的環(huán)加入到環(huán)面集中,從中取出一條環(huán)L_1。②沿著P1搜索,是否有一個圓柱面C1,且兩個面的交線是L_1,記錄下C1的直徑D1。③C1的另一端是否有另一個環(huán)L_2,且L_1、L_2兩環(huán)同軸、同直徑,記錄下兩環(huán)之間的距離H1。④L_2所在的平面P2內(nèi)是否存在一個環(huán)L_3,且L_3的直徑小于L_2的直徑。⑤沿著P2搜索,是否有一個圓柱面C2,且兩個面的交線是L_4,記錄下C2的直徑D2。⑥C2的另一端是否有另一個環(huán)L_4,且L_3、L_4兩環(huán)同軸、同直徑,記錄下兩環(huán)之間的距離H2。⑦如果與L_4相連的另一個面是圓錐面,則可以確定這些面、邊構(gòu)成了一個非通的沉頭孔。記錄下該沉頭孔數(shù)據(jù)參數(shù):H1是沉頭深度,H2是孔深度,D1是沉頭直徑,D2是孔直徑。
根據(jù)上面描述特征識別的遍歷順序,作出非通沉頭孔的特征識別流程圖,如圖3。
以上的算法是針對非通沉頭孔的識別過程,遵循同樣的原則也可以確定其它幾種孔的特征識別算法。
4? 結(jié)語
本文以UG NX作為平臺,介紹了一種對孔類典型特征識別方法。通過分析UG NX中的孔類特征的屬性預(yù)先制定孔特征知識庫,運用NX/Open API封裝的二次開發(fā)函數(shù)對特征的信息進行提取,分析三維模型的幾何元素信息和其拓撲關(guān)系,并用一個實例驗證了算法的可行性。
這種特征識別方法不僅僅局限于孔類特征的非參數(shù)化信息提取問題,也可以擴展到凹槽類、凸臺類等零件的特征識別,使三維模型的非參數(shù)化問題得到很有效的解決,既減少了人工操作效率低、準確率低等問題,也為產(chǎn)品后續(xù)的工藝規(guī)劃、自動編程等工作提供數(shù)據(jù)基礎(chǔ)。也正因為如此,采用這種特征識別方法在汽車以及汽車發(fā)動機故障診斷以及模塊化設(shè)計提供提供有力的支持,也能為汽車零部件加工提供支持,用途相當(dāng)廣泛。
參考文獻:
[1]易晗.基于圖和規(guī)則的鈑金件特征識別方法研究[D].華中科技大學(xué),2019.
[2]陳文旭.基于NX的汽車覆蓋件模具數(shù)控自動編程系統(tǒng)研究[D].華中科技大學(xué),2019.
[3]于嘉鵬,路永輝,姜博宏,等.基于UG NX的航空發(fā)動機離心葉輪數(shù)控加工自動編程系統(tǒng)的研究[J].航空制造技術(shù),2020,63(4):88-95.
[4]白茜.基于MBD的特征識別方法研究[D].西安建筑科技大學(xué),2016.
[5]劉紅軍,傘雷,紀俐,等.基于UG特征識別的典型孔槽類零件數(shù)控加工技術(shù)[J].航空制造技術(shù),2014(Z2):100-102.
[6]周臨震,李青祝,秦珂.基于UG NX系統(tǒng)的二次開發(fā)[M].江蘇大學(xué)出版社,2012.
[7]花鋒.基于NX二次開發(fā)的特征識別技術(shù)研究[J].機械制造與自動化,2010,39(6):99-100,135.