找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 113|回复: 0

Mastercam后处理坐标偏移方法

[复制链接]

433

主题

5759

回帖

901万

积分

管理员

积分
9014266
发表于 2022-9-6 20:25:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?立即注册

×
很多的时候,很多4轴及5轴机器在没有任意坐标计算宏程序的情况下,由于工装夹具及安装的偏差,导致设计理论位置与实际位置不符,在这种情况下,如何快速的偏移刀路程序就会显得尤为重要,这一过程中有如下几种方法可以实现以及其优缺点。
1 T" c+ U0 f8 |

1 A# U* S" F" [& x/ p
1 Z5 o5 c. b4 w

; E# }0 \4 |* Y* b2 W$ O% @+ X
7 S8 {6 }( L# T* `; {2 W' _! e7 v% |
1:如下图,通过调整刀轴平面X,Y,Z的位置即可实现程序偏移,但其缺点是需要重新计算所有刀路,有些情况下,有部分刀路可能会计算失败,最重要的一点是,如果采用绝对深度编程,那么这些操作的起始高度,加工深度,安全高度等都有错误的,需要重新修改,及其容易引发不必要的错误,非常不可取。
6 {9 Z# V, c: Y3 s3 A4 _1 w3 ^" b/ y& l3 @' p
# I6 L* j. {$ m/ E' [8 I% N$ L
6 H3 O% ]& m9 G. p2 J

9 Z( i, x& z/ Q2 |

" ?: z8 H2 ?; {# s2:如下图,通过转换刀路方式进行刀路平移操作,此方法可以达到效果,但同样存在一个绝对编程时所涉及到的深度或高度方面的问题,同样需要修改,也容易出现修改错误之内的问题发生,也不是非常的理想。) g2 |6 J/ R0 `0 Y/ G
7 p* X  \$ m8 r- G; u/ V. V
' C1 y+ d; _* Q2 M4 k4 t5 S

. D* U: q# I+ Z/ {那么有没有什么方法可以快速移动,偏置一段距离,也不需要更改任何刀路呢?; K. K# {: ]5 k5 Y
8 x! J8 R6 D$ u* r: h  K
下面就和大家分享一个mastercam坐标偏移的方法,不需要更改刀路文件,只需要简单的几行代码即可实现坐标偏移。* I6 ?  S3 o% Y# L( T0 l" p5 U
* ]( D/ `7 @" k2 G: ~
4 _- B+ G7 Y; J9 G- b5 G, P

3 P$ @" C! v7 j' \+ h! r2 Y
- T  b9 Z, \  M( S! b
首先坐标偏移涉及到3个方向的偏移量,一般在正常情况下都只是偏移X,Y等轴的偏移,而Z轴做偏移则较为少见,任何几个方向的偏移都涉及到,影响到其它一个或多个方向的位置,这就需要对偏移量进行处理,确保所有的方向都能把偏移量算进去,需要考虑刀轨的XYZIJK等值,这就涉及到刀轨的矢量,所以不是简单加上偏移量就可以了,这就需要用到矢量复制函数vequ。( N, W& x8 I; H

% f9 j+ J0 ~! E- n* U矢量复制函数的用法如下:( P) y) e) m. q3 V& s) e

7 q6 E0 [! d% D' l- W; l

& ^. [9 D2 c- Y+ X; s* U
( ~0 S$ j% ^/ \1 u& v+ M

# V# N( h% O* [, ?6 Y; g
  1. return = vequ(x$)
复制代码
8 i" A# }  e, ~) T) I0 C
这句话的意思是return的结果值等于当前x$的矢量值。
! {8 |* @* V  O) F! K
: h! E2 H  J" |$ A4 I
& R. M! h: N& g; z( p0 f1 S' C- r

5 @* j; j- ]) C9 ^, W) z0 g; f) a( b8 I4 U$ \+ b- Z7 ~4 {$ ]$ X
同样这里需要用到交互式的方式进行,即后处理提示用户偏移量,偏移方向等。
& F' Y, m5 t# u( E$ @! T
7 `7 M) \5 `3 S, G; A9 Z定义数据格式:  O! Y7 V; c4 f5 d! N
" p; D) v8 o- h  }, f
2 z3 c2 j- a5 s7 |! j
  1. fmt 2 tox_shift9 W2 f* q9 l* {6 c8 q- k8 o
  2. : g( V+ \- {9 i& Y/ G- B1 |& d9 q
  3. fmt 2 toy_shift& h$ m9 F8 t8 C8 T2 [, G- i% B
  4. 8 E8 Y6 T) n) z; [: S9 J$ c  q+ A
  5. fmt 2 toz_shift
    & L8 L5 H6 U; x$ A/ ~/ O

  6. " b% t$ H+ z* M' r
  7. fmt 2 tox_g; ^, i* D7 J$ z6 F
  8. & S" V' @3 U; F0 r# G% F
  9. fmt 2 toy_g
    8 F6 b0 g: H% K

  10. 0 q1 f! F& W: Y# n8 X" e
  11. fmt 2 toz_g' o9 m6 T& l# M# I, p% _

  12. 6 p% L7 u2 [( Y- X" _$ e
  13. fmt 2 wcs_shift
    ; c% H6 o( m% F& E) H6 X5 G
  14. ' v7 T9 H, D0 O0 y  v$ p
  15. fmt 4 axis_def
复制代码
" s, v. z6 v/ C5 X5 Z  B
开关及初始数据定义- g; q2 ]+ {2 T6 N

5 P4 u  y* ?6 o' r* d0 }& H

7 n1 P* i8 P4 d
  1. use_wcs_shift   :  1 #坐标偏移开关% p  c0 D; @  s$ k0 h

  2. * P& }: B( n7 J* a5 `
  3. wcs_shift : 0   #偏移轴
    " T  E, k/ u8 q- Z

  4. + L3 c: {7 R7 I& o# r
  5. axis_def  :0 #偏移类型, o: f1 ?& Y$ q( z8 \5 V4 W

  6. : \9 F3 Z* \3 w  @2 |) I7 e
  7. tox_shift_x : 0 #X轴偏移量& h5 T; Y% v4 z+ j' P. F$ p
  8. - M6 F* ?4 L0 t" C
  9. tox_shift_y : 0 #Y轴偏移量
    , |# f; T/ J1 j9 ^1 i/ N

  10. 3 t$ L9 k9 h- l
  11. tox_shift_z : 0 #Z轴偏移量
复制代码

% e; Z- s9 c$ Z2 y. i定义交互提示语句  U$ \" h+ ^, s& X

0 e& T/ C# j; j
5 K7 w6 G4 m" g$ g: a
  1. fq 23 axis_def      "选择偏移的方式,1=单个轴偏移,2=多个轴偏移"/ Q& O3 p. v" |) s% }& y3 V6 f

  2. 7 e7 G% z) p0 L8 S: G+ j4 w7 x
  3. fq 24 tox_shift_x  "输入X轴偏移量"
      G  ~+ e1 I/ \  s. O  c

  4. - h3 ~$ |- c* L6 D" \
  5. fq 25 tox_shift_y  "输入Y轴偏移量"
    " {6 s. X) L% c8 u' B
  6.   T5 Y$ \6 g: E0 Z. E0 w
  7. fq 26 tox_shift_z  "输入Z轴偏移量"
    8 t/ s, z  H" M7 t4 T, I# F) p

  8. 2 Y* w5 t6 D4 z# F
  9. fq 27 wcs_shift   "选择偏移轴,1=X轴,2=Y轴,3=Z轴"
