找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 92|回复: 0

Mastercam后处理坐标偏移方法

[复制链接]

433

主题

5759

回帖

901万

积分

管理员

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

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

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

×
很多的时候,很多4轴及5轴机器在没有任意坐标计算宏程序的情况下,由于工装夹具及安装的偏差,导致设计理论位置与实际位置不符,在这种情况下,如何快速的偏移刀路程序就会显得尤为重要,这一过程中有如下几种方法可以实现以及其优缺点。( t1 M  Z' S- A& b/ m, X5 h
; w) k! ]9 m# A2 |* |* U- H

# f3 ^  V% k! C

4 U3 O& T% G9 Q3 @  X) d

* i$ X( b+ U$ P) X7 W) J1:如下图,通过调整刀轴平面X,Y,Z的位置即可实现程序偏移,但其缺点是需要重新计算所有刀路,有些情况下,有部分刀路可能会计算失败,最重要的一点是,如果采用绝对深度编程,那么这些操作的起始高度,加工深度,安全高度等都有错误的,需要重新修改,及其容易引发不必要的错误,非常不可取。- D. N! Q& U( ?
  n+ k1 z0 v) t' `7 v
6 N* S  z9 c6 y9 b' y8 N  \

. ?7 z0 |5 w/ `8 X% M' c
/ w% H& r' f& Q

. R; r. o6 e# u6 j- h  ~5 x2:如下图,通过转换刀路方式进行刀路平移操作,此方法可以达到效果,但同样存在一个绝对编程时所涉及到的深度或高度方面的问题,同样需要修改,也容易出现修改错误之内的问题发生,也不是非常的理想。  u% f0 k7 J/ b7 M2 Z

* Z& @# \* f* w- x7 r4 y) L

! n9 n% Q4 b: k
. D; h; H; G1 Y那么有没有什么方法可以快速移动,偏置一段距离,也不需要更改任何刀路呢?
* p$ J5 @! z/ ?0 ?- x$ R0 ~* [
下面就和大家分享一个mastercam坐标偏移的方法,不需要更改刀路文件,只需要简单的几行代码即可实现坐标偏移。
. a$ N, C" _1 s/ o/ q% ?/ `) T; J/ N3 u. v$ S' c

