找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 112|回复: 0

Mastercam后处理坐标偏移方法

[复制链接]

433

主题

5759

回帖

901万

积分

管理员

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

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

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

×
很多的时候,很多4轴及5轴机器在没有任意坐标计算宏程序的情况下,由于工装夹具及安装的偏差,导致设计理论位置与实际位置不符,在这种情况下,如何快速的偏移刀路程序就会显得尤为重要,这一过程中有如下几种方法可以实现以及其优缺点。
+ [/ @2 Z  q4 m8 i9 U
! p+ Q2 `( d, g

, R7 l) x2 ?( }- J

; |( S, ?: w- ~3 y$ Y

7 c( N+ V* z' l1 t" o7 ~) ]+ s1:如下图,通过调整刀轴平面X,Y,Z的位置即可实现程序偏移,但其缺点是需要重新计算所有刀路,有些情况下,有部分刀路可能会计算失败,最重要的一点是,如果采用绝对深度编程,那么这些操作的起始高度,加工深度,安全高度等都有错误的,需要重新修改,及其容易引发不必要的错误,非常不可取。* [( ~" |& a; S# v8 [* J
$ S* Z4 f0 o0 T3 U9 A& q
9 L" O5 |8 J6 N6 L0 e/ I
9 D, z/ k3 F8 C. \

4 {' w- x- y) i
4 k! q1 p2 h$ W7 s9 p2 e- M( {
2:如下图,通过转换刀路方式进行刀路平移操作,此方法可以达到效果,但同样存在一个绝对编程时所涉及到的深度或高度方面的问题,同样需要修改,也容易出现修改错误之内的问题发生,也不是非常的理想。
' J3 x: y3 E7 J0 k+ f; v$ D
( O# S; L# G  i, c; d: n: s) P
* T9 N5 X4 l: q3 i8 p  [6 D& T

0 A* \9 k9 \9 l# A5 [0 k* \1 E那么有没有什么方法可以快速移动,偏置一段距离,也不需要更改任何刀路呢?
) r, `4 r' B+ M) D; ~, ^9 [" d/ }6 Y8 j/ H
下面就和大家分享一个mastercam坐标偏移的方法,不需要更改刀路文件,只需要简单的几行代码即可实现坐标偏移。
  g$ V" Y) U& N. u' x3 P  l. u  Q$ `! V; g3 ~

' ^* F3 ~9 D% ?$ q
$ P  S; k+ o1 g8 X8 K( W: ^
# m( H( i' Q& g1 k
首先坐标偏移涉及到3个方向的偏移量,一般在正常情况下都只是偏移X,Y等轴的偏移,而Z轴做偏移则较为少见,任何几个方向的偏移都涉及到,影响到其它一个或多个方向的位置,这就需要对偏移量进行处理,确保所有的方向都能把偏移量算进去,需要考虑刀轨的XYZIJK等值,这就涉及到刀轨的矢量,所以不是简单加上偏移量就可以了,这就需要用到矢量复制函数vequ。
& D) ~% r  b/ O! z6 C
( g2 [7 w/ x9 _( j( s$ j; r+ H矢量复制函数的用法如下:- B& r  p% U) q4 V+ S5 c

% R3 F8 u% |( e' s2 L, s

4 K- K- i2 Y; I; U8 B: R
: k9 i( H( G7 b3 W* V4 b
  G# R8 i, \- d' Z: E
  1. return = vequ(x$)
复制代码

' {4 D. ~9 ]# A" s6 ]5 Z这句话的意思是return的结果值等于当前x$的矢量值。$ D$ [7 v0 t* y$ F7 E

) l3 F6 X* p0 w  F/ f4 W3 f. U0 T

/ W# D0 W% |3 O8 j  C& b& w
' ]9 c+ a1 c1 c. O$ @3 c7 T
% R- W" q8 [/ ], O  J4 j同样这里需要用到交互式的方式进行,即后处理提示用户偏移量,偏移方向等。
: V  D4 O& ^9 j: Q0 f) \5 Y
, G+ Y* n+ E: b$ c& |定义数据格式:
3 w4 B# K- G7 v' [7 I( T4 O. |( D: D; o$ L
. }( V& c. [& M/ [4 U2 u
  1. fmt 2 tox_shift7 y, o; R- ^( ]- G3 ^% p* f
  2. * [" h' z# K8 |$ {
  3. fmt 2 toy_shift" I; L  i' k! y+ i. K

  4. % V3 q9 K8 k2 J* R2 r
  5. fmt 2 toz_shift
    8 ], ?. x$ B% [9 G: e
  6. , w' c0 i* [: Z* G  Y
  7. fmt 2 tox_g4 `; l1 b# B* A

  8. / y6 }. C4 e/ u2 M0 d. c9 m4 I' g; t
  9. fmt 2 toy_g' z% `8 Y- V' W0 H; g5 g

  10. , Z" L  O8 |# n9 w" r
  11. fmt 2 toz_g
    . X+ V9 T6 ]% w0 n, k9 B
  12. % }* |7 _, `! q
  13. fmt 2 wcs_shift
    / \3 C* ^6 ]7 G! ~: f3 V
  14. ' C2 F5 O! K8 D5 q0 W2 s* g
  15. fmt 4 axis_def
复制代码
3 F! p2 x' k* R/ k. h: U3 c
开关及初始数据定义
' X2 @6 S2 l8 {* T' a# F& _- ]0 O" `# X( m9 R: c

7 L  M0 ?: ]3 m) F3 I3 f/ g  F. s6 K
  1. use_wcs_shift   :  1 #坐标偏移开关: a6 i5 ]. A/ J: J
  2. / b) M$ Q' k/ S8 R. t( i  [
  3. wcs_shift : 0   #偏移轴, J# d8 N: n" f( w9 H& M
  4. 4 a" E; P9 G( x6 K% V* a( `/ u
  5. axis_def  :0 #偏移类型7 A- E5 X. p% f( d  w9 Z" @

  6. + s8 `4 ^# m! @
  7. tox_shift_x : 0 #X轴偏移量
    ( ?& e: B3 H" V
  8. ' h; T& V, D! C9 P1 L' D8 H
  9. tox_shift_y : 0 #Y轴偏移量
    & E$ M1 K* G& H# x; O

  10. 3 ?6 M* f1 x0 f9 g7 @
  11. tox_shift_z : 0 #Z轴偏移量
复制代码

0 k1 P7 C& r! I& E4 h% R, e0 O定义交互提示语句
. \6 Q3 y) J4 X; R
! c8 x7 A: F) r3 z* o- j
/ Z2 V6 _4 F. r. A$ Q2 |, B: Z" D
  1. fq 23 axis_def      "选择偏移的方式,1=单个轴偏移,2=多个轴偏移"8 s: A3 E' G( x
  2. 0 [+ L9 q9 T, y. s
  3. fq 24 tox_shift_x  "输入X轴偏移量"
    4 T& s' c5 ?8 j; g7 i0 W8 p* a

  4. 8 t& ?+ i- H4 t  Q
  5. fq 25 tox_shift_y  "输入Y轴偏移量"5 e4 x) [; e  R, {5 {

  6. , T; G/ k& A$ X  S5 _; e9 u/ x
  7. fq 26 tox_shift_z  "输入Z轴偏移量". ?- N8 P/ N7 z$ ~/ Z
  8. / U3 c1 K3 H  q0 w- y' Z
  9. fq 27 wcs_shift   "选择偏移轴,1=X轴,2=Y轴,3=Z轴"
复制代码

% Z: V  T* @+ b+ ?$ E4 Q% g( ~坐标系偏移过程处理及交互过程处理' y- q; f1 e+ i) G8 _9 m

' Q+ {. s9 }, x' f& k

# ^$ o' H6 [: u
  1. pwcs_Shift
    " A2 z/ w: j' N7 n
  2. : m) h4 j' {  ?. X
  3.    tox_g = vmap(tox$,rmtx1)
    7 u0 \( i- w  P5 q+ W  Y1 w3 E6 r
  4. 4 R  n% t) D: C1 V
  5.    if use_wcs_shif = 1,# |9 [( ]6 R" e/ M( X
  6.    [) u4 r  [" d) P: U) `/ g( V" \
  7.    while axis_def < 1 | axis_def > 2,q23
    4 m6 A; s  E: ^  k
  8.    if axis_def = 1,+ o  S& K# C$ d( @4 d/ t8 l
  9.     [
    7 P$ x8 v2 X1 F/ ]. B
  10.     while wcs_shift < 1 | wcs_shift > 3, q27
    2 U+ r* k: M# E  \5 X( r
  11.     if wcs_shift = 1, q24, tox_shift = tox_shift_x; V: ]; I+ m0 z
  12.     if wcs_shift = 2, q25, toy_shift = tox_shift_y
    0 a4 s0 T7 I4 p! X2 S- l
  13.     if wcs_shift = 3, q26, toz_shift = tox_shift_z8 p5 [7 [# L% j4 @# p
  14.     ]) h6 j% X1 E/ @4 o
  15.     else,! k, p  l& V& R' I1 A& @3 }. V; {
  16.     [1 k" A( T) x( r; G' l1 }9 d" a
  17.       q24, tox_shift = tox_shift_x  S) K/ F# ^, D
  18.       q25, toy_shift = tox_shift_y4 a# L8 J- v" _: j) R5 l& M
  19.       q26, toz_shift = tox_shift_z, I+ W9 F' P% i0 M3 q
  20.     ]+ R' z: e. [9 M0 i# X% a0 T7 l
  21.    tox_g = vequ(tox_shift)   
    + ?. P1 E, R- v- {! B5 m3 T
  22.    ]
复制代码

9 Q+ d8 F) o& E) Y. n2 b, {在XYZ的计算过程中把偏移量添加进去,位置如下, Q5 Q/ R* |# K/ _4 O9 ~: X

- F5 [# ?9 T. d" X- G

9 Y1 M( R2 a8 r0 K1 D" S
  1. pxyzout00 r( I6 K, M  V6 T* G9 r. i
  2. 5 e- U/ b: ]6 w3 L1 d7 n
  3. pxyzout1
    # T1 i, H9 U. E

  4. ) b8 S4 _& R" v( P( y5 S9 G* D
  5. pxyzout2
    , k0 x4 r, j$ g. s$ |

  6. 0 |, r. w) _$ o1 B# w' @# h
  7. pxyzout3
复制代码

1 `& p/ @, x4 f- y2 E- B偏移量的增加函数:vadd6 }% [  A, L# J5 q/ ^$ v: i
4 E5 R* j0 c6 d/ q4 Y5 G4 Z  Q" i
+ z8 h8 u( d/ U; D. r8 D
  1. return = vadd(v1, v2)
复制代码

# f! ^$ o; L0 q3 ~' l1 P7 n$ n. A增加2个3D向量,即相当于2个3D向量进行加法运算。. g# Y! m9 T9 j1 q# ^

  D( H1 W: \& x' }. A0 ^3 C: H9 b& l+ ?- O9 @6 k. T. }- M
: ~5 A. \4 i, n9 P8 a* s4 b9 g
实例:8 j! C* |/ R% W" H3 E$ E
  1. pxyzcout0       #Toolplane Positioning, Z- N; [7 O; b# Y2 J! s- p0 v
  2.       xabs = vequ(x$)
    8 N! Z& t6 |* h+ k% u  W* N
  3.       xabs = vadd(xabs,tox_g)
    $ L! s2 F. t1 B, ~, M$ z2 `
  4.       iout = vequ(i$)     4 H7 S( s4 v& u" Q
  5. if rot_on_x = two, csav = -c$
    * x8 G4 b  R' \+ m
  6. else, csav = c$
复制代码
" Y2 k/ A* o8 w; [
无论是X,Y,Z哪个方向偏移了,其结果不仅仅只是影响相应的轴的坐标点,对于多轴的其对应的u,v,  w也会发生了变化: H! T; x" h" l4 `6 g

4 f$ e7 a( h* s1 s' l& q# [" g

! D0 D) `( ]& t
  1. pxyzcout3! I. Y) X$ m0 W+ w, l' |
  2.   xabs = vadd(xabs,tox_g)
    ; }- C. E! d% r# I6 T
  3.   ua = vadd(ua,tox_g)