复制代码
( F4 n/ c( P* E) R  r5 U
坐标系偏移过程处理及交互过程处理
' p, E4 ^" Y) n* U# T4 q3 {1 C! ?! Z. o  a& [0 `5 ], u

4 S. K3 a0 T8 X# P
  1. pwcs_Shift6 Q! Z: l4 Z/ v2 j

  2. - g& }1 s5 L9 |! d, O# v: I1 g
  3.    tox_g = vmap(tox$,rmtx1). [& @% P% J) F: V# B  [9 U$ c0 u1 t, B

  4. : |% j; t  V$ m. _3 m2 o
  5.    if use_wcs_shif = 1," t9 p+ ?( f8 a  f" T! C- u+ G. Z
  6.    [
    % \) n, {: k1 h% A6 s3 p. n
  7.    while axis_def < 1 | axis_def > 2,q23/ D& n( g) n) a$ s) T6 S. \
  8.    if axis_def = 1,
    6 Q7 e' Q) H0 E& u
  9.     [
    ( g) V+ }! K2 _) q) a
  10.     while wcs_shift < 1 | wcs_shift > 3, q27
    " g1 f! v# k1 B4 m5 C
  11.     if wcs_shift = 1, q24, tox_shift = tox_shift_x- `/ K# o1 \5 |& `- \# k6 b
  12.     if wcs_shift = 2, q25, toy_shift = tox_shift_y
    ) [, V! I4 D. m) F6 a- k7 A# Z
  13.     if wcs_shift = 3, q26, toz_shift = tox_shift_z0 Q) ?6 t; l( |: i
  14.     ]
    9 q! b3 V/ N8 n
  15.     else,
    8 q/ e& R& O5 S5 G# P4 a4 Q
  16.     [9 o" d/ O, y' I# L  J* x- P3 @! D
  17.       q24, tox_shift = tox_shift_x
    $ \. t: j9 ?. K, D% ?+ o7 d7 d
  18.       q25, toy_shift = tox_shift_y' j5 o3 F, j7 }7 K8 g5 y0 A
  19.       q26, toz_shift = tox_shift_z
    & A3 ~& b4 Y& f6 d- b+ n, p
  20.     ]
    , d2 P3 G, B* V) u3 p" r$ x9 J
  21.    tox_g = vequ(tox_shift)   0 y  @" _! W; @$ G+ s4 u
  22.    ]
