CAD/CAM在加工領域中應用的主要問題是如何根據CAD軟件設計的圖形自動生成工藝合理、指令準確的加工程序,取得理想的加工效果。然而,由于眾多開發軟件未能選用合理的擬合插補算法,致使加工精度都未能達到指定的要求,雕刻對象過于粗糙。正是由于一些企業在使用CAM加工設備過程中存在諸如起落刀次數過于頻繁、空行程較大、效率不高、精度弱化等問題,作者在綜合了上述缺陷后,采用小段直線擬合曲線的方法,對提取的數據點采用插入排序的優化設計思想,通過VC++程序窗口對加工雕刻軌跡進行模擬仿真,并生成相應的NC代碼。
1 系統的體系結構
基于DXF(Drawing Interchange File)文件的CAD/CAM刀具路徑優化與生成體系結構如圖1所示,主要由以下兩大模塊組成:
(1)圖元信息提取模塊,為后續圖形數據處理做準備。
(2)后置處理模塊,其又可分為以下4個小模塊:
①圖形數據處理。針對不同的圖形,計算其擬合誤差,通過與給定誤差相比較,擬合生成原始圖形。由于圖形數據具有一定的不確定性,因此數據在儲存過程中采用動態鏈表的存儲方式。
②刀具路徑優化。由于數據是按文件的讀取過程存儲的,所以對存儲的圖形數據進行插入排序可以有效解決加工過程中起落刀次數過于頻繁,從而提高加工效率。
③軌跡模擬仿真。將提取的數據點通過VC++自帶的函數庫繪制相應的圖形。
④NC代碼生成。
圖1 基于DXF文件的CAD/CAM刀具路徑優化與生成體系結構
2 DXF文件基本結構
DXF是具有規范格式的ASCⅡ碼文本文件,易于被其他程序處理,而且保存了CAD圖形的精確數據。因此通過高級語言設計接口程序可以提取圖形數據,實現CAD圖形與CAM加工代碼之間的轉換,結合相關數控工藝知識,生成CAM加工程序。所以DXF文件的特點和優勢為CAD/CAM接口程序的開發提供了有利條件。
利用高級語言編寫接口程序,首先必須了解DXF文件的結構。DXF數據文件包含設計過程的所有圖形、非圖形信息。一個完整的DXF文件必須包括標題段(HEADER)、類段(CLASSES)、表段(TABIES)、塊段(BLOCKS)、實體段(ENTITIES)、文件結束標志EOF。圖2為DXF數據文件格式結構圖。
圖2 DXF數據文件格式結構圖
文件中每個數據元素前都帶有一個稱之為組碼的整數,組碼的值表明了其后數據元素的類型。相應的一系列組碼和組值構成了DXF文件中的段(SECTION),每—個段都以一個組碼為0、組值為字符串SECTION的組對開始,其后再緊跟組碼為2和表示各段名稱的字符串(如HEADER、ENTITIES等)。每個段中的相應組碼和組值定義了相應的DXF段,而每個段都以組碼為0和字符串為ENDSEC的組值構成的代碼對結束。所有段都結束后,DXF文件以組值為EOF(End of File)的0組作為文件的結束標志。由這些組碼和組值組成的各段便是DXF文件。
3 讀取圖元信息
CAD/CAM接口程序與實體段的關系最為密切,因為實體段含有所有圖元的參數,如點的坐標、直線的兩端點坐標,圓的圓心、半徑和張角等,所以可以對存放在其他段中的信息予以忽略,而只讀取實體段和文件結束兩部分。一個實體對應一種類型的圖元。以數控加工中的常見特征直線和圓為例,說明提取圖形信息的方法。表征一個直線的實體數據如表1,表征一個圓的實體數據如表2所示。
表1 表征一個直線的實體數據
表2 征一個圓的實體數據
分析表明,圖形文件中包含的圖形對象與實體段組碼和組值提供的信息一致。據此可以采用判斷組碼獲得組值內容的方法提取出有用的信息。因為軟件界面是采用VC++6.0來實現二次開發,所以在程序設計的時候,將文件打開和實體讀取部分合在一起,使得整個程序看起來連貫也便于針對具體實體的幾何特征信息進行處理。
這里給出接口程序中信息提取模塊的主要片段:
提取和保存實體段中直線、圓的數據時,方法類似,都是通過逐個比較組碼,提取直線的端點坐標值,圓的圓心坐標值和半徑值,并將其送入指定變量。
直線與圓的數據提取具體流程如圖3-4所示。
圖3 直線數據提取的結構框圖
圖4 圓的數據提取的結構框圖
(審核編輯: 智匯小新)
分享