找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 91|回复: 0

Mastercam后处理坐标偏移方法

[复制链接]

433

主题

5759

回帖

901万

积分

管理员

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

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

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

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

2 R9 Z* @" Y* M0 D( M+ s
9 u  B6 I6 O) v0 ]+ P) h+ b' `


5 Z8 O0 b7 r) r4 u' K% ^8 Z4 D
6 t" L/ d! V0 d; b" a  Y) n1:如下图,通过调整刀轴平面X,Y,Z的位置即可实现程序偏移,但其缺点是需要重新计算所有刀路,有些情况下,有部分刀路可能会计算失败,最重要的一点是,如果采用绝对深度编程,那么这些操作的起始高度,加工深度,安全高度等都有错误的,需要重新修改,及其容易引发不必要的错误,非常不可取。
, P$ `5 h" S' N, h7 Q8 R: f
$ }3 w, o- x7 a9 c  V6 E* G3 c3 k
8 n" k  y+ `1 P7 N

0 ]) U4 @1 Q( E: P
& \0 S9 Q. ?3 @
4 f/ o' ~# g* g: r5 [
2:如下图,通过转换刀路方式进行刀路平移操作,此方法可以达到效果,但同样存在一个绝对编程时所涉及到的深度或高度方面的问题,同样需要修改,也容易出现修改错误之内的问题发生,也不是非常的理想。
) T2 x1 U" ?1 ^4 m. K" y& N; a. P2 |- v