复制代码

  b3 v7 O8 ~; q在XYZ的计算过程中把偏移量添加进去,位置如下
4 w$ L2 i8 Z0 F; }; p
8 ?% _& U4 R& B: `$ }( {5 R' r

- h! P, \$ [% h1 [. e
  1. pxyzout0$ f: V, p' y' @! t8 O
  2. + ^: Y( Y4 U1 B& ]- F1 `
  3. pxyzout16 j4 n( Q) ~( W; r
  4. ' s) {+ _) o2 A" q- a# q
  5. pxyzout2' ?. Y, v7 w+ o: f; a2 h7 {9 [

  6. # t4 K; g: p: _, l
  7. pxyzout3
复制代码

& @0 @( H' H! p! l, A偏移量的增加函数:vadd: g  i# U: q( f9 R8 i. c
1 I% j' d% [9 d  l; p& I

+ F- w( `/ ~3 S  ?; j
  1. return = vadd(v1, v2)
复制代码
8 s: Y( r7 B) ]1 m
增加2个3D向量,即相当于2个3D向量进行加法运算。
- Z4 Y$ G' A, ^. _$ Z
+ W1 x7 V4 n6 M( B

7 F" ^) Z0 ~# N

+ [' c1 ]4 ]9 u' v; R# i实例:- Q2 m6 F& D- h7 e3 ?, \( h
  1. pxyzcout0       #Toolplane Positioning" u# ~6 t* t# L" Q+ `; K* i
  2.       xabs = vequ(x$)/ B& z( T/ b; w1 L9 P  ]
  3.       xabs = vadd(xabs,tox_g)
    4 r5 c* x# p& f1 G8 f
  4.       iout = vequ(i$)     
    ' v) |; N! J$ x* x+ L3 F; D% {+ e
  5. if rot_on_x = two, csav = -c$
    8 b' I9 H) a0 J! c8 J% U' M; O
  6. else, csav = c$
复制代码

3 t2 w5 R: {  u+ z1 f, x: G无论是X,Y,Z哪个方向偏移了,其结果不仅仅只是影响相应的轴的坐标点,对于多轴的其对应的u,v,  w也会发生了变化
1 s) o, q& `/ T6 z4 q* W0 M: k, |9 l0 L+ s6 r; ?: r

3 e* C! _+ I8 Q% f$ G; D, p! d
  1. pxyzcout3
    & V0 z  ?/ x  v- Z; O7 g
  2.   xabs = vadd(xabs,tox_g)
    3 t1 n$ g* x, z' o
  3.   ua = vadd(ua,tox_g)
复制代码

  {1 n5 x2 ]3 D% B5 R至此,坐标系偏移以增加到相应的点上。' y: X6 u5 K0 ~, m, Q
8 l+ G5 |. ?, r3 S+ _; G
/ P5 r7 E2 j! `: P9 ]( x' |

3 Q( Z& \) [2 v6 g3 k7 x3 y/ m, s8 `  X2 h* S) t4 ?
, {$ A7 r2 [( _  X9 d. S

% c7 n/ D$ Z! r

5 x$ f# K9 i  r1 l' M以上及部分代码可能存在错误,自行修正。
/ B- q3 Q& H- ?8 X! I* e: M- Z
# K5 t+ S/ M6 O# E
/ ?3 ~6 v. y% t( f/ W2 L. a, f8 T2 G0 H/ V) L% W
0 R1 Z' I: @/ Q) Q3 \
9 p) B, ~& O' W6 D" E/ z' K

. D$ X5 K0 H9 R$ \7 W- B5 |8 l$ o1 c7 `7 {+ L. y  ^

) o3 B" e4 d; \/ I4 s8 _# h$ v+ `5 _5 q) J

1 M& X8 F8 T6 P$ u
% S5 M' h+ N6 L; H; ~1 f  T0 Y- i" y% l% z# n  ?) w
( I& n: S9 b3 S
& M7 G! L; u5 r0 {3 @( l0 F
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

QQ|Archiver|手机版|小黑屋|若枫后处理论坛 ( 苏ICP备11015087号-1|苏公网安备32059002001368号 )

GMT+8, 2026-8-23 01:08 , Processed in 0.171763 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表