UG軟件是工具,宏程序也是工具。
據說學會了UG軟件編程就等於學會怎樣用工具。
學會了宏程序,不僅等於學會怎樣用工具,而且還學會了自己做工具。
今天分享一個圓周銑孔宏案例,如下圖,零件一週(360度)均佈散布了60個孔。
![學會了UG軟件編程就等於學會怎樣用工具。](http://p2.ttnews.xyz/loading.gif)
螺旋插補加工這60個孔,如果用軟件編寫程序,程序量非常大,如果機床內存小,估計保存不下這麼大的程序。
言簡意賅是宏程序一大特色,給你分享一個怎麼用宏程序編寫此程序。
講三個知識點:
一、螺旋插補銑孔
螺旋插補銑刀路就像彈簧相同,有這麼一個規則:
![學會了UG軟件編程就等於學會怎樣用工具。](http://p2.ttnews.xyz/loading.gif)
每旋轉一圈的一起Z需求下必定深度,也便是說Z方向的下刀有規則的遞加。
假設我恣意設置個變量如#4,並且讓#4也有規則的遞加。這在宏程序中稱作變量的自增運算。
FANUC體系變量自增格局為:#4=#4+1
#4=#4+1這以後邊的+1代表這個運算式每運算一次變量#4就增加1。(當然,根據需求你也能夠+2,代表每運算一次變量#4就增加2。)
怎麼實現變量的自增運算,這就需求合作宏程序的句子,比方WHILE句子。
FANUC體系的WHILE句子格局如下:
WHILE[ ] DO 2
……
END2
學過英文的人看到此句子應該理解大致意思,當XXX的時分就履行XXX。
中括號中為條件,也便是說中括號中的條件建立,那麼就履行WHILE 到END之間的程序。不建立就履行END後邊程序。
咱們來看詳細一個孔的簡圖,我隨意設置了幾個變量,如下簡圖。
比方孔直徑#1,孔深#2,刀具直徑#3。
那麼留意觀察下面的句子,變量#4的自增,是怎麼合作WHILE句子的。
#4=0
WHILE[#4LT#2] DO 2
#4=#4+1
……
END2
……
我設定的條件是:【#4LT#2】
留意,設置的條件是【#4LT#2】,也便是當#4的值小於#2那麼就履行WHILE 到END之間程序。 這說明什麼?
假設孔深是2,即#2=2
咱們看上面程序運轉的過程:
#4=0
#2=2
WHILE[#4LT#2] DO 2
#4=#4+1
……
END2
……
1,程序讀取#4,#2後得知變量的值分別為0和3
2,讀取WHILE句子後,得知設置的條件是#4小於#2,那麼“機床”判別了下,條件滿意,所以就履行WHILE與END之間程序段。留意,條件滿意就履行WHILE與END之間程序段。不滿意就履行END後邊程序段。
3,在履行WHILE與END之間程序時分,讀取了#4=#4+1,此刻#4的值為1了。
4,接著履行下面程序段至到END2程序後回來WHILE句子,“機床”再次做了判別#4小於#2嗎?小於#2,所以又履行WHILE與END之間的程序。
5,機床又讀取了#4=#4+1 ,此刻#4的值為2,接著又按次序履行程序段,當程序運轉到END後,又返WHIEL句子,機床”再次做了判別#4小於#2嗎?此刻#4的值為2, 2不小於2,條件不滿意了,所以就履行END之後的程序段了。
變量的自增合作WHILE句子,就這麼一次次累加起來,至到不滿意咱們設置的條件。
那麼在WHILE與END之間寫上螺旋插補銑孔程序段,這不就完成了螺旋插補銑孔程序?
我利用上面WHILE句子結構,增加螺旋插補銑孔程序段,程序如下:
二、G52指令的應用
上面螺旋插補銑孔宏程序,座標系是以孔為中心來編寫的。而實際圖紙的孔是在D1200的外圓上,怎樣處理呢?
這就用到了G52,在工件座標系(G54-G59)內再設定子座標系。
格局:
G52 X_ Y_ Z_ (設定部分座標系)
……….
G52 X0 Y0 Z0 (刊出部分座標系)
用心看一下上面程序。
用心看下右側圖示。
簡略嗎?
很有用,不信,你現在把程序和圖形對照看三遍,你就秒懂了。
三,宏程序的嵌套
所謂嵌套其實便是一個句子包裹著另外一個句子,比方下面WHILE句子的嵌套。
“WHILE[#1 GT 0] DO1”包裹著“WHILE[#2 GT 0]DO2”句子!
關於嵌套循環,有許多可圈可點之處,因篇幅原因直接上程序,簡略講下嵌套運轉的過程。
上面程序,當程序履行到“WHILE[#5LT360]DO1”這一行的時分,它發現有“DO1”但還不知道與之對應的“END1”在哪,所以它只能按次序往下履行。
當履行到“WHILE[#4LT#2]DO2”句子時,它發現了“END2”,所以體系就履行“WHILE[#4LT#2]DO2” 與“END2”之間的程序。
當履行完“DO2”與“END2”之間的程序後,也便是螺旋插補銑完一個孔後,條件不滿意了,它往END2下面履行,發現了“END1”這時分體系已經知道這是個嵌套循環程序。
所以又回來“WHILE[#5LT360]DO1 句子,再次做判別,看看中括號中的條件滿意與否,滿意就按次序履行。不滿意也便是一週孔加工結束,則履行END1後邊的G91G28Z0.程序段。
閱讀更多 UG模具編程 的文章