宏程序不是萬能的,沒有宏程序是不能的。
如下圖就必須靠宏程序解決的:
要在數銑上面加工外圓柱以及根部R,這個零件編程也是簡單,但是零件根部圓弧R要求3.0^-0.2
當時車間並沒有R=2.9的圓鼻銑刀,若是定做刀尖圓弧R=2.9的銑刀,刀具成本增加不說,關鍵還耽誤生產進度。
前段時間他看了我的宏程序講解,雖說學的時間不長,但是一看就明白,然後就直接核心技巧套用教程中的一個編程模板,很快就編寫出了程序。
有些時候編程最快速的方法不是軟體編程,更不是手工編程,而是直接套用之前編寫好的宏程序。
很多聰明的人,比如和我學編程的海風,活學活用,直接拿著程序範例來修改,很快又是一個新程序。
比如上面程序,稍微修改下,分分鐘就出來一個銑內孔R的程序。
程序如下,(紅色圈的是修改的部位)。
當然,還可以根據零件圖紙給對應變量賦值,幾秒鐘就可以完成不同尺寸零件的編程,非常的方便快捷。
這麼看起來宏程序編程非常的玄。
說實話,想成為專業的編程工程師,掌握手工高級編程宏程序是一個基本功,學會數控宏程序編程,你的編程水平就會提升一個境界!
所以我就以上面分享的例子為例,給大家傳授一點編寫宏程序的關鍵思路:巧用勾股定理計算變量數據,希望給大家一些啟發。
先來看看數學中的勾股定理,在一個直角三角形中,如下圖:
根據已知條件,可以得出以下幾個角與邊的公式:
sin a=BC/AC
cos a=AB/AC
tan a=BC/AB
有人可能會問這些公式是怎麼來的,這是研究數學的事情(數學課本應該講過)。我們只需要把上面公式關係搞清楚即可。
比如,計算BC的邊長,(知道了夾角a和AC邊長)根據sin a=BC/AC 可以計算出BC= AC *SIN a 了。
那麼我們看零件圖,比如下的簡圖:
備註:
零件的具體尺寸我採用了採用變量表示,比如#7代表直徑;#18代表要加工的圓弧R等等,這樣根據圖紙只需要給變量賦值即可滿足這一類零件編程。
若加工R=2.45圓弧,那麼只需要給變量賦予具體數值,即#18=2.45
若如加工R=2.9圓弧,那麼只需要給變量賦予具體數值,即#18=2.9
那麼在數銑上加工這個圓弧R,和上面說的勾股定理有什麼關係?
你若從工具機中任意拷貝一個程序來看,都由兩大部分組成:
1、G代碼
2、點位坐標數據
是的,任何零件都可以看成由無數個點位數據組成的輪廓,編程的時候,若這些點位的數據處理非常多,那麼加工出來的零件輪廓就越光滑。
那麼在圓弧上面任意設置點P,以圓弧圓心為坐標系做個直角三角形,如下圖:
那麼就和勾股定理聯繫起來了,關係如下:
cos[#3]=#1/#18
sin [#3]=#2/#18
從而計算出:
#1= #18*COS[#3]
#2= #18*SIN[#3]
其中:
角度變量#3取值範圍是從0到90度(因為加工1/4圓弧)。
#1,#2為圓弧上面的坐標數據,請注意:
計算出的#1,#2數據是以圓弧圓心為原點的,而編程時候所建立的編程原點很可能不重合。
所以需要轉換:
比如圓弧上面任一點P (相對於編程原點)
X方向坐標點:
[#7+#4]/2+[#18-#1]
Z方向坐標點:
#26+#2
用心看一下推導的關係式。
分析到這兒,我們看銑外圓,外圓深度是#26,我設置一個初始變量,比如#5 。
讓#5做自增運算(也就是每圈下刀深度),然後利用一個WHILE語句設置一個條件,當條件滿足就一直循環WHILE到END之間的程序段。
即:當銑削深度沒達到#26所賦予的數值時候,就一直循環加工的銑外圓程序。
程序如下:
G54G0X0Y0
S2000M08
Z50.M03
#7=12
#4=10
#26=15
#18=2.9
#24=[#7+#4]/2
G0X-#24Y0
Z1
#5=0
WHILE[#5LT#26]DO1
#5=#5+2
IF[#5GE#26]THEN#5=#26
G3X-#24Z-#5I#24F300
END1
當條件不滿足了,也就是深度加工到了#26賦予的數值時候,外銑削完畢,將會跳出WHILE 循環,即執行END1後面程序段,也就是接著就要銑圓弧R。
所以END1後面緊接著就編寫加工圓弧R的程序,如下:
#3=0
WHILE[#3LT90]DO2
#3=#3+3
#1=#18*COS[#3]
#2=#18*SIN[#3]
IF[#3GE90]THEN#3=90
G01X-[#24+[#18-#1]] Z-[#26+#2]F100
G03I[#24+[#18-#1]]
END2
G0Z100
加工圓弧R的時候還是利用WHILE語句設置條件來控制是否加工到尺寸。
好了,案例就不再過多分析。
因為我經常強調,案例不重要,思路很重要,編程方法很重要,今天分析的巧用勾股定理計算變量數據方法很重要。
這個方法不僅僅用於數控銑宏程序編程,數控車的宏程序編程也都可以用上。
比如一些大螺距螺紋:
比如T型螺紋:
比如車非標圓弧螺紋: