和云敏
(長(zhǎng)江工程職業(yè)技術(shù)學(xué)院,武漢 430212)
Visual Basic是一種由微軟公司開發(fā)的包含協(xié)助開發(fā)環(huán)境的事件驅(qū)動(dòng)編程語(yǔ)言,簡(jiǎn)稱VB,源自BASIC編程語(yǔ)言。由于其具有結(jié)構(gòu)簡(jiǎn)單,編寫程序?qū)ο到y(tǒng)的資源占有極低等優(yōu)點(diǎn),已成為程序編寫者編寫小型程序的第一選擇[1]。在數(shù)控加工領(lǐng)域,由于數(shù)控標(biāo)準(zhǔn)ISO代碼只包含直線和圓弧兩種插補(bǔ)指令,當(dāng)遇到橢圓、拋物線等特殊曲線時(shí)采用宏指令編寫宏程序才能滿足要求。宏程序包含多種宏變量,代碼較多,編程思路復(fù)雜,對(duì)編程人員是一大挑戰(zhàn)[2]。若借助CAXA等自動(dòng)編程軟件,又小題大做,其繪圖、路徑規(guī)劃及編程模擬的過程也使得編程效率不高。此時(shí)采用VB編程,再用宏程序工具生成宏程序即可解決這一難題。
數(shù)控車床是加工中小批量、形狀復(fù)雜軸套類零件的重要設(shè)備。圖1所示為我國(guó)某企業(yè)生產(chǎn)的用于造紙機(jī)械的輥軸裝配組件。
圖1 輥軸裝配組件
輥軸包含4個(gè)零件,裝配完成后外輪廓有一段為橢圓弧,分別分布于件1、3、4上,其中件1和件4通過件2進(jìn)行螺紋連接。如果采用傳統(tǒng)的工藝,很難保證裝配后橢圓弧處光滑無接縫;另外,需對(duì)應(yīng)編寫3個(gè)零件的橢圓弧程序,程序編寫效率不高,當(dāng)產(chǎn)品更新?lián)Q代后還需重新編寫[3]。
以某企業(yè)輥軸裝配組件為例,利用VB工具開發(fā)一個(gè)數(shù)控車床宏程序工具,用戶只需要輸入曲線參數(shù)、工件坐標(biāo)等必要編程要素即可一鍵完成宏程序生成與匯出,大大提高了數(shù)控編程效率和準(zhǔn)確性,降低了數(shù)控編程人員的勞動(dòng)強(qiáng)度。
圖2、圖3為輥軸裝配組件零件圖,裝配完成后要求外表面橢圓弧處光滑無接痕。
圖2 件1和2零件圖
圖3 件3和4零件圖
根據(jù)光滑無接痕的裝配要求和4個(gè)零件精度要求,橢圓弧處的加工必須待4個(gè)零件裝配好用一個(gè)單獨(dú)的程序進(jìn)行一體加工,即用一個(gè)程序一次性完成件1、3、4外圓橢圓弧的加工?;谝陨戏治?輥軸裝配組件加工工藝設(shè)計(jì)如表1所示。
輥軸裝配組件中的件2是關(guān)鍵零件,需要先行加工到位。件2一方面控制件1和件4螺紋的配合松緊情況和擰入長(zhǎng)度,保證件1和件4同時(shí)擰入時(shí)兩零件端面不能相互頂住;另一方面,控制件3長(zhǎng)度尺寸大于件2長(zhǎng)度尺寸0~0.04mm,使得組件裝配時(shí)件3能被件1和件4夾緊,以保證件1、3和4三個(gè)零件外圓橢圓弧能夠被一體加工到位。
由于件1、3和4三個(gè)零件外圓橢圓弧是在裝配后一體加工的,在巨大的切削力作用下螺紋配合會(huì)非常緊密,極有可能造成裝配組件無法拆卸的情況,因此必須借助皮帶扭力扳手強(qiáng)行將件1和4擰出。為減少拆卸的難度,可以在裝配加工之前將螺紋裝配處進(jìn)行清理、去毛刺和涂抹潤(rùn)滑油等操作,便于加工后的拆卸。
由于ISO代碼僅包含直線G01和圓弧G02/3兩種準(zhǔn)備性工藝代碼,因此針對(duì)橢圓弧等特殊曲線,需單獨(dú)編寫宏程序。宏程序的編寫類似于C語(yǔ)言編程,變量多,邏輯性強(qiáng),對(duì)程序員應(yīng)變不同位置特殊曲線的編程能力是極大的考驗(yàn)[4]。為快速、準(zhǔn)確、有效地完成特殊曲線程序編寫,降低勞動(dòng)強(qiáng)度,可以利用Visual Basic語(yǔ)言開發(fā)一款數(shù)控車床宏程序,能根據(jù)用戶需要和曲線方位,設(shè)置特殊曲線的方程參數(shù),路徑起點(diǎn)、終點(diǎn)及切削參數(shù)等,自動(dòng)生成宏程序[5]。
(1)宏程序工具界面
在工程實(shí)際中,特殊曲線有很多種,如拋物線、橢圓、雙曲線等。為適應(yīng)不同的特殊曲線自動(dòng)生成NC程序,可以通過VB中添加窗體程序?qū)⒊S玫那€羅列于宏程序工具初始界面[6],如圖4所示。
(2)曲線參數(shù)設(shè)置
以輥軸裝配組件外圓橢圓弧為例說明曲線參數(shù)的設(shè)置,如圖5所示。
圖5 曲線參數(shù)設(shè)置界面(橢圓弧)
曲線參數(shù)設(shè)置必須包括四大要素,即曲線方程參數(shù)、曲線起終點(diǎn)參數(shù)、切削參數(shù)和其他參數(shù)。以輥軸裝配組件外圓橢圓弧為例,其曲線方程參數(shù)包括長(zhǎng)半軸a值、短半軸b值、橢圓中心x、z坐標(biāo)及橢圓弧段(凸、凹);曲線起終點(diǎn)參數(shù)包括橢圓弧起點(diǎn)x、z坐標(biāo)和橢圓弧終點(diǎn)x、z坐標(biāo);切削參數(shù)包括進(jìn)給量F、主軸轉(zhuǎn)速S、刀具號(hào)T、背吃刀量U、粗加工直徑方向余量X值和長(zhǎng)度方向Z值;其他參數(shù)包括確定循環(huán)起點(diǎn)的毛坯尺寸D值、曲線加工精度J值。
在曲線參數(shù)設(shè)置界面中,【程序頭】和【程序尾】是為了配合不同用戶的需求,可以僅生成曲線宏程序粘貼到已有程序中使用。若單獨(dú)需要生成一個(gè)完整的NC程序,可以將【程序頭】和【程序尾】勾上,點(diǎn)擊【生成代碼】則可生成包含外輪廓復(fù)合循環(huán)指令的宏程序,直接用于機(jī)床實(shí)操現(xiàn)場(chǎng),【匯出代碼】可將程序?qū)氲街付刂平橘|(zhì)中。
(3)VB程序編寫
在完成曲線參數(shù)設(shè)置后,可以點(diǎn)擊【生成代碼】功能按鈕編寫VB程序。
Private Sub Command1_Click()
Dim s1 As Integer
Dim crlf As String
Dim sTR1 As String
Dim strHEAD As String
Dim strTAIL As String
s1 = 1
If Check1.Value = 1 Then
s1 = 1
Else
s1 = 0
End If
crlf = Chr(13) &Chr(10)
sTR1 = ""
strHEAD = "N1" &crlf
strHEAD = strHEAD &"G00 G90 G95 G97 M03 S" &txtdegree2.Text &" F" &txtdegree1.Text &" T0" &txtdegree3.Text &"0" &txtdegree3.Text &crlf
strHEAD = strHEAD &"G00 X" &Val(txtradiusd.Text + 2) &" Z" &txtz1.Text &crlf
If 0.1 * Val(txtdegree4.Text) <1 Then
strHEAD = strHEAD &"G71 U" &txtdegree4.Text &" R0" &(0.1 * Val(txtdegree4.Text)) &" P10 Q20"
If s1 = 1 Then
strHEAD = strHEAD &" E" &txtdegree5.Text &crlf
Else
strHEAD = strHEAD &" X" &txtdegree5.Text &" Z" &txtdegree6.Text &crlf
End If
Else
strHEAD = strHEAD &"G71 U" &txtdegree4.Text &" R" &(0.1 * Val(txtdegree4.Text)) &" P10 Q20"
If s1 = 1 Then
strHEAD = strHEAD &" E" &txtdegree5.Text &crlf
Else
strHEAD = strHEAD &" X" &txtdegree5.Text &" Z" &txtdegree6.Text &crlf
End If
End If
'head
If Check2.Value = 1 Then
sTR1 = strHEAD
Else
sTR1 = ""
End If
sTR1 = sTR1 &"#10=" &Val(txtz1.Text - txtyd.Text) &crlf
If s1 = 1 Then
sTR1 = sTR1 &"#11=" &(Val(txtyb.Text) * -1) &"*" &"SQRT[1-#10*#10/" &txtxa.Text &"/" &txtxa.Text &"]" &crlf
Else
sTR1 = sTR1 &"#11=" &txtyb.Text &"*" &"SQRT[1-#10*#10/" &txtxa.Text &"/" &txtxa.Text &"]" &crlf
End If
sTR1 = sTR1 &"N10 G00 G42 X" &txtx1.Text &crlf
sTR1 = sTR1 &"Z" &txtz1.Text &crlf
sTR1 = sTR1 &"WHILE #10 GE " &Val(txtz2.Text - txtyd.Text) &crlf
sTR1 = sTR1 &"G01 X[" &txtxc.Text &"+2*#11]" &" Z[" &txtyd.Text &"+#10]" &" F" &txtdegree1.Text &crlf
sTR1 = sTR1 &"#10=#10-" &txtdegree7 &crlf
If s1 = 1 Then
sTR1 = sTR1 &"#11=" &(Val(txtyb.Text) * -1) &"*" &"SQRT[1-#10*#10/" &txtxa.Text &"/" &txtxa.Text &"]" &crlf
Else
sTR1 = sTR1 &"#11=" &txtyb.Text &"*" &"SQRT[1-#10*#10/" &txtxa.Text &"/" &txtxa.Text &"]" &crlf
End If
sTR1 = sTR1 &"ENDW" &crlf
sTR1 = sTR1 &"N20 G00 X" &Val(txtradiusd.Text + 2) &crlf
'tail
strTAIL = strTAIL &"G00 X100" &crlf
strTAIL = strTAIL &"G00 Z100" &crlf
strTAIL = strTAIL &"M30" &crlf
If Check3.Value = 1 Then
sTR1 = sTR1 &strTAIL
End If
txtresult.Text = sTR1
End Sub
Private Sub Command2_Click()
Open "wenjian.txt" For Output As #1
Print #1, txtresult.Text
Close #1
End Sub
完成VB程序編寫后點(diǎn)擊【文件】菜單,【生成mymain.exe程序】后生成宏程序,如圖6所示。
圖6 宏程序
以輥軸裝配組件右端面中心點(diǎn)為工件原點(diǎn),完成橢圓弧各參數(shù)設(shè)置后生成宏程序。圖6右側(cè)文本框?yàn)椴捎萌A中數(shù)控系統(tǒng)編程格式生成的宏程序。同理,可以根據(jù)工程實(shí)際加工需求,生成“拋物線”“雙曲線”等對(duì)應(yīng)的宏程序,從而形成宏程序工具。
通過【匯出程序】將宏程序工具生成的宏程序?qū)С?并采用宇龍數(shù)控仿真系統(tǒng)對(duì)程序進(jìn)行仿真驗(yàn)證,仿真結(jié)果如圖7所示。
圖7 計(jì)算機(jī)仿真結(jié)果
在數(shù)控仿真系統(tǒng)中對(duì)零件進(jìn)行尺寸測(cè)量且各項(xiàng)尺寸均滿足圖紙要求之后,將NC宏程序?qū)霐?shù)控機(jī)床進(jìn)行實(shí)操驗(yàn)證,如圖8所示。
圖8 NC宏程序?qū)霐?shù)控機(jī)床進(jìn)行實(shí)操驗(yàn)證
通過對(duì)加工的產(chǎn)品進(jìn)行測(cè)量,均達(dá)到圖紙要求。由此可以得出結(jié)論,由數(shù)控車床宏程序工具生成的NC宏程序可以直接用于數(shù)控加工現(xiàn)場(chǎng),效率高、可靠性好。
工程實(shí)際中,編程人員在編寫程序之前必須要進(jìn)行加工工藝分析。而筆者開發(fā)的數(shù)控車床宏程序工具在實(shí)際使用時(shí),僅需要輸入數(shù)控加工工藝分析中所必須的“毛坯尺寸”“特殊曲線類型”“加工部位”“切削參數(shù)”“加工精度”等參數(shù),即可一鍵生成宏程序,簡(jiǎn)單快捷方便。
宏程序工具中囊括了不同的回轉(zhuǎn)體零件中所常見的“拋物線”“雙曲線”“橢圓”等特殊曲線,且VB源代碼具備二次開發(fā)定制功能,當(dāng)用戶需要定制大批量零件所需宏程序時(shí),可以對(duì)VB程序進(jìn)行更改和優(yōu)化來滿足要求。
針對(duì)具有橢圓弧等特殊曲線輪廓而必須采用宏指令才能編寫程序的零件,開發(fā)了一個(gè)數(shù)控車床宏程序工具,可以幫助編程人員準(zhǔn)確、迅速地完成宏程序編寫與輸出,經(jīng)計(jì)算機(jī)仿真和現(xiàn)場(chǎng)實(shí)操驗(yàn)證結(jié)果表明:工藝方法選擇恰當(dāng),采用由宏程序工具生成的NC程序加工的零件各項(xiàng)尺寸均滿足精度要求,輸出程序效率高、準(zhǔn)確,可以直接用于加工現(xiàn)場(chǎng)。且宏程序VB源代碼具有二次開發(fā)定制功能,具有較高的通用性和有效性,為從事數(shù)控車床編程及操作的技術(shù)人員解決相關(guān)難題提供了一個(gè)有效的工具。
長(zhǎng)江工程職業(yè)技術(shù)學(xué)院學(xué)報(bào)2023年4期