我想看一级黄色大片_久久亚洲国产精品一区二区_久久精品免视看国产明星_91久久青青青国产免费

您的位置:網站首頁 > CAM

傾斜非圓曲線的數控車削宏程序的編制

時間:2011-03-01 09:39:28 來源:

  2006年全國數控技能大賽北京決賽考試中,教師組數控車工軟件考試中有一道特殊的宏程序題目,一段圓弧上均勻分布著多個首尾相連的橢圓曲線,給出宏程序要求找出其中的錯誤,圖形示意圖如圖1所示(圖形對比原題不一樣,其中的尺寸是作者自己標注的)。

  對于高水平的數控技能競賽,非圓曲線的宏程序編制是必考的內容之一,一般選手都能掌握,但是一般非圓曲線的軸線都是與Z軸(或X軸)平行或者重合的(見圖2),這種非圓曲線的編程難度并不大,掌握非圓曲線加工的基本原理和學會曲線中心點的坐標偏移就可。但本文中所涉及到的題目則有其特殊之處,橢圓的軸線與Z 軸(或X軸)不平行,而是成一定的角度,整個橢圓是傾斜形狀的,這種圖形在數控銑床(或加工中心)上編程根本不存在難度,使用G68坐標旋轉指令即可解決問題,但是在數控車削編程中沒有G68坐標旋轉指令,手工編程存在相當的難度,所以僅僅在軟件仿真考試中給出程序并要求改正錯誤。

  一、坐標旋轉的數學基本原理

  非圓曲線的宏程序編制都是基于對非圓曲線數學公式、圖形特點的分析之上,所以良好的數學基礎是編制宏程序的前提。要編制上面題目中有一定難度的宏程序,更需要深層次的數學知識。相同的題目,可以使用多種不同的數學方法解決,有簡有繁,相應宏程序編制也不相同。

  非圓曲線傾斜相當于把正常的坐標系和圖形繞原點旋轉了一個α角度所得到的圖形和坐標系(見圖3)。

圖1到圖4

  假設曲線上的一點P(見圖4),已知在XOY坐標系中的坐標為(X,Y),坐標系和圖形旋轉一個角度α以后,P點旋轉 后所在的位置為P*,P *點在原來XOY坐標系中的坐標為(X*,Y*)即為我們所求的坐標數值,由已知的P 點的坐標數值(X,Y)和旋轉角度α通過多種數學處理方式和轉換可以求出P*點 的坐標數值(X*,Y*)。

  1.采用二維圖形的變換矩陣進行旋轉點的坐標計算

  在計算機繪圖基本原理中,二維圖形的基本變換是通過矩陣運算進行的。在二維空間內,一個點的坐標可以表示為一個行向量|X  Y| ,一個二維空間點的坐標變換即為一個行向量|X  Y|和一個2×2階變換矩陣的相乘運算,得到新點的坐 標(X*,Y*)。二維圖形上的每一個點的處理都是如此。2×2 階變換矩陣不同,可以得到圖形的平移、鏡像、旋轉、比例和縮放等多種變換形式。

  在本文討論的題目中只涉及到圖形的旋轉變換,圖形的偏移是通過其他方式處理的,因此只介紹圖形的旋轉變換矩陣,并且只介紹繞坐標原點旋轉變換的2×2變換矩陣:

  對于點P 坐標(X,Y )進行α角度的旋轉變換,通過行向量|X Y|與變換矩陣T相乘運算以后,變換后P*點坐標為:

  2.采用平面解析幾何計算旋轉點的坐標

  圖4中XOY坐標系中P點的坐標為(X,Y),繞原點旋轉α角度后得到X*OY*坐標系和點P*,要求出點P*在XOY坐標系中的坐標(X*,Y*)。

  輔助線的作法(見圖5)。

