摘要:借用AUTOCAD軟件生成DXF文件中的直線圓弧數據,使用VB開發數控車床自動編程軟件。軟件的重要功能為:對坐標數據的格式的轉換,實現自動提取,自動產生G代碼,能夠實現輸入輸出及仿真等功能。
關鍵詞:AUTOCAD;VB;G代碼;數控車自動編程
數控加工自動編程軟件很多,一般CAD/CAM都有這樣的自動編程功能。如PRO/E、UG等軟件,結構龐大,軟件學習也復雜,并且價格也昂貴。假若僅僅用于數控車床的自動編程,就如同殺雞用牛刀,顯然很浪費。使用簡潔,操作方便,專門用于數控車床加工的小軟件想必有一定的存在必要。開發出一種能夠使數控車床編程變得更加簡單,更加智能的軟件對于個人來說也是一種挑戰。
參數化設計、三維運算內核的開發,對于個人來說是遙不可及的事情。個人開發設計一種圖形設計軟件也同樣不太現實。也只有借雞生蛋的方法,借用一種被廣泛使用的圖形設計軟件,獲取工件輪廓坐標,和線條特征,經過軟件進行編譯,最后得到需要的數控加工程序。
因此,此軟件的功能被確定為能夠獲取工件輪廓坐標,和線條特征,能夠進行數控程序編譯,同時為了能檢驗程序的正確性,最好還能夠有可視化的模擬功能。
AUTOCAD因其靈活性和接口的多樣性被廣泛的使用在機械設計領域。在其能生成的文件格式中有一個二進制文件,格式為DXF的文件。DXF文件中包含著AUTOCAD圖形文件中所有對象的信息,其中包含著輪廓線的線型和坐標信息。使用二維功能強大的AUTOCAD軟件繪制軸類零件的外輪廓顯然是一件非常容易的事情。于是本數控車床自動編程軟件的運行機理就如下圖所示。本軟件的開發工具使用VB,雙劃線部分為本軟件要實現的功能。
一、坐標的獲取
首先使用CAD軟件繪制軸類零件,在圖形文件中只包含工件的外輪廓線條,也就是數控車的精車所走的刀路,而其它無關線條對坐標的獲取產生干擾。典型的圖形如圖所示。圖1為工件的外型輪廓圖,圖2為編程所需要的單側輪廓線。所以在CAD中畫的圖為圖(2)。
將工件按照以上規則繪制后另存為AUTOCAD2000 DXF格式。可使用文本打開方式便能將其打開。我們可以在一系列的子類標記中可以找到子類標記ACDBLINE,在該子類下就隱含了該直線的坐標值。組碼10,20,30下分別為直線起點X、Y、Z坐標,組碼11、21、31下分別為直線終點X、Y、Z坐標。以同樣的方式我們可以找出子類標記ACDBARC,組碼10,20,30為圓弧中心坐標X、Y、Z,40為半徑,50為起始角,51為終止角。
根據以上的特點,在VB中建立工程,添加控件如下,并在控件下輸入相應的代碼。
使用 OpenFile NameForInput As#1代碼將二進制DXF文件逐行讀入。并和字符“ACDBLINE”和“CADBARC”進行對比,符合要求的分別提取組碼10,20,11,21,40,50,51下的數值通過數據庫操作代碼儲存在數據庫中。直線線名為LINE(n),圓弧線名為ARC(n)。
數控車床能接收直線的描述方式同DXF中的描述方式一樣均為起點坐標和終點坐標。但是圓弧卻不一樣,一般數控系統接收的方式是:圓弧起點坐標、終點坐標和半徑以及通過G2、G3來區別圓弧的方向。而在DXF文件中是以圓心、半徑、起始角,終止角的方式。兩者不一直,所以在編譯時必須對DXF中圓弧坐標的表述進行處理,換算成數控車能接受的:圓弧起點坐標、終點坐標和半徑。并且通過起始角和終止角的所在坐標象限位置來判斷圓弧方向,以決定是使用G02還是G03代碼。
將圓分成4等分,0到90度以及90到180度為G03代碼,180度到270度以及270到360度為G02代碼。下面以在0度到90度的范圍內圓弧起始點x,y坐標為例,計算方法如下:
sx----圓弧起點x坐標;sy----圓弧起點y坐標;sjiao----起始角度;banjin-----半徑;xinx----圓心x坐標;xiny----圓心y坐標。
使用以上的程序代碼可以獲得A點坐標,同樣的方法可以獲得B點的坐標。
二、數據的排列
通過轉換好的數據重新輸入數據庫。但是仔細發現數據庫是數值排列比較凌亂,假若直接取出并不能用于生成G代碼。所以要對里面的數據按照一定的要求進行重新的排列。作為刀路的起點選擇也是有一定的規則的,必須選擇為圖形最右上角的點,是X,Y值為所有點中值最大的。對數據庫進行搜索獲取XY值最大的作為刀路的起始點。如下圖假若獲得起點SX1,SY1為起點,那么很自然下一點坐標為(ex1,ey1)。但是第二條直線的起點是多少呢?要根據坐標(ex1,ey1)對數據庫進行搜索對比,找到相對應的值。然后以同直線或圓弧的另一點做為該線的終點。以此方法類推就能產生一條完整的刀路。排列后的坐標重新輸入數據庫。
三、G代碼的生成
得到正確的數據庫后,必須對數據進行編譯,生成G代碼。要注意CAD圖中的XY坐標同車床坐標系的區別。
線名為LINE的坐標生成G代碼的格式為 G01Xey1 Zex1
線名為ARC和根據起始角、終止角大小把坐標生成G代碼的格式為
G02Xey1 Zex1 Rr或 G03Xey1 Zex1 Rr
并將所得到的G代碼程序傳遞到容器控件LIST中。
完整的G代碼程序還需要頭程序段和結尾程序,通過軟件界面左邊的文本框控件的輸入,和復選框控件的選擇,可以得到頭程序段和結尾程序,例如:N00001;G50 X100 Z100;S800 M03 T101;和結尾程序G0 X100 Z100;M30。
將頭程序段插入進LIST控件中的最前面,將結尾程序插入進LIST控件中的最后面。和原先的刀路G代碼相組合,得到完整的數控加工程序。
四、程序的驗證和保存
為了驗證程序是否正確需要對LIST中的G代碼進行模擬。從LIST中提取坐標使用VB中的畫直線畫圓功能在指定的區域內畫出刀具運行軌跡,通過軌跡的運行曲線同工件的外輪廓相比較,來判斷刀路是否正確。
在軟件的最后使用OpenFile NameForoutput As#1將LIST容器中所有的字符輸入到給定文件名的文本文件中保存。整個軟件完成后如下圖所示。
五、結束語
以上只是針對于數控車床的精加工程序的編制。本自動編程軟件的初加工功能,各種循環功能,螺紋切削功能,都可以在精加工程序的基礎上進行拓展。可以加入一些智能判斷程序使本軟件功能更強大,使用更傻瓜化。相信開發這樣的一個軟件會使數控車床的編程更加簡單方便。