$ S4 X* Y1 y7 r! [% x% e$ r2 H+ d' t" b* d: F

6 N3 x- c9 i6 c0 l: N5 q首先坐标偏移涉及到3个方向的偏移量,一般在正常情况下都只是偏移X,Y等轴的偏移,而Z轴做偏移则较为少见,任何几个方向的偏移都涉及到,影响到其它一个或多个方向的位置,这就需要对偏移量进行处理,确保所有的方向都能把偏移量算进去,需要考虑刀轨的XYZIJK等值,这就涉及到刀轨的矢量,所以不是简单加上偏移量就可以了,这就需要用到矢量复制函数vequ。
* r6 z5 o4 q0 R* n8 p7 P! a% p# I9 }4 p5 c8 s
矢量复制函数的用法如下:
/ B, [+ w9 v" U1 R5 y
# c4 h1 B0 W1 e' e; f& w! f
" z) n4 b* V2 X1 {  z1 [6 {% ^

* q  B: N% u* r! q( p! l& k& z

& h6 c0 R6 Y4 v/ r  ^" Z" J* @
  1. return = vequ(x$)
复制代码
! v4 m0 C2 x; ?+ w
这句话的意思是return的结果值等于当前x$的矢量值。
; `* A$ `" y8 `: [2 @
2 q; v0 M4 i, }
6 m% u0 o  p3 m. ?
- R# C: X/ A; W  Z

- o2 Q9 w) h) \' W/ N同样这里需要用到交互式的方式进行,即后处理提示用户偏移量,偏移方向等。' K8 T* X, }! p. j. P3 S" b7 p/ M
6 Z% @- `; q5 r9 D
定义数据格式:& Q" P1 ?  [$ L. T9 P1 q" h9 O1 X9 q
% d* S, |' ?& s
' c1 m/ e! g( x& \% A; l0 c
  1. fmt 2 tox_shift
    2 L! A* R( H9 P% C  i4 ^

  2. 7 T+ [" m5 [. L" l! N; _# @2 V( o
  3. fmt 2 toy_shift
    & ~" }9 j( Q; v" F' o& C+ a4 v

  4. ) O/ ^. K5 F9 f$ s- b" M
  5. fmt 2 toz_shift" N  z) @0 o% M" x1 w
  6. 0 L1 F* W2 T- B) s1 X7 f; V! I& D
  7. fmt 2 tox_g
    4 |$ X8 m# w/ U# z' T. V  l

  8. - p% @- C4 f  `6 ^* N
  9. fmt 2 toy_g
    ' L, T, G2 |" T7 k1 g1 S/ ~3 ~

  10. 4 y9 B4 x7 {* [9 A" Y" f$ _
  11. fmt 2 toz_g/ _& |, o6 M0 e1 e& ^3 ^
  12. / r  F5 o: t- X( I
  13. fmt 2 wcs_shift
    5 p, f) z" ]+ `4 s9 q0 P4 `# A
  14. ( A* W4 t$ T" H
  15. fmt 4 axis_def
复制代码
$ @5 X' T+ w- }, \- p
开关及初始数据定义6 X# |% _! {& Y3 x. Y4 Y" F8 x' R8 i
6 d2 l( _4 k$ y+ L

' v) [, V3 W5 i( f/ y; M6 ?
  1. use_wcs_shift   :  1 #坐标偏移开关' N3 |# y- ?$ t. b( T

  2. 4 B) r# t7 _! q% K+ h) y, L
  3. wcs_shift : 0   #偏移轴
    - K- o2 {8 j5 u

  4. / A( p# ?, p5 H$ y& s' z0 R) g, l
  5. axis_def  :0 #偏移类型' g" ~7 Y% c& r; S+ H& D/ i
  6. ' y0 N, N! ]" D5 G
  7. tox_shift_x : 0 #X轴偏移量
    " Q: F8 q1 T; L/ d% K  \8 A

  8. 6 _4 j, v# w5 J6 }
  9. tox_shift_y : 0 #Y轴偏移量8 K! O* S2 z: }4 C# z! Z/ S
  10. % V& E- W$ r8 o+ Y) R9 U
  11. tox_shift_z : 0 #Z轴偏移量
复制代码

6 g6 L9 k0 V+ c3 d* L" G) i定义交互提示语句
$ N; A' H, V8 t" y
& X8 |8 z2 }' C9 g3 @: x# z8 V
8 T% T7 `7 ~! P0 _1 \, ^" V* f
  1. fq 23 axis_def      "选择偏移的方式,1=单个轴偏移,2=多个轴偏移"
    4 s% P% T2 ]/ m+ q, G
  2. 3 `  T2 Q7 U. I
  3. fq 24 tox_shift_x  "输入X轴偏移量"5 X5 b+ f0 {2 B1 z9 M- h
  4. * d3 F6 h/ Q9 N+ R2 E. j4 t3 w
  5. fq 25 tox_shift_y  "输入Y轴偏移量"
    ) \2 X$ _6 i. O, z' G0 X
  6. / j; y" _' {' h+ G. R/ U/ y( J
  7. fq 26 tox_shift_z  "输入Z轴偏移量"3 A3 X- {1 n1 d9 m/ r
  8. - A. Y; s4 i  q9 `3 f
  9. fq 27 wcs_shift   "选择偏移轴,1=X轴,2=Y轴,3=Z轴"
复制代码
, u2 M8 u& g( z9 T' ~
坐标系偏移过程处理及交互过程处理  k) R9 n0 N# b4 G+ y# h
5 D- Q; U$ R7 I, ?* u6 v
9 u6 d& }, _! J' y) t3 Z, h
  1. pwcs_Shift+ p2 V4 M4 l% X1 I  k9 A
  2. 4 M4 R# \2 g: T$ n! ?6 L
  3.    tox_g = vmap(tox$,rmtx1)( n* C: d$ w1 ~9 u" c& S
  4. ! p( w: a5 a, B! d
  5.    if use_wcs_shif = 1,
    ' S# s4 Y9 ?( R  {+ W, _
  6.    [: H3 p) n' s: S. S) s- y
  7.    while axis_def < 1 | axis_def > 2,q23
    ' ^  m+ h' Q# c/ h% S$ {
  8.    if axis_def = 1,
    / }8 R% K' m5 u# W) F
  9.     [- J. Y. x5 a* }* T0 b* ?; u
  10.     while wcs_shift < 1 | wcs_shift > 3, q27' K/ i6 e1 J+ q( E' R  T8 }2 l1 d
  11.     if wcs_shift = 1, q24, tox_shift = tox_shift_x
    . Q, \0 S+ Z* [( y' \
  12.     if wcs_shift = 2, q25, toy_shift = tox_shift_y
    5 I7 T% q. L" m5 q$ M+ K
  13.     if wcs_shift = 3, q26, toz_shift = tox_shift_z
    * E, \8 W3 l5 K8 P7 Y
  14.     ]
    - P3 @' h4 w/ }: T
  15.     else,/ w0 ~8 h9 D: H- g+ u' B
  16.     [. L9 w3 @* f2 I4 {! T
  17.       q24, tox_shift = tox_shift_x
    # B- `* a+ q# w6 J( J
  18.       q25, toy_shift = tox_shift_y
    3 A, N) `2 o( ^% D; {. t
  19.       q26, toz_shift = tox_shift_z
    + u5 @2 D# s, k; S
  20.     ]
    / \7 v7 \, e) T7 E
  21.    tox_g = vequ(tox_shift)   
    6 R, o9 |( l" u/ z1 x" ^
  22.    ]
复制代码
' E1 d. @) P; @
在XYZ的计算过程中把偏移量添加进去,位置如下8 O: K' r* L) }3 Q

9 r% L: g" R8 y8 p7 f; S! }
+ I  b7 [3 e7 }1 L. j. p, B! @; A  X
  1. pxyzout00 @0 H  h% A$ X) U( M' [( r
  2. 6 D7 S. I9 ^3 b5 C
  3. pxyzout1# b" f9 D8 D$ {$ W

  4. 6 h/ }3 H  y8 K/ n5 h0 Q$ D" m0 R
  5. pxyzout2
    - Z0 L1 j; `* M! B" f
  6. 4 o0 ]  o. K2 Z  O2 w5 \
  7. pxyzout3
复制代码

. R7 i$ t) v* o$ L偏移量的增加函数:vadd
+ s4 t  R, ^. j  D+ V
9 r$ p7 k5 O/ @0 ~( B% h; S- D
8 z( b$ ~) m1 J/ r4 ]5 a0 j) \
  1. return = vadd(v1, v2)