圖5

  (1)過點P分別向X、Y 軸作垂線,得垂足A 、B,那么|OA|=X,|OB|=Y。

  (2)過點P*分別向X*、Y *軸作垂線,得垂足A*、B*,那么|OA*|=X ,|OB*|=Y 。

  (3)過點P*分別向X 、Y 軸作垂線,得垂足C、F 。

  (4)過垂足點A*向P*C作垂線,得到垂足E,過垂足點A*向X軸作垂線,得到垂足D。分析圖形中各線段的幾何關系:

  P*在XOY 坐標系中的坐標為(X* ,Y*),X* = |OC|,Y* =|OF|,只要求出|OC|和|OF|的長度即可。

  (1)X*坐標(|OC|長度)的求法。

  在X坐標軸上,|OC |=|OD |-|CD|,在直角三角形中OA*D中(見圖6),已知角度α ,
|OA *|=X ,那么有:

  |OD |=|OA*|·COS(α)=X ·COS(α) ①

  在矩形CEA*D中,|CD| = |E A*|,在矩形OB*P*A* 中,

  |P*A*|=|OB*|=Y,分析直角三角形P*A*E(見圖7),已知|P*A*|=Y和角度α,那么有:

圖6圖7

  |EA*|=|P*A*|·SIN(α)=Y·SIN(α)=|CD| ②

  P*點的X*坐標 |OC|=|OD|-|CD|=X·COS(α)-Y·SIN(α)。

  (2)Y*坐標(|OF|長度)的求法。

  在矩形OFP*C中,|OF|=|P*C|=|P*E|+|EC |,只要求出|P*E|和|EC|即可。

  在直角三角形P*A*E中(見圖7),已知|P*A*|=|OB*|=Y角度α ,那么有:

  在矩形CEA*D中,|EC|=|A*D|,分析直角三角形OA*D(圖6),已知|OA*|=X 和角度α,那么有:

   P*點的Y*坐標從而確定P*點坐標求解公式為:

  3.采用三角函數方法計算旋轉點的坐標

  已經知道平面上一點P的坐標為(X,Y),|OP|為原點O 至P點的線段,|OP |線段與X 軸的夾角為θ(如圖8所示),那么有:

圖8

  當坐標系繞原點旋轉角度α以后,P*點為旋轉后P 點的位置,旋轉后|OP|線段的長度保持不變,|OP*|線段與X 軸的夾角為(α+θ),那么有:

  根據三角函數的運算法則:

  最后得出P*點坐標求解公式為:

   數學分析總結:以上三種不同的數學方法對于旋轉點的坐標計算有簡有繁,但最終得出的公式(1)、公式(2)和公式(4)是統一的。介紹三種不同的數學處理方法的目的是為了適應不同數學基礎和不同思路的編程人員能看懂并接受這個公式。雖然這三種方法的結果是統一的,但是在宏程序的編制處理上還有區別,前面兩種數學方法可以使用相同的編程處理方式,但是最后一種數學處理方法的編程處理則有所不同,下面分別介紹。

  二、單個傾斜橢圓的宏程序編制

  橢圓的長半軸50,短半軸30,長半軸與Z 軸的夾角30°,即橢圓傾斜了30°,工件坐標系的原點設在橢圓的中心,實際機床運行模擬的屏幕硬拷貝圖形如圖9所示。

