①程序。
(此宏程序以FANUC为例。版本OI-MD)
(卧式加工中心,第四轴B轴为旋转中心)
O888(主程序WPC SHIFT Main-Prog )
G90
G65P777X_Y_Z_ B_ A_ C_ (G54-->>G5x)
G90
M30
解释:
G65P777X_Y_Z_ B_ A_ C_
1. X_Y_Z_ 为需要偏移的量,如果B轴旋转后程序原点相同,则
X0.Y0.Z0.
2. A 为原始坐标,此处固定为54(即G54)
3. B为B轴旋转的角度。
4. C 为G54旋转后的坐标所在位置。
例如:G65P777X0.Y0.Z0.B90.A54.B55.,G54旋转90度后得到G55。
O777(子程序 WPC SHIFT Sub-Prog )
#11=(-654.321.) (Z CENTER OF B AXIS 旋转中心的Z坐标,从机床参数得到此坐标值)
#12=(-123.456) (X CENTER OF B AXIS 旋转中心的X坐标,从机床参数得到此坐标值)
#15=#5223 (Z:3rd axis of G54)
#16=#5221 (X:1st axis of G54)
#27=#5222 (Y:2nd axis of G54)
数学推导。
此处采用ZX坐标,便于与机床坐标系一致,俯视卧加机床,得到的即是ZX平面坐标系
第1步
推导A点绕O点旋转α角得到B点,求B点的坐标。
A点: = LCosβ (1)
=LSinβ (2)
B点: =LCos(α β) (3)
=LSin(α β) (4)
由三角函数公式:Sin(α β)=SinαCosβ CosαSinβ (5)
Cos(α β)=CosαCosβ-SinαSinβ (6)
把(5),(6)代入(3),(4),得到
=LCos(α β)=LCosαCosβ-LSinαSinβ (7)
=LSin(α β)=LCosαSinβ LSinαCosβ (8)再把 (1),(2)代入(7), (8)得到:
到此得到了旋转后点的坐标,但是此点坐标是相对于旋转中心O的坐标,机床中需要的是相对于机床原点的坐标,所以还需要第2步。
从上图可看出,工件编程零点(WPC)G55相对于旋转中心的坐标为:
=-#11 #15
=-#12 #16
再考虑到可能有偏移的量(WPC shift),得到:
=-#11 #15 #26 设为 #17
=-#12 #16 #24 设为 #18
所以G55对于O的坐标用宏表示:
#17=#15-#11 #26 (11)
#18=#16-#12 #24 (12)
把(11)(12)代入(9)(10)得到:
=#17*COS[-#2]-#18*SIN[-#2]
=#17*SIN[-#2] #18*COS[-#2]
b.所以G55在机床坐标系的坐标写为宏程序:
#19=#11 #17*COS[-#2]-#18*SIN[-#2] (13)
#20=#12 #17*SIN[-#2] #18*COS[-#2] (14)
把(13)(14)写入机床,即:G90G10L2P[#3-53]X#20Y#27Z#19B[#28 #2]
总结:
1. 先计算出编程零点相对于机床旋转中心的坐标,再转换为相对于机床零点的坐标。
2. 坐标旋转不影响Y轴坐标(#27,上下方向),机床旋转中心的坐标,参考机床手册。
3. 程序为简化推导,把旋转前的工件坐标固定为G54.(#15,#16,#27,#28),可优化。
4. 此程序不考虑其它因素,如坐标放置在G54.1P1 (to G54.1P300)等位置。
③应用举例。
加工同一个工件上的两个孔,孔1在B0度的面上,孔2在B90度的面上,如下图,
如图,程序零点G54设在角落顶点(Q点)。加工孔1时:
一. 程序:
二.如图,加工孔2时,如果没有偏移量,即旋转前后程序零点相同(Q点),程序:
二. 加工孔2时,为了编程方便,可能加工孔2时,坐标在角落顶点不方便,如移动到孔的正上方,P点,即有偏移量(WPC shift),即旋转前后程序零点不相同,此时程序:
④其它相关及参考点。
a. 机床对应的宏变量及三角函数点:
b.参考机床:马扎克 HCN-4000
此技术文章为转载内容,仅作为分享之用。