今天給大家分享一篇純乾貨的文章,以一個案例:螺旋插補銑錐孔的例子,來教大家一個編寫宏程序的關鍵點:邏輯推理
宏程序編程的邏輯推理關鍵點在於:推導出變量之間的關係式。
舉個例子,前段時間有師傅在數控銑床上面加工孔口倒角,雖然是孔口倒角,但他乾的是航天產品,質量要求比較高。他用的是倒角刀具,直接紮下去。
這麼做的結果:
1, 孔口產生了毛刺,影響產品質量
2, 刀具費用有點高,因為用的是專用倒角刀具
那麼,提高產品質量的改進的方法有哪些呢?
其中從編程角度來講,其中有一種方法那就是: 螺旋插補銑走刀
1, 孔和倒角可以用一把標準刀具,都採用螺旋插補銑的方式,一次銑出來,避免倒角和孔有接刀痕以及毛刺等的產生。
2, 要求程序通用性好,一個程序要滿足不同尺寸的倒角。後面再次加工不同大小的孔,不同角度的錐面,刀具直徑如果變化等都可以用此程序搞定。
這兩點,如何通過數控編程宏程序來實現呢?
這是我今天分享的重點:邏輯推理
以螺旋插補銑錐孔為例(螺旋插補銑孔以及孔口倒圓弧以前分享過不再贅述,如需要聯繫,我把50頁的PPT送給你)。
邏輯推理關鍵點在於:推導出變量之間的數學關係式
讓數學關係式來參與運算,從而完成程序的編輯!
這麼講空泛,具體看下面簡圖,思考一個問題:
假如設置點P 是圓弧上面的任一點,它的X,Y,Z座標我們用機床識別的宏變量:#24 ,#25,#3分別表示。
你如何計算出#24 ,#25,#3的數學關係式呢?也就是圓錐上面任一點的點位座標呢?
在一個直角三角形中,根據三角函數,夾角#1和邊的關係,可以推出以下關係:
#24=#18*COS[#1]
#25= #18*SIN[#1]
因為由夾角#1的轉動,就會繪製出一個半徑為#18的圓弧
這就是簡單的邏輯關係, 由夾角#1的取值範圍不同,那麼就會有對應的圓弧
比如:
讓#1從0 ~180 自增運算,執行下面程序就是半圓了。
比如:
#1取值的範圍從從0 ~270 ,執行下面程序就就走出一個3/4的圓了。
比如:
#1 從0 ~360 ,就是一個整圓了。
好,我們要X,Y,Z三軸聯動螺旋插補銑錐,而不是在一個平面上走圓弧
試想2個問題:
第1個:關於變量#3(Z方向)關係式的推算 (隨著#1的變化而變化)
#1自增 ,範圍0~360將會是一個整圓,那麼#1自增的過程 同時讓Z方向的數值也逐漸變化 。如果我把#1的數值 直接賦值給#3 ,即:#3=#1
上面程序中的G01X#24Y#25 添加一個Z-#3 ,不就完成了一個圓的螺旋線了嗎!
那麼,我們看#1的數值 直接賦值給#3,(Z方向)會是什麼情況?
當#1=0的時候 #3 也就等於0
當#1=1的時候 #3 也就等於1
當#1自增到360的時候, #3的數值也就等於了360
G01X#24Y#25Z-#3
也就是走一整圓的同時#3(Z方向)下降了-360
每走一圈我想讓Z方向下降1mm,怎麼辦呢?
如下關係式:
#3=#1/360
很容易推算出來,即給#1除了一個係數360
#3=#1/360 當#1自增到360時候, #1/360運算的數值也就賦值給了#3
比如,我們看下面程序段:
#1自增,範圍0~360,也就是一圈圓,Z下降了1mm。
#1自增,範圍為0~720,也就是2圈圓,Z下降了2mm。
2、關於圓錐上面任一 P點 X Y算數式的推算
#24=#18*COS[#1]
#25= #18*SIN[#1]
這是銑圓,但是三軸聯動螺旋插補銑錐孔,
隨著Z的下降,半徑(#18)也會變化AN[#6]=#2/#3 可以計算出
#2= TAN[#6]* #3
好,這個#2就是變化量,因#3(Z方向的下刀深度)變化而變化
關係式為:#2= TAN[#6]* #3 (備註:#6代表錐度變量)
那麼圓錐上面任一 P點 X Y算數式為:
#24=[#18-#2]*COS[#1]
#25=[#18-#2]*SIN[#1]
這才是圓錐上任一點P的X, Y座標 。
推算出了圓錐上任一點P的X、 Y還有Z座標算數式:
#3=#1/360 (每走一圈,Z的下降的深度)
那麼,很快就可以完成零件的編程。
比如
#1自增的範圍圍0~3600,也就是10圈圓,Z下降了10mm
備註:
變量#18代表圓弧的半徑值,
並沒有把刀具計算在內
給#18賦值的時候需要計算即:#18=(倒角直徑-刀具直徑為)/2
我可以單獨設置兩個變量,分別代表倒角直徑,刀具直徑,比如下圖:
#7 代表 倒角大端直徑
#20 代表刀具直徑
根據倒角的大小,刀具的直徑,要加工的錐度大小,分別給#7,#20,#6賦值即可。
好,你有沒有發現,上面程序中
1, 設置的變量#3=#1/360 每圈下降的深度是固定的,即1mm
2, 零件Z方向的總深度,是由#1來決定的
1圈圓弧,#1的範圍是0-360
2圈圓弧,#1的範圍是0-720
……
10圈圓弧,#1的範圍是0-3600
由上面兩點,每圈切深和總圈數決定了要加工的倒角總深度
實際上,我們希望直接給變量賦值,來決定我們要加工的總深度,而不是什麼圈數。比如在程序中設置一個變量#26代表零件Z方向的總深度。
設置一個變量#4代表每圈下刀深度
那麼#26/#4 就代表要走的圈數
#5=FUP[#26/#4] 圈數取整
備註:
FUP是宏程序中的一個取整函數,什麼意思?
運算式計算的結果如果有小數,把小數部分變為整數1,並加到整數部分
比如,
#26=16(零件深度)
#4=2.2 (每圈切深)
16/2.2=7.272
那麼#5=FUP[#26/#4]
#5的結果為8(#26/#4運算的數值,小數部分變為整數1,並加到整數部分 )
好,變量之間的推理就分享到這兒,直接上部分程序:
我是鄒軍,長期分享數控編程,加工小技巧!關注鄒軍愛數控,拿福利,再學乾貨!
閱讀更多 鄒軍愛數控 的文章