圖9

  程序的清單和注釋如下:

  N10 G98 S800 M03 主軸800r.p.m正轉啟動 N20 T0101 調用1號刀和刀具補償 N30 G00 X60. Z50. 快速定位

  N40 #1=30. X向半軸長度

  N50 #2=50. Z 向半軸長度 N60 #3=30. 橢圓傾斜角度

  N70 #4=50. Z 向變量#4的起始數值

  N80 #24=SQRT[#2*#2-#4*#4] 普通橢圓上點X 坐標的計算

  N90 #24=–#1*#24/#2 普通橢圓上點X 坐標的計算 N100 #26=#4 普通橢圓上點Z 坐標的計算 N110 #27=#26*SIN[#3]+#24*COS[#3] 傾斜橢圓上點X坐標的計算公式(1)Y*=X·SIN(α)+Y·COS(α) 車床使用ZX 坐標系,用Z 、X 代替X 、Y

  N120 #28=#26*COS[#3]-#24*SIN[#3] 傾斜橢圓上點Z坐標的計算公式(1)X*=X·COS(α)-Y·SIN(α) 車床使用ZX坐標系,用Z、X代替X、Y

  N130 G01 X[2.*#27] Z#28 F2000 直線段逼近橢圓(X 坐標變為直徑值)

  N140 #4=#4–0.5 Z 向變量#4循環遞減步距0.5

  N150 IF[#4GE[–#2]] GOTO80 循環判斷語句 N160 G0 X100. X 向退刀

  N170 Z100. Z 向退刀 N180 M30 程序結束

  程序說明:程序中橢圓傾斜的角度α僅以30°為例,實際上的α角度有正有負,是任意的,包括0°、90°或180° 等特殊角度。

  從程序中可以看出,傾斜橢圓(非圓曲線)宏程序的編制與普通橢圓(非圓曲線)宏程序的編制大體相同,不過僅僅增加了N110、N120兩個坐標旋轉公式的程序語句,這是根據前面兩種數學方法得出的公式編制的宏程序,采用第三種方法編制的宏程序則不同。

  程序清單以及注釋如下:

  N10 G98 S800 M03 主軸800r.p.m正轉啟動

  N20 T0101 調用1號刀和刀具補償

  N30 G00 X60. Z50. 快速定位

  N40 #1=30. X 向半軸長度

  N50 #2=50. Z 向半軸長度

  N60 #3=30. 橢圓傾斜角度

  N70 #4=50. Z 向變量#4的起始數值

  N80 #22=#4 普通橢圓上點Z 坐標的計算

  N90 #23=SQRT[#2*#2-#4*#4] 普通橢圓上點X 坐標的計算

  N100 #23=-#1*#23/#2 普通橢圓上點X 坐標的計算

  N110 #25=ATAN[#23]/[#22] |OP |線段與橢圓長軸的夾角

  N120 #21=SQRT[#22*#22+#23*#23] |OP |線段的長度

  N130 #24=-2.0*#21*SIN[#25+#3] 傾斜橢圓上點X坐標的計算

  N140 #26=#21*COS[#25+#3] 傾斜橢圓上點Z 坐標的計算

  N150 G01 X#24 Z#26 F2000 直線段逼近橢圓

  N160 #4=#4-0.5 Z 向變量#4循環遞減步距0.5

  N170 WHILE[#4EQ0] DO1 特殊處理程序段

  N190 #21=#1 特殊處理程序段

  N200 #24=-2.*#21*SIN[90.-#3] 特殊處理程序段

  N210 #26=#21*COS[90.-#3] 特殊處理程序段

  N220 G1X #24 Z#26 F2000 特殊處理程序段

  N230 #4=#4-0.5 特殊處理程序段

  N240 END1 特殊處理程序段

  N250 IF[#4GE[-#2]]GOTO80 循環判斷語句

  N260 G00 X100. X向退刀

  N270 Z100. Z 向退刀 N280 M30 程序結束

  上面的宏程序是根據第三種數學處理方式編制的,與前面兩種處理方式不同,它沒有使用最后的計算公式(1)、(2)和(4),而是使用了中間計算公式(3)進行編程。這種編程方式是計算出普通橢圓上每一個點P (X ,Z )與圓心連 線|OP |的長度,以及|OP |與長半軸的夾角θ ,加上旋轉角度α 以后,再根據三角函數計算旋轉點P* (X*,Z*)的坐標(如圖8)。|OP|與長半軸的夾角θ是根據P點的坐標(X ,Z ),用反正切函數ATAN[X]/[Z]計算出來的,當變量Z(#4)為0時,

  反正切函數ATAN[X]/[Z]是無定義的,不能求出角度的數值,所以在宏程序中有特殊處理程序段計算變量Z (#4)為0 時的角度。

  上面的程序還有其他的解決辦法,在求連線|OP|與長半軸的夾角θ時,可以不用反正切函數ATAN[X]/[Z],而是使用反余弦函數ACOS[ ] ,這個函數不存在無定義的特殊點。程序相對會簡化一些。

  使用反余弦函數ACOS[ ]的程序清單及注釋如下:

  N10 G98 S800 M03 主軸800r.p.m正轉啟動

  N20 T0101 調用1號刀和刀具補償

  N30 G00 X60. Z50. 快速定位

  N40 #1=30. X向半軸長度

  N50 #2=50. Z 向半軸長度

  N60 #3=30. 橢圓傾斜角度

  N70 #4=50. Z向變量#4的起始數值

  N80 #22=#4 普通橢圓上點Z 坐標的計算

  N90 #23=SQRT[#2*#2-#4*#4] 普通橢圓上點X 坐標的計算

  N100 #23=-#1*#23/#2 普通橢圓上點X 坐標的計算

  N120 #21=SQRT[#22*#22+#23*#23] |OP |線段的長度計算

  N125 #25=ACOS[#22/#21] |OP |線段與橢圓長軸的夾角

  N130 #24=#21*SIN[#25-#3] 傾斜橢圓上點X 坐標的計算

  N140 #26=#21*COS[#25-#3] 傾斜橢圓上點Z 坐標的計算

  N150 G01 X[-2.*#24 ] Z#26 F200 直線段逼近橢圓

  N160 #4=#4-0.5 Z 向變量#4循環遞減步距0.5

  N250 IF[#4GE[-#2]] GOTO80 循環判斷語句

  N260 G00 X100. X 向退刀

  N270 Z100. Z 向退刀 N280 M30 程序結束

  可以看出,使用反余弦函數ACOS[ ]比較使用反正切函數ATAN[X]/[Z]在程序要簡化許多,同時也可以知道,同一個加工要求的圖形,可以有多種編程方法和途徑解決。

  三、圓弧上均布橢圓的宏程序編制

  對于圖1中的加工圖形,實質上是橢圓圓心在不同點上、長半軸傾斜角度不同的首尾相連的多個橢圓曲線,其核心仍然是傾斜橢圓的編程處理。實際機床運行模擬的屏幕硬拷貝圖形如圖10所示。

圖10

  程序清單以及注釋如下:

  N10 G98 S300 M03 主軸800r.p.m正轉啟動

  N20 T0101 調用1號刀和刀具補償

  N30 G00 X0 Z100. 快速定位

  N40 G2 X0 Z-100. R100. F300 模擬加工R 100的圓弧,方便觀察均布橢圓的加工過程

  N50 #1=100. 圓弧的半徑

  N60 #2=5. 均布橢圓的個數

  N70 #3=180. 圓弧對應的圓心角度

  N80 #4=#3/#2 每個橢圓對應的圓心角度

  N90 #5=#1*COS[#4/2.] 橢圓中心點與原點的距離

  N100 #6=#1*SIN[#4/2.] 橢圓的長半軸計算

  N110 #7=#6*0.6 橢圓的短半軸,因為沒有尺寸,暫定 為長半軸的0.6倍

  N120 #8=#4/2. |OP |連線與Z軸的起始夾角

  N130 #21=1. 橢圓個數的計數器

  N140 #9=#5*COS[#8] 橢圓中心點的Z 坐標計算

  N150 #11=-#5*SIN[#8] 橢圓中心點的X 坐標計算

  N160 #12=90. -#8 橢圓長半軸傾斜的角度計算

  N170 #15=#6 橢圓Z 向變量#4的起始數值

  N180 #16=SQRT[#6*#6-#15*#15] 普通橢圓上點X坐標的計算

  N190 #16=-#16*#7/#6 普通橢圓上點X 坐標的計算

  N200#17=#15*SIN[#12]+#16*COS[#12] 傾斜橢圓上點X坐標的計算

  N210 #18=#15*COS[#12] -#16*SIN[#12] 傾斜橢圓上點Z 坐標的計算

  N220 #18=#18+#9 橢圓上點Z 坐標的偏移計算

  N230 #17=#17+#11 橢圓上點X 坐標的偏移計算

  N240 G01 X[2.*#17] Z#18 F300 直線段逼近橢圓

  N250 #15=#15-#6/40. Z向變量#4循環遞減步距#6/40

  N260 IF[#15GE[-#6]] GOTO180 循環判斷語句

  N270 #8=#8+#4 |OP |連線與Z軸的夾角循環遞增

  N280 #21=#21+1. 橢圓個數計數器遞增1.0

  N290 IF[#21LE#2]GOTO140 循環判斷語句 N300 G00 X100. X 向退刀

  N310 Z100. Z 向退刀 N320 M30

  程序結束

  在上面的宏程序中,有幾點注意事項:

  (1)這是在凹圓弧上的多個凹橢圓曲線,加工區域都是在X軸的負值區域,在實際切削加工中是不可能出現的。實際切 削時,可以把橢圓上的坐標點向X 向(或Z向)做相應的偏移處理。另外,因為圖樣條件都是假設,沒有考慮刀具的角度以及加工干涉的問題。

  (2)本程序中使用了雙重循環,內循環控制單個橢圓曲線的加工(本程序加工的是半個橢圓,當然可以改變參數,加工起點和終點不同的部分橢圓)。外循環控制橢圓中心點的坐標和橢圓長軸傾斜角度的變化,最終加工出連續的橢圓曲線族。

  (3)本程序中還有一個特殊之處是在橢圓曲線的編程時,Z向變量#15的步距,一般橢圓曲線宏程序編制時取的步距為0.1、0.2、0.4、0.5…等規整的數值,但是在本程序中不可以,因為橢圓的長半軸的計算出的數值不是整數值,所以步距取#6/40.0,即步距為長半軸的1/40,也可以說是用40段直 線段逼近橢圓曲線。分母的數值越大,步距越小,曲線加工的精度越高。如果使用規整數值0.1、0.2、0.4、0.5…,有可能出現橢圓曲線的末端加工“欠切”和“過切”的現象。

  (4)本程序中使用的是坐標旋轉公式(1)、(2 )和(4),沒有使用公式(3),其原因是:

  ◎使用公式(3)必須使用反余弦函數ACOS[ ](或反正切 函數ATAN[X]/[Z]),而這兩個反函數都有無定義點(ACOS[-1.0]在實際機床數控系統中也無定義,會報警出錯)。對于無定義點需要特殊程序段處理,增加了程序段數量和編程難度。

  ◎使用反余弦函數ACOS[ ](或反正切函數ATAN[X]/[Z])時,需要多次數學運算,在連續橢圓曲線加工運算時會出現累積誤差,導致最后一個橢圓曲線“欠切”,但對單個橢圓曲線不會出現這種情況。

  ◎公式(1)、(2)和(4)中只有單次數學運算,不存在無定義點,沒有累積誤差,編程簡單,推薦使用。本文使用公式(3)編程只是增加一種編程思路,起對比分析作用。

  四、程序分析總結

  (1)宏程序的功能是強大的,但邏輯思維性強,需要考慮多個參數的變化及其相互的關系,而數學培養鍛煉的正是人的思維的邏輯性、條理性和敏銳性,良好的數學基礎是掌握并熟練運用宏程序的前提條件。

  (2)通過三種數學處理方法得出的坐標旋轉點的計算公式(1)、(2)和(4)具有通用性,與具體的曲線形式無關,即公式(1)、(2)和(4)對于傾斜的橢圓、雙曲線、拋物線、正(余)弦曲線等非圓曲線都適用。

  (3)有些書籍中把宏程序稱為“自由編程”是有一定的道理的,每個人都可以根據自己不同的數學基礎,對于同一圖形不同的解讀,以不同的思路,編制出不同的加工程序,而最終得到的加工結果是相同的。這也驗證了數控加工的一個基本原則:“數控加工沒有惟一的途徑,只有惟一的結果”。