朱磊,畢寶鵬,王剛
?
基于Python語言快速編制數控沖孔程序
朱磊,畢寶鵬,王剛
(陜西重型汽車有限公司,陜西 西安 710200)
車架縱梁的上的孔位加工是通過提前導入編制好的數控沖程序加工而成,目前車架廠編制數控沖程序過程如下:使用ProCAM對AutoCAD文件進行處理生成孔位參數信息,進而對這些參數信息進行后處理生成所需的數控沖程序。文章提出利用Python編程語言對AutoCAD文件中的孔位參數進行提取處理。按照不同的數控沖孔設備對程序格式的要求,可一次性生成不同設備的數控沖孔程序。
數控編程;Python語言;DXF圖形文件;孔位參數
重卡車架縱梁截面為U形,在腹面和兩個翼面上分別不同直徑的圓孔,用于駕駛室、發動機、變速器、板簧、各種支架的裝配,而這些圓孔都是利用數控沖孔機沖裁加工而成。
目前車架廠有三臺數控沖孔機需要編制沖孔程序,其工作原理如下:導入預先編制好的數控程序,將平板料放置到指定位置,啟動設備調用程序進行生產,沖孔精度高,生產效率高。
將圖紙保存為DXF文件后,以文本打開可以看到保存的信息。例如:$ACADVER就是文件版本為AC1015,而我們需要的孔位信息主要存放在ENTITIES段中,圓的附圖1信息表示見(附圖1):

圖1
0表示圖元名稱為CIRCLE,5表示圖元句柄為245F8,100表示為實體類型,8表示圖層為THICK_LINE層,6線型名為Continuous,62表示為圖元顏色索引是6(品紅色),100表示為所屬子類類型是AcDbCircle,10表示下一行為X坐標,20為表示下一行為Y坐標,30表示下一行為Z坐標,40表示下一行為圓孔直徑。
通過以上簡單介紹,就可以使用PYTHON以文本格式打開dxf文件,并對其中的孔數據提取了。使用PYTHON將提取的孔位數據保存為列表格式如下:circledate= [[100.2355, 50.5255,7.5],[200.2355,50.2355,7.5],[100.2355,10050.5255,7.5], [200.2355,10050.5255,7.5]。
由于CAD繪圖基準與加工基準的不一致,導致生成的加工程序無法使用,為了保證程序基準與加工基準一致,制作專用的標記塊,每次繪圖完成后手動插入基準,就可以在程序生成后保證程序基準與加工基準一致。

圖2
在DXF文件中查找實體類型為INSERT且塊名為自己定義的名稱,使用加工的孔坐標分別減去基準坐標就可以保證生成(附圖2)基準塊0為圖元名為子類INSERT類型,5表示圖元句柄為25CCC,100為表示為實體類型,8表示圖層為0層,62表示為圖元顏色索引是2(黃色),2為插入的塊名為“右縱梁基準塊”,10表示下一行為X坐標,20表示下一行為Y坐標,30表示下一行為Z坐標。
a.程序文件頭
數控沖加工程序(見附圖:數控程序格式(部分))都是以%開頭、結束,#500=1表示加工數量1件,#544=6500表示縱梁長度為6500mm,#545=398.0表示展開板料寬度為398mm,#546=8.0表示料厚為8mm,X99.0000 Y-90.000 T7 (X50.000)表示沖孔位置(50,-90)處使用T7號刀具沖孔X99表示沖頭位置偏置(99-50=45mm),不同的沖孔設備程序差別僅僅在于沖頭編號及對應沖頭直徑的不同。

圖3 數控程序格式(部分)
b. 沖頭位置補償及夾鉗更換位置
要更好的對雞痘進行預防和控制,首先需要按照時間對養殖的雞進行疫苗接種免疫,在此基礎上定期對雞舍進行清理和消毒,從而更好的保證雞舍環境的衛生。在條件允許的情況下,盡量保證雞舍的通風順暢和干燥,合理安排養殖密度,從而更好的減少發病的可能。在秋季到來的時候,要及時滅殺雞舍中的蚊蟲,并使用2%火堿水對雞舍和活動環境進行充分的消毒。
原有的編程軟件需要根據不同設備加載設備參數文件(見附圖:選取加工參數文件)。

圖4 選取加工參數文件
打開參數文件就可以看到沖頭位置補償值及更換夾鉗的位置參數。(附圖:設備參數數值)

圖5 設備參數數值
但在編制的后處理程序中為了方便自動化處理我們自定義了設備與沖頭直徑、沖頭號、沖頭位置補償的參數表,根據dxf文件中提取的孔位半徑搜索對應刀具庫中沖頭號及位置補償,可以一次自動完成需要沖孔與沖頭及其他參數的匹配。

圖6 自定義刀具庫
綜上,在提取的孔位基礎上按照行號,加沖頭位補償后X位置,Y坐標位置,刀具號,(沖孔X坐標)就可以實現格式化輸出為加工程序。
加工過程中使用M98P7000,M98P7001,M98P7099,M98P7100,M98P7003子程序更換夾鉗,第一次更換夾鉗位置為前端向后1850,第二次更換夾鉗位置為板料沖孔至尾端向前950處,兩處位置相對板料長度固定,因此根據加工不同的零件計算更換夾鉗位置。
a.排序
對生成的每條沖孔程序需要按照從前至尾排序,并插入更換夾鉗的程序語句,排序是以增加了沖頭位置補償后的X坐標位置由小到大排序。
b.生成文件名稱的處理
因每種設備的加工用程序文件存儲文件類型不同,需要對文件格式處理。平板需要以大寫字母O開始后跟四位數字,且文件后綴需要去掉文件后綴”.Txt”,Fjp設備需要文件后綴為”.Txt”。
c.程序生成與分類
生成程序后為了保證每種設備加工的程序明確,首先建立以傳入的dxf文件相同名稱的文件夾,在建立的文件夾中分別建立不同設備文件夾,將生成的加工程序存儲。

圖7 生成加工程序分類
將需要沖孔的DXF圖紙載入程序中,輸入需要沖孔縱梁的料長、料寬、料厚就可以實現在動程序生成。(附圖:程序生成)

圖8 程序生成
經現場對自動處理生成的程序驗證,完全符合要求,使原先需要手動編制程序,實現了一次性完成全部需要的數控程序編制,同時對程序優化增加了常見的出錯檢驗,提高了程序正確率。
[1] 鄒曉等譯.Python編程[M].中國電力出版社,2014.
[2] 袁國忠譯.Python編程:從入門到實踐.人民郵電出版社,2016.
[3] 劉傳亮,陸建德.AutoCAD DXF 文件格式與二次開發圖形軟件編程[J].微機發展,2004(9).
Quick Programming of NC Punching Based on Python Language
Zhu Lei, Bi Baopeng, Wang Gang
( Shaanxi heavy truck Co., Ltd., Shaanxi Xi'an 710200 )
The hole position processing on the longitudinal beam of the frame is made by importing the NC punching program which has been compiled in advance. At present, the process of compiling the NC punching program in the frame factory is as follows: AutoCAD file is processed by ProCAM to generate the hole position parameter information, and then the required NC punching program is generated by post-processing of the parameter information. In this paper, the hole position parameters in AutoCAD files are extracted and processed by Python programming language. According to the requirements of different NC punching equipment for program format, the NC punching program of different equipment can be generated at one time.
CNC Programmin; Python Language; DXF Graphic File; Hole Position Parameters
TP313
A
1671-7988(2019)08-100-03
TP313
A
1671-7988(2019)08-100-03
朱磊,男,本科,就職于陜西重型汽車有限公司,從事車架工藝技術。
10.16638/j.cnki.1671-7988.2019.08.032