; Q8 |( w, ~! i3 I, Y2 o# J  C
: @% [  A. B, Q) A那么有没有什么方法可以快速移动,偏置一段距离,也不需要更改任何刀路呢?
" T% y$ j% T2 F2 [. r& |* o" b7 S% m& G: e( G
下面就和大家分享一个mastercam坐标偏移的方法,不需要更改刀路文件,只需要简单的几行代码即可实现坐标偏移。+ R# Y7 ?. k9 k4 b

2 |+ y: F! J7 G* c* R2 ~8 t7 z9 r

" @6 s2 f# G+ j% D8 i, {
( g3 B, M6 X' l0 S  z
4 \. [% F/ b. T$ q0 y6 Q
首先坐标偏移涉及到3个方向的偏移量,一般在正常情况下都只是偏移X,Y等轴的偏移,而Z轴做偏移则较为少见,任何几个方向的偏移都涉及到,影响到其它一个或多个方向的位置,这就需要对偏移量进行处理,确保所有的方向都能把偏移量算进去,需要考虑刀轨的XYZIJK等值,这就涉及到刀轨的矢量,所以不是简单加上偏移量就可以了,这就需要用到矢量复制函数vequ。
9 v- }. q# G) \) j0 I' t8 v
$ \" N( X7 P& V( N4 a' J) S3 ^矢量复制函数的用法如下:
' K( }+ s7 m& j4 @) Z! L& g' b8 r) H5 v2 A. A

  s9 \7 }" H+ c0 N& t
6 E$ P; X$ {4 Y2 X# P4 ?! u6 J

6 @2 {" D) I6 X' D7 _% ^8 ?7 S
  1. return = vequ(x$)
复制代码
! _( k6 n" }% s5 |4 p: Q$ |
这句话的意思是return的结果值等于当前x$的矢量值。
$ V9 ~  T( Y( \2 B- [  F
/ {/ ?. a& ?3 I
1 C) }" @: ]8 X9 @" h" W+ E3 C/ T
1 F+ d' ~* d5 i
* X1 ?  g3 P8 J( x
同样这里需要用到交互式的方式进行,即后处理提示用户偏移量,偏移方向等。
* I# X: ?5 a9 r) o
, s7 n! a, v% q, ~定义数据格式:
) f' c3 w4 g% Z+ l4 x( \
+ Q7 M* a' y( ^( {: J

, C; v% L- S; [# i, ?, ~
  1. fmt 2 tox_shift2 E3 U9 @, S. L4 s* M8 f1 D! s( U
  2. 3 D" R/ d: u% B$ g( I+ k8 r! y
  3. fmt 2 toy_shift( o- v, S% T6 Y2 D+ v3 ^

  4. $ g8 [8 U, S, G4 a% T: T7 Z
  5. fmt 2 toz_shift
    ' \2 E" z4 G, @6 ?

  6. * r$ y# Q& c* X1 W# j$ T3 i/ ^
  7. fmt 2 tox_g  e% s0 [% }- o0 |$ p

  8. : G  ?7 P) H& _& Y( z+ F
  9. fmt 2 toy_g
    / a6 P; T- N3 L5 r
  10. . t3 d9 _0 ?$ t* U1 O* _
  11. fmt 2 toz_g2 h) r* h# O) B; p4 I% d1 u1 i

  12. 3 |0 U  w6 k2 P2 S6 }: O- f" C3 p
  13. fmt 2 wcs_shift5 X& @3 o3 {+ K7 ^. O: n5 ^6 {* L

  14. 0 C. D( P- i, B0 z
  15. fmt 4 axis_def
复制代码

. M0 f7 y; L) K$ n开关及初始数据定义
, S. e5 _& A" H2 `( F2 g
8 S7 C2 L, y8 Y$ v

2 {6 N0 L& f6 }3 a0 y! ]+ z
  1. use_wcs_shift   :  1 #坐标偏移开关7 _/ m! P. g: Q7 q+ F# X* x

  2. 6 I6 H' O& N0 A3 N( G
  3. wcs_shift : 0   #偏移轴3 }1 P) l$ ]3 c$ P) y' @1 \% R
  4. 7 q1 @$ I# T: G
  5. axis_def  :0 #偏移类型
    1 o5 t; G) \# R, z* Y+ R  ~7 H3 T2 @

  6. 7 y3 ~6 a  u) ^; C3 H( I
  7. tox_shift_x : 0 #X轴偏移量
    & d. [3 G- C0 C/ b
  8. * F. t! }9 h! X' W, {: x4 `" i
  9. tox_shift_y : 0 #Y轴偏移量9 z" D3 A( X, Z) U

  10. 5 R4 n& S1 J0 N3 w- |+ T4 X
  11. tox_shift_z : 0 #Z轴偏移量
复制代码

, P; c# B/ q6 S! H/ {6 X4 n, V+ t8 _定义交互提示语句
: M1 j: i6 O8 {0 D- {1 e& w2 d2 d4 t% L# W

" n( n1 I3 d( H, }0 v# U' `% P
  1. fq 23 axis_def      "选择偏移的方式,1=单个轴偏移,2=多个轴偏移": t$ ~5 U; n: M/ D& I- \) J" r

  2. + E4 n$ P8 r/ U7 k* Q/ q4 e: l
  3. fq 24 tox_shift_x  "输入X轴偏移量"
    ; w+ e* `/ X% C) O
  4. 2 O. t" {; r% f' N
  5. fq 25 tox_shift_y  "输入Y轴偏移量", R# u8 y+ J  u$ B$ R
  6. / b5 D2 Q: Z4 q/ O. Z7 {$ p1 U
  7. fq 26 tox_shift_z  "输入Z轴偏移量"+ P+ h) i: U$ F1 p

  8. 1 N" ]# ]& O+ ~- {0 |
  9. fq 27 wcs_shift   "选择偏移轴,1=X轴,2=Y轴,3=Z轴"
复制代码
2 p% Q1 E) v. l4 B2 K6 L& y# F! z
坐标系偏移过程处理及交互过程处理2 z, T4 j$ o4 t8 `
: c& `  @' v; L/ x2 X! O
  f: D3 T) N0 S
  1. pwcs_Shift
    8 U- V; W' q/ T" @

  2. & N: g5 a: \& ?2 |+ G; T
  3.    tox_g = vmap(tox$,rmtx1)8 s( ]8 u4 u0 R/ l. V) g, ?0 D4 P; m
  4. " H: F0 @! b, r3 u; p
  5.    if use_wcs_shif = 1,8 V: ?" T! ]" n& M* S
  6.    [
    9 a7 l6 e* W6 i! ^; z( @
  7.    while axis_def < 1 | axis_def > 2,q23
    . f1 V4 i# F0 }1 P7 k1 l
  8.    if axis_def = 1,+ @1 M/ l- v/ C& O: p
  9.     [. k$ s; O3 U! _/ r
  10.     while wcs_shift < 1 | wcs_shift > 3, q27
    . F! Y* T* K3 B" j5 T
  11.     if wcs_shift = 1, q24, tox_shift = tox_shift_x5 r# }( X' N; j* x% ]' t8 v4 N
  12.     if wcs_shift = 2, q25, toy_shift = tox_shift_y1 N/ V2 a4 p3 p' i
  13.     if wcs_shift = 3, q26, toz_shift = tox_shift_z# _) a% [; q2 F3 j- N" c( \" t
  14.     ]
    7 \8 @" |7 a& n; G6 x1 ?+ P
  15.     else,
    5 ~& G; ~, m( N+ p  O/ e* f
  16.     [
    # l# ]$ I+ E0 E5 ~" P# t6 N
  17.       q24, tox_shift = tox_shift_x
    6 a1 [0 S' g2 c% G3 Y
  18.       q25, toy_shift = tox_shift_y7 |" k7 i& ?5 G
  19.       q26, toz_shift = tox_shift_z$ T  \- l& B- K9 o- b+ r
  20.     ]
    4 F0 H4 B) o+ @% A! B) G+ d# \
  21.    tox_g = vequ(tox_shift)   2 f; U; N& o- Y3 A( g/ Z1 K2 S! U
  22.    ]
复制代码

7 k2 ^. Y' K0 ^在XYZ的计算过程中把偏移量添加进去,位置如下
7 e! P7 _$ O8 f" Z9 a  l1 ?0 C- N/ f. w

3 T! M0 i+ W4 U# n: E" t
  1. pxyzout01 U/ c( N' w0 d+ E# D" Q" M; E
  2. . @7 V" h* t) Q7 j4 d: f, J3 q
  3. pxyzout1
    % l  Z: r/ Q) [9 Q

  4. ( \) ~4 w7 F, t! `0 g6 Z
  5. pxyzout2
      O* h0 d4 C( I3 d1 S
  6. # Q" M# p8 ?+ K' `
  7. pxyzout3
复制代码

6 Q' q3 z! M( L4 T偏移量的增加函数:vadd
, N3 e$ ~  N0 e0 N. K
& ^0 W6 O7 T* Z  I% o/ H6 h1 Y1 v
+ e* |7 o+ G& @+ F# y; v4 |
  1. return = vadd(v1, v2)
复制代码
2 q) Z( V; N0 H+ F. d
增加2个3D向量,即相当于2个3D向量进行加法运算。' _6 j3 ^$ I1 x' X8 q  E

) \1 z7 r8 b) Q0 J3 e/ C6 ]4 l1 ^2 M
& y" V* B, [1 c% p3 z  @
  x7 n; ?; w  o' D' k0 {! A
实例:, N& n7 [" T3 H% o
  1. pxyzcout0       #Toolplane Positioning
    ' {% F! g8 S, R( t4 O4 k. D
  2.       xabs = vequ(x$)
    2 u- M' V: _0 o  y; B7 E
  3.       xabs = vadd(xabs,tox_g)
    ' L: h$ V9 X* Z
  4.       iout = vequ(i$)     
    ( H! n6 Q' _8 O6 ]
  5. if rot_on_x = two, csav = -c$1 `6 i2 e" H6 k8 F! j
  6. else, csav = c$
复制代码

+ y; x9 O0 y& y5 W& D' P6 ~无论是X,Y,Z哪个方向偏移了,其结果不仅仅只是影响相应的轴的坐标点,对于多轴的其对应的u,v,  w也会发生了变化% P; D4 q- R9 c, q$ B- E

" i# S. L+ n, T+ _. [/ d+ N% r# k, H% V

4 s+ b4 g3 P! y8 A; U) S( A1 M
  1. pxyzcout3
    / h9 M( k- E9 K* g% L- `
  2.   xabs = vadd(xabs,tox_g)
    $ w# M& K5 m) R; p8 w2 r$ e# c
  3.   ua = vadd(ua,tox_g)
复制代码
% R  j) r8 m% i. p  Y( ^
至此,坐标系偏移以增加到相应的点上。
3 E! N4 \7 D; L3 ~, ^! P. y7 Q3 J
! A- _6 n, v. }

9 c3 s! A, a5 u" r8 {8 R0 |+ M
: d1 r) ]( `' Z; E5 g3 Z7 d

6 L$ r! G) i* R' Y% m
% G  X) S  `, t

4 k7 b) R- E  l. X
/ `2 S" |  M4 \) V# F2 ]
以上及部分代码可能存在错误,自行修正。
4 F6 \5 y7 r2 u* i% p2 Z" [" g
1 e# |+ k& g9 `" k4 ^' r" Y' S+ ?* _' ]7 z! M) [) X: S. y

7 e9 u- j( G, B5 J& @0 |" I
  k/ r$ Y0 {2 m% k) \" @- D( n" t) A
; q* g$ J7 l+ P/ I
$ [' v3 j- _$ j3 X. A6 w- a) B5 }
+ X8 i6 Y  O- x0 |) n& ^0 @
" l* j$ v1 f2 f: q% l4 y3 c/ _& {# X, E  l4 ]
* x+ ?9 }6 C$ M+ Q

2 u, P3 j% e* f+ B" ?, v+ g6 D2 y) }% N  i
/ J$ X6 u  {( ^6 q8 v
% N, z: S" z8 v& f9 h7 T) ]% {
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

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

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

GMT+8, 2026-8-14 14:40 , Processed in 0.167242 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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