1 引言
盡管無紙化生產已經出現在一些發達國家的某些工業領域,但由于經濟與技術水平以及協作需要等方面的原因,二維工程圖對于機械行業仍然至關重要。在設計生產制造的不同階段,工程圖都具有指導性作用。一幅合格的工程圖應該包括零件的圖形化表示、尺寸標注、物料說明、注釋等詳細表達設計意圖與技術要求等信息,且布局美觀。其中,尺寸與公差標注等不僅是一項耗時易錯的工作,而且對同一個零件,不同的工程人員可能會選擇不同的標注方案,圖紙標注的規范性與質量完全取決于工程人員的經驗和技術能力。標注的質量會影響生產制造的質量和效率,因此如何借助計算機輔助設計技術實現工程圖的智能化與自動化標注.讓工程技術人員從枯燥的標注工作中解脫出來,一直是機械制造行業的一個重要課題。
LI等提出了一種根據用戶選擇的標準來優化坐標標注位置排布的方法,并在NX上實現了該功能。該方法對于多孔的零件(例如多孔的注射模模架板)具有較好的效果。CHEN等研究了以CSG樹結構與B-Rep數據結構表示的實體模型的自動標注,其方法是首先將實體上的面分為平面、圓柱面及其他類型面,然后通過特征提取、幾何推理、人工智能的方法分別標注平面、圓柱面。袁波等提出了一種基于尺寸子集劃分的自動布局算法,在尋找最佳尺寸布局時采用了模擬退火算法。張聞雷等提出了基于零件拓撲結構與特征形狀等形體分析的自動標注以及基于特征包圍盒的尺寸布局方法。黃學良等,采用網格化的方法,將標注布局問題簡化為在狀態矩陣中尋找符合某種條件的小塊矩陣問題。盧遠志等先后將排樣思想、級域搜索的思想引入到標注的布局中,達到了防止尺寸干涉的目的,后來又研究了基于零件孔特征識別的自動標注方法。成彬等提出了基于無向圖表示的兒何約束系統上的圖結構描述尺寸標注模型的方法。陸國棟等提出了從三維特征模型出發基于分治思想的自動標注方法。上述研究方法對實現工程圖的自動標注與布局,構建智能化的工程圖標注系統做出了積極的探索和研究。但這些方法大多只對某些特定形狀的零件有較好的結果,或者還需要一定的人工干預,離完全的自動標注還有一定的距離。
以下提出了一種針對三維參數化模型的工程圖尺寸標注自動生成方法,首先自動生成二維視圖,通過獲取三維模型中豐富的幾何形狀、尺寸、公差、裝配等信息,并根據標注實例庫及標注規則自動產生尺寸標注,然后通過網格劃分與包圍盒的混合算法對尺寸進行自動布局,避免尺寸與尺寸、尺寸與圖元之間的干涉,以滿足工程上的實際應用。
2 尺寸自動標注與布局
2.1 尺寸自動標注與布局系統框架
圖1描述了尺寸自動標注與布局的系統框架,按照標注準備、尺寸標注、尺寸布局的順序實現尺寸的自動生成。
圖1 尺寸自動標注與布局系統框架
2.2 標注準備
標注準備主要包括兩方面的工作。
第1項工作是為尺寸標注創建圖紙、標題欄以及所依附的視圖等。這些視圖主要包括前視圖、左視圖、俯視圖、剖視圖、局部視圖、正等軸測圖等等,視圖的選擇主要是依據零件的幾何形狀及一定的制圖標準等。當前主流的商品化三維CAD軟件,如NX、Pro/E、Solidworks等都提供了自動生成這些視圖的API接口,開發人員只需根據自己的需要設定一些相關的視圖參數,就可以通過程序自動生成這些視圖,然后將這些視圖按一定的參數化距離進行排布,使視圖與視圖之間的間距合理。
第2項工作是構建基于知識及實際生產經驗的標注實例庫與規則庫。參考企業生產實際中的工程圖經驗、標準及機械制圖手冊中的規范或者國家標準,構建工程圖標注基本實例庫,通過這個實例庫來確定需要標注的尺寸、標注樣式以及大致的標注區域等,以便CAD系統作出自動標注。同時,明確標注的規則庫,便于系統能夠根據規則庫中的規則做出合理的標注。如尺寸在各視圖間的分配應遵守以下基本原則:
(1)尺寸不標注在不可見輪廓線上。
(2)主要定位尺寸應盡量布置在主要視圖上。
(3)局部形狀要素盡量集中標注。
(4)同一定形尺寸在剖視圖中的標注優先于向視圖。
2.3 工程圖尺寸的自動標注
在尺寸標注過程中,標注對象的關聯是一個很重要的過程。手工標注時,一般需要用戶手動選中要標注的圖元以使尺寸與圖元關聯。但自動標注沒有這樣的人工交互過程,而需要程序去實現該關聯過程。通過下面2種關聯方法的混合使用,快速有效地解決了自動標注過程中的對象關聯問題。
2.3.1 二維圖元的識別與標注
為避開三維特征識別、幾何推理等技術瓶頸,確保尺寸標注的準確性、可靠性與完整性,可以將實體上的面(Face)、棱邊(Edge)之間的尺寸標注全部轉換為二維圖上可見直線段(Line)或者圓弧(Arc)的標注。這樣三維模型上面、棱邊的標注問題轉換為二維工程圖上圖元的識別問題。在工程圖中,常見的圖元有直線段、圓弧及其他曲線等。相對于三維模型的特征識別,二維圖元的識別顯得相對容易。經過二維圖元的識別、分類后,二維圖元主要分成直線段類、圓弧類和其他曲線。由于工程圖一般只需要標注直線和圓弧類對象,只要把每個直線段和圓弧的標識符分別記錄下來,存儲到2組動態數組中,后續程序通過這些標識符就能直接訪問到這些直線段、圓弧。
自動標注時,首先根據標注實例庫,確定要標注的對象及標注樣式。然后通過三維模型中的尺寸參數、裝配定位參數計算出待標注對象上的某一點三維坐標。如果標注樣式是水平或豎直的尺寸標注樣式,則需要有2個標注對象,此時需要獲取在2個標注對象上各一點的三維坐標。如果標注樣式是直徑或半徑的標注樣式,則需要獲取該圓弧類標注對象圓心的三維坐標。獲取三維坐標后,將三維坐標映射到二維視圖上,得到該點的二維坐標。最后通過二維坐標在關聯直線段動態數組(AssocLineVector)或關聯圓弧動態數組(AssocArcVector)查找由二維坐標創建的二維點(2D-Point)距離最近的直線段或者離某圓弧圓心最近的圓弧,就可以在二維工程圖上找到對應的關聯對象,實現自動標注。圖2詳細地描述了水平或豎直的尺寸自動標注流程,圓弧尺寸的自動標注與此類似,不再贅述。現用一個具體實例說明尺寸的自動標注過程。
圖2 二維圖元識別的自動標注算法流程
例如要標注一塊長方體的長度,在投影視圖上,長方體投影成長方形,只需要找到長方形相對的兩條邊,便可以完成長度的標注。此時只需要告訴系統這兩條直線段在二維視圖中的位置即可。為得到這兩條直線段的位置,可以通過獲取參數化模型中長方體的裝配定位坐標及該長方體板的長度,分別計算出該邊上某一點的三維坐標,再將三維坐標點投影到二維視圖上,尋找離該點距離為零(即小于一個誤差精度值)的直線段,這樣就可以標注一個長度尺寸。整個過程可以看成是模擬人工標注時鼠標選中兩條直線段進行標注的過程,程序所做的只是幫助系統確定應該點擊哪兩個“點”,便可以選中這兩條要標注的直線段。
這樣的標注方法,對于參數化模型來說,程序只需做一次這樣的標注,就能覆蓋該參數化模型的一系列大小的尺寸標注,因為該算法的標注也是參數化的。該算法的優點是實現真正的關聯,三維模型修改時,2D工程圖自動更新,缺點則是標注對象的匹配計算量較大。
2.3.2 直接在三維模型中插入點(3D-Point)
二維圖元的識別算法能實現尺寸與視圖的真正關聯,但識別起來速度較慢。當三維模型特征越復雜、越多時,二維圖上投影出來的圖元越多,標注起來就越耗時。為提高自動標注的速度,可采用直接在三維模型中插入三維點(3D-Point)的方法。將標注的對象全部用點代替,這樣就減少了二維圖元的遍歷、識別。當由相關參數計算出待標注對象上的某一點三維坐標后,直接建立三維點,用這個三維點代替原來的標注對象,就省去了識別圖元的過程,標注速度明顯加快。但對于圓弧的標注,需插入3個點來表示這段圓弧,這就需要分別計算出這3個點的位置,在實際編寫程序中較為麻煩。因此對于圓弧的標注,仍采用二維圖元的識別方法,只是在識別過程中只篩選出圓弧,不考慮直線段,這樣圓弧圖元的識別速度較快。
上述2種方法的混合使用,很好地解決了圖元關聯的問題,同時有利于快速編寫程序,最終實現快速自動標注。
2.4 工程圖尺寸的自動布局
在工程圖尺寸自動標注完成后,最容易出現的問題是標注內容相互重疊或干涉,如圖3所示,包括:①標注文本與標注文本;②標注文本與標注線;③標注文本與圖元等。
圖3 干涉類型
為合理布局,盡量避免干涉,需要充分合理地運用二維視圖中無標注文本、標注線和圖元的空白區域,并參考以下尺寸布局規則:
規則1(尺寸標注的就近原則):優先將尺寸標注在標注對象的周圍,便于讀圖人員快速鎖定標注內容。
規則2:在規則1較難滿足的情況下,考慮把標注內容的位置移動到三維參數化模型的包圍盒投影圖外。
采用對視圖區域進行網格劃分的算法搜索空白區域。首先根據三維模型的包圍盒投影出的二維視圖區域進行網格劃分,得到m行n列的單元格。自動布局主要處理的是與標注文本相關的干涉,因此網格劃分的間距應該與標注文本字體的大小相關。一般在CAD系統中,可以修改標注文本字體的高度,而字體的寬度與高度成一定比例,因此只修改字體的高度即可控制字體的大小。為充分利用空白區域,網格劃分的間距要較小,同時要考慮算法執行的效率,因此當前算法的網格間距取字體高度的1/3。
在劃分的網格中,每一個單元格用以下數據結構表示:
其中,item_tag可以唯一地標識出單元格,通過這個標識符就能直接獲取到該單元格的狀態;Item—status為占用狀態,如果被占用則為真,不被占用為假。
尺寸自動布局算法的關鍵步驟如下:
步驟1:劃分網格并進行預處理。網格間距相對于圖元(直線段、圓弧)很小,因此通過判斷圖元與單元格的邊界有無交點來確定圖元在單元格的占用狀態,最終獲得所有網格當前的占用狀態并用結構體sGridltem記錄下來,存儲到動態數組中。
步驟2:遍歷其中一個尺寸標注,檢查該尺寸的標注文本與其他標注文本、其他標注線是否有干涉,即判斷該尺寸標注文本的包圍盒與其他標注文本的包圍盒、其他標注線的包圍盒是否有交集。如果沒有這2種干涉,執行下一步。如果存在干涉,直接跳至步驟4。
步驟3:檢測該尺寸的標注文本與圖元是否有干涉,即檢查當前標注文本的包圍盒所占的網格是否存在被圖元占用的單元格。如果存在干涉,執行下一步。如果沒有干涉,轉至步驟7。
步驟4:確定該尺寸的局部就近標注區域,獲取該區域的單元格占用情況,并執行下一步。局部就近標注區域的大小如圖4虛線矩形所示,矩形區域長度為該標注尺寸的長度A加上2倍的標注文本高度h,寬度為標注文本高度h的4倍(標注文本高度h參數可以在界面中修改)。該就近標注區域關于這個尺寸的標注線對稱,圖4所示的虛線箭頭為標注線可移動方向。根據這樣確定的就近標注區域,再獲取這個區域所有單元格的標識符及占用情況。
圖4 豎直尺寸與水平尺寸的就近標注區域
步驟5:在局部就近標注區域搜索該標注文本包圍盒所占網格大小的空白網格。一旦找到這樣的空白網格區域后,立即移動標注文本到此區域,并轉至步驟7。如未找到,則執行下一步。
步驟6:把尺寸標注放置在三維模型的包圍盒投影視圖邊界外,對三維模型的包圍盒投影視圖外的尺寸按數值大小順序、一定間隙有序排布,執行下一步。
步驟7:遍歷下一個標注。如果標注遍歷完,則執行下一步;如果未遍歷完,則返回至步驟2。
步驟8:標注自動布局結束。
3 算法實現與標注實例
基于Siemens NX Open和Microsoft Visual Studio 2008開發了注射模智能設計系統,用以實現模架及其標準件的參數化設計、智能裝配和輔助生成工程圖、BOM表等設計文檔。系統能夠自動生成二維圖,并且運用上述提出的尺寸自動標注及自動布局方法,取得了較好的輔助制圖效果,不僅能夠自動生成所需標注的模架尺寸,后期人工干預少,而且用戶操作簡單,算法執行效率高,獲得了在生產實際中的推廣應用。
系統實現中注意將具體算法獨立出來,并利用Siemens NX Open提供的如下API函數,讀取三維參數化模型中的相關參數,添加尺寸,移動尺寸等,使得尺寸自動標注算法易于實現:
采用以上算法對模架進行尺寸自動標注,操作界面與結果如圖5所示(為使尺寸更清晰,圖5中未標注的尺寸在該圖紙的其他視圖中已作出標注)。
圖5 注射模模架自動標注與布局實例
4 結束語
(1)提出的工程圖尺寸自動標注算法能夠有效地解決三維參數化模型的尺寸標注問題,根據實例庫的范例與標注規則,實現尺寸的自動標注。
(2)提出的工程圖尺寸自動布局算法能夠很好地解決標注中的干涉問題,達到后期人干預少、布局清晰、美觀的要求。
(3)系統實現中注意將具體算法獨立出來,從而只需要在相應的CAD系統(如Pro/E等)中替換API接口,就可以實現在CAD環境下尺寸自動標注與自動布局算法的集成。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://m.hanmeixuan.com/
本文網址:http://m.hanmeixuan.com/html/solutions/14019313602.html