复制代码
, M0 W) K: Y# y5 I; C5 N9 `( X
增加2个3D向量,即相当于2个3D向量进行加法运算。
: ?2 D8 z5 L" H* g7 G2 X+ y
- b) K8 |2 j5 N4 E/ ^
$ l0 o: j0 x3 L8 L$ |
: c) M1 u+ c6 E0 h3 _& y1 t
实例:: d; }& f6 \1 \' B4 {. R5 p7 ]$ p
  1. pxyzcout0       #Toolplane Positioning- x6 H. C% l8 I. M
  2.       xabs = vequ(x$)
    ! b/ e6 I+ X5 I6 T
  3.       xabs = vadd(xabs,tox_g)% T: P/ H3 r8 T- ]* P6 h
  4.       iout = vequ(i$)     
    ; D: i- i. I+ r5 {
  5. if rot_on_x = two, csav = -c$
    + A  }/ |4 R7 Y0 `8 b
  6. else, csav = c$
复制代码
" Q, g1 ]/ O# J
无论是X,Y,Z哪个方向偏移了,其结果不仅仅只是影响相应的轴的坐标点,对于多轴的其对应的u,v,  w也会发生了变化
8 b: m: y. `0 p
; k# y  [7 @3 a0 p$ x, C  X8 R

1 m% \8 Q( X0 A. b% @
  1. pxyzcout37 e/ J7 @, `  m' n0 G
  2.   xabs = vadd(xabs,tox_g)
    7 T  `' b5 |" A
  3.   ua = vadd(ua,tox_g)
复制代码
4 t! H' |. z6 R
至此,坐标系偏移以增加到相应的点上。
/ d( v% _5 d1 w2 n0 i

1 S* w9 D6 V  U
2 v. S. |9 p  \

/ F% W9 X: d1 o- d1 p9 ?) R3 [2 D" h. G/ Y

6 L3 O2 j$ b! q/ @: O- l
" j3 t& z+ a5 S
/ }* l% g! r! }1 F
以上及部分代码可能存在错误,自行修正。2 [6 C- M# ]) V  B* Y& Z7 u
: i' s3 t$ i5 K6 o% m9 O
' P& ?9 S6 R" T" [3 C2 O, A/ ?0 E+ O

) W+ y2 E* O9 W/ {& O. w; s# b" T3 y* E
( r5 s* I! Y6 j5 y1 s
4 A" w, }" @2 T1 t; A/ F8 b
6 \) v& G6 P: H  c' X& \6 O2 H: H

4 t$ |0 s( k8 Z  K  v# m9 j) a0 f9 g4 k5 M3 I

" F5 X3 ?( S8 C3 _8 d
! w( f/ b" }3 [+ M
+ ^. ]3 I. i" X* J, [% ^2 j. Z3 w6 l2 \, l* W0 e
4 M" p& \9 e# o. f$ M8 H7 L
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

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

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

GMT+8, 2026-8-14 16:30 , Processed in 0.172463 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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