复制代码
, q( e  Y; \) H% @
至此,坐标系偏移以增加到相应的点上。
* P, X2 Z7 }9 Y
0 r* V, m& n1 v( X. e0 `2 q0 m
3 j4 b0 D# d$ t' S3 P+ |, T  q
2 ^7 Z4 p5 T6 m! q

  L: e7 `% {) _/ F
7 O7 `) `4 B% C0 _$ f! {
: g( x# b" `+ E9 |; V

( x" i: L) L! z1 ]/ }" @: K以上及部分代码可能存在错误,自行修正。  x! E) U) \( r' R/ r
% z) O$ U2 U% P8 }2 P, t

& a2 X- I! g. L0 Q- O% x+ k
2 d* S5 C. e$ v9 d* |) i3 ?' c. O1 R2 y" D  r

( L: [4 M' s+ n1 ~/ [
6 _: u( b4 U. A5 p9 \9 Y* [+ d% `# x4 D1 C" i; F
0 I. a3 B3 V! S, T" I) g1 w# J

  P' z9 N  a: y2 o* E5 i4 @" H1 |4 b- x# H

7 z0 b7 u8 [+ N- U
2 I& {# ^0 e. E% m% t7 O
- l' W5 i/ S! J; v( }2 [# d4 Y6 U, _* F  H( q
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

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

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

GMT+8, 2026-8-22 21:58 , Processed in 0.176061 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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