劉寶明,韓志仁
(沈陽航空航天大學,沈陽 110136)
航空企業中樣板零件通常采用激光切割進行加工,而設計員在設計圖紙時是利用CATIA軟件設計[1,2],再導出為DXF文件以進行激光切割機編程,由于轉換后文件中的圖元信息存在嚴重的缺陷,如大量的重合曲線、線條非正常鏈接及過多的連續碎線等,不能直接用于激光切割機編程,因此必須進行前置優化處理。由于零件圖中線條數量過多,手工處理時需逐條曲線查找分析,通常要數小時的時間,費時費力,大大降低了生產效率,且隨著線條數量的增加,出現差錯的可能性也逐漸增大,因此有必要開發一個自動優化處理的軟件系統。
AutoCAD是美國AutoDesk公司開發的通用計算機輔助繪圖設計系統,是世界上最為流行的通用CAD平臺,為了行業定制的便利,AutoCAD為用戶提供了一個強有力的二次開發環境。本文提出利用AutoCAD第三代二次開發工具ObjectARX,在AutoCAD系統環境下開發出一個用于樣板零件優化處理的軟件系統,實現了激光切割零件圖前置處理所需的各項功能,并在企業中得到實際應用。
由CATIA導出的樣板零件平面圖存在大量的重合線條,這種圖紙不能直接用于激光切割機系統處理,必須清除這些冗余線條。經查找分析得知,線條的重合方式共有以下三種:
判斷兩條直線是否完全重合,只需比較其起點和終點坐標,通過遍歷CAD圖形數據庫,讀出所有直線信息,逐一比較其首末端點,首末端點相同的直線即為完全重合的直線,只保留一條,其余自動從數據庫中清除。
判斷兩段圓弧是否完全重合,需要比較其圓心、半徑、起始角和終止角是否完全相同,而這些信息可以通過ObjectARX中AcDbArc類的成員函數從CAD數據庫中獲得,進而清除此類重合圓弧,達到清除重線的目的。
如圖1、圖2所示,直線1包含直線2,圓弧1包含圓弧2,系統設置了允許的重合誤差,當兩線條間的最大距離小于允許誤差時,仍然作為重合線條處理,對于圖示后兩種重合方式的線條,首先比較兩線條的長度,得到可能被包含的線(短線),再計算該短線兩端點與長線的垂直距離,若小于設定的誤差,則作為重合線條將其刪除。

圖1 兩直線包含重合

圖2 兩圓弧包含重合
在ObjectARX函 數 庫 中, 函 數getClosestPointTo (const AcGePoint3d & givenPnt,AcGePoint3d& pointOnCurve, Adesk::Boolean extend = Adesk::kFalse)用于得到曲線上與給定點最近的點,利用此函數得到最近點后再應用distanceTo(const AcGePoint3d& pnt)函數可直接計算得到點到曲線的垂直距離。
圓弧與直線包含重合分為圓弧包含直線和直線包含圓弧兩種類型,如圖3所示(此處只舉例列出,尚有多種情況),對于此類圖形,判斷是否為重合線條時,除判斷短線端點與長線的距離外,還應計算如圖所示D值,當所有距離均小于設定的誤差時才能認定為重合。
計算D值過程中,需要求解直線圓弧的交點坐標,我們可以用ObjectARX函數庫中的intersectWith(const AcDbEntity* pEnt, AcDb::Intersect intType, AcGePoint3dArray& points, int thisGsMarker= 0,int otherGsMarker = 0) const函數完成求交運算,調用該函數的對象為其中一條曲線,pEnt參數為另一條曲線,points為存放交點坐標的數組。

圖3 圓弧與直線包含重合

圖4 大圓弧處理流程圖
激光切割機線路只能識別半徑小于8000mm的圓弧,當圖元半徑大于8000mm時激光切割機很不穩定,使切割過程中程序中斷,而設計員提供的DXF文件中有很多圖元半徑大于8000mm,所以需要分析出這類圓弧,將此圓弧處理為多段直線,且直線與原始圓弧間最大距離小于設定的撓度誤差,為此,計算時根據最大誤差對大圓弧分段,流程圖如圖4所示。
由于原始零件圖中的線條存在斷線的缺陷,即本應連接在一起的相鄰線條端點不重合,存在缺口或搭接現象,如圖5所示。而只有鏈接好的圖元才能進行編譯用于激光切割機編程,圖5所示鏈接的圖元如果中間沒有連通處,就會造成激光切割時出現問題,為此需要對斷線處進行處理。

圖5 斷線類型
對于斷點情況,可以修改其中一條曲線的端點,使其與另一線條端點重合,而搭接方式的斷線包括直線與直線搭接、直線與圓弧搭接,圓弧與圓弧搭接三種,系統處理時分別考慮幾種情況,采用不同的處理方法。當曲線延長后存在交點時,取該點為連接點,裁剪多余線段,當無延長交點時,修改直線端點或圓弧端點,使之連接,并計算修改后的曲線與原曲線的誤差,自動選擇與原始圖形誤差最小的連接方法。
圖形中的線條若長度小于1mm,我們稱之為碎線,這種線條在原始圖形中,幾乎占總線條數的40%,若直接用于激光切割機,容易出現燒損,因此必須將這些碎線處理為長度大于1mm的線條。針對不同情況,系統共采用兩種方法處理碎線,當相鄰的多段碎線斜率變化較小時,在滿足精度的前提下,直接將其變為一根長度大于1mm的直線,以減少系統運算量,提高處理速度;而對于斜率變化較大的圖形拐角處,則采用圓弧逼近的方法,提高處理精度。
圖形經過系統處理后,大部分線條都經過了修改,并標記以不同的顏色,為了與原始圖形進行比較確保處理無誤,需要系統能夠在處理后再現原圖,為此,系統在做處理前先進行了自動備份,利用dxfOut(const ACHAR* fileName,const int precision = 16,const bool saveThumbnailImage =false)函數將原圖備份為dxf文件存儲,處理結束后再利用dxfIn(const ACHAR* dxfFilename,const ACHAR* logFilename = NULL)將原始圖形讀入內存,并應用insert(AcDbObjectId& blockId,const ACHAR* pSourceBlockName,const ACHAR* p DestinationBlockName,AcDbDatabase* pDb,bool preserveSourceDatabase = true)函數以CAD塊的形式將原圖插入到當前數據庫中。比較結束后再根據塊名及塊ID從實體段及塊表記錄中清除。
本系統采用在AutoCAD環境下進行二次開發的方法完成,并利用ObjectARX作為開發工具,完成了清除重線、處理大圓弧、連接短線、處理碎線及再現與清除原圖等功能模塊的開發,實現了樣板零件圖的激光切割機編程前置優化處理的自動化。通過在企業中的試用證明,使用本系統后,樣板零件圖的前置處理時間由原來的數小時減少為現在的幾分鐘,使樣板的制造生產率有了質的飛躍。
[1] 杜兵舉, 袁茹, 王三民. 數字化環境下的模線樣板并行設計[J]. 新技術新工藝·數字技術與機械加工工藝.2008.7: 5-7.
[2] 杜芳靜, 張凌云, 于波章. 基于CATIA V5系統的復雜機加件模線樣板設計方法探索[J]. 沈陽航空工業學院學報, 2008(10): 1-4.