找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 184|回复: 0

Mastercam后处理坐标偏移方法

[复制链接]

433

主题

5759

回帖

901万

积分

管理员

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

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

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

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

! c& }5 Q4 W; ?; f% X" V" q' J

" ?- v4 |9 y. q
6 Q* _: x+ s& U1 c; h. P& |
( h" q7 A$ V4 o* D6 O/ M
1:如下图,通过调整刀轴平面X,Y,Z的位置即可实现程序偏移,但其缺点是需要重新计算所有刀路,有些情况下,有部分刀路可能会计算失败,最重要的一点是,如果采用绝对深度编程,那么这些操作的起始高度,加工深度,安全高度等都有错误的,需要重新修改,及其容易引发不必要的错误,非常不可取。, F% a  B' R) j% O

8 V5 W& X: |, B. a* q

0 G5 x( q4 r- X$ E6 m* ~7 N- }, y& v0 Q8 }

4 R9 ~! L" n8 K/ m! z
8 H" v5 ]# x0 t4 F- B9 t
2:如下图,通过转换刀路方式进行刀路平移操作,此方法可以达到效果,但同样存在一个绝对编程时所涉及到的深度或高度方面的问题,同样需要修改,也容易出现修改错误之内的问题发生,也不是非常的理想。4 R9 v' x5 \! S. f
- @$ Z: \# @' V0 ?- g4 s1 {
# Y) T. r1 v6 B, B0 V7 k
5 k1 w% [' X7 j  N
那么有没有什么方法可以快速移动,偏置一段距离,也不需要更改任何刀路呢?
7 U$ R& `$ v! W' f# I1 R0 o* F. o7 k. X% m; X
下面就和大家分享一个mastercam坐标偏移的方法,不需要更改刀路文件,只需要简单的几行代码即可实现坐标偏移。
7 N1 X6 S- {. t. g2 O3 s. O  e! w8 E6 m8 K3 Q6 Y1 ]6 [2 E
' J! T, f3 o( o& t
; [  N$ s9 l3 c7 T2 ]  d* v2 d- ~* H
, |% a5 y/ F1 p- X. b
首先坐标偏移涉及到3个方向的偏移量,一般在正常情况下都只是偏移X,Y等轴的偏移,而Z轴做偏移则较为少见,任何几个方向的偏移都涉及到,影响到其它一个或多个方向的位置,这就需要对偏移量进行处理,确保所有的方向都能把偏移量算进去,需要考虑刀轨的XYZIJK等值,这就涉及到刀轨的矢量,所以不是简单加上偏移量就可以了,这就需要用到矢量复制函数vequ。
5 A7 C! X3 U' `
7 o# i* I; Z( \9 _1 l矢量复制函数的用法如下:* P- i7 k# e8 Z0 M, V+ }

) i! v9 h, d4 k$ m# a1 v( z+ K
# ?: g4 ?9 L) ~  ~

+ j* j( g; c$ m# K3 A* @
) e1 u# Q* t, U
  1. return = vequ(x$)
复制代码
$ I7 [6 |9 N% L  C6 b" I1 i& N, V
这句话的意思是return的结果值等于当前x$的矢量值。
1 Z$ M: j# M# }6 W/ ]& H6 x( \# Q1 J, `1 e% z
0 r8 X2 y! B; `8 g

2 e& P5 |) g: {, y: Z7 c& z5 m! F; b9 X; v7 D! Q
同样这里需要用到交互式的方式进行,即后处理提示用户偏移量,偏移方向等。1 g( I; K2 x2 C5 t2 h& S

8 v5 O) F: X/ t2 Y定义数据格式:  T3 `1 j! R6 N+ `! {+ }
4 S  m+ h/ C. o" W3 E

9 m. l3 \- W: f6 w4 o9 R* B/ [
  1. fmt 2 tox_shift  _. s) v/ `  b3 F2 @) ?9 k+ h: r
  2. & ^4 C- J0 ^7 g
  3. fmt 2 toy_shift
    5 [; _0 n' S3 x

  4. 4 s) o4 x5 N, ]: ?
  5. fmt 2 toz_shift/ [+ |! |) S/ m% O: U5 X# F5 d
  6. 5 S2 X7 a6 Q! E% ?
  7. fmt 2 tox_g; z" J% z8 y8 w  Y4 d

  8. ! {( A7 T2 _6 B9 X
  9. fmt 2 toy_g: O7 |1 F* b' m$ x) K
  10. ( i: x/ H- r) [' k: c$ _' H" j
  11. fmt 2 toz_g
    4 O9 [( Y5 {( S3 q- E8 z

  12.   R& m8 v' h/ ^: Z
  13. fmt 2 wcs_shift$ a2 O, j8 e+ @) B& O1 o- Z

  14. - ^" a- V# _* g8 r* z% U
  15. fmt 4 axis_def
复制代码
, `9 K9 ~( k. m6 ~5 C* s
开关及初始数据定义
. F2 ]& S/ Y1 D  ~2 _' c6 x  D. h2 i7 v! t+ K
+ q& ~8 n7 U2 m
  1. use_wcs_shift   :  1 #坐标偏移开关! `- ?, S! _  o# P" i! |8 W

  2. , f7 \0 x' E* C5 y) Q, W
  3. wcs_shift : 0   #偏移轴
    ; V; C: `* [% w# u( Z

  4. ! Z( F2 d3 l( Z0 c
  5. axis_def  :0 #偏移类型
    " @/ d% @7 {( Q( [! P- O0 V
  6. 6 @- N$ e$ H( S/ q  z7 n
  7. tox_shift_x : 0 #X轴偏移量, S+ ^4 s* P% S+ h4 M( V

  8. $ x8 T/ n5 e% k
  9. tox_shift_y : 0 #Y轴偏移量! I  P" \2 ?0 {5 M* X: S# G' F) F
  10. - I9 y8 E+ d7 N8 g1 T! y  n0 X  j
  11. tox_shift_z : 0 #Z轴偏移量
复制代码
4 x$ i6 f9 r8 _1 i  f2 `1 a
定义交互提示语句
4 w. |: D& g4 G. ?  y7 w  E$ A3 V. l8 v5 S% N% o! m

( y* _, K$ R+ a
  1. fq 23 axis_def      "选择偏移的方式,1=单个轴偏移,2=多个轴偏移"# A$ a" V0 r9 |, i, k' M0 p

  2. 1 X2 H+ G! j8 b1 m
  3. fq 24 tox_shift_x  "输入X轴偏移量"
    : b( a/ |3 ?0 m3 G2 E; l

  4. ; n9 f7 w5 N- ]- ?
  5. fq 25 tox_shift_y  "输入Y轴偏移量"
    / {1 H5 m- ]9 |6 E# ~6 v  s; c2 W
  6. 0 c* n' H4 ]! L* }
  7. fq 26 tox_shift_z  "输入Z轴偏移量"
    " L* Z. l0 V) L- P  _6 \- w. E& ~, F
  8. 2 O& W: e" F% X; l7 @
  9. fq 27 wcs_shift   "选择偏移轴,1=X轴,2=Y轴,3=Z轴"
复制代码
, Y' O# u/ J' @8 I& u* x
坐标系偏移过程处理及交互过程处理
: u3 z/ Y- K# k. ]2 G0 D2 p) m4 w
- l1 ]6 B8 _* e% }( t% J

, G( Z+ ^7 n; {$ j4 Z7 }- p
  1. pwcs_Shift
    7 u' v' `# D: I, I0 m* v. s
  2. $ Y+ D; C1 K1 E6 o
  3.    tox_g = vmap(tox$,rmtx1)  h( t  p: q0 k8 N+ D* b

  4.   T" f) n% ^0 x2 l
  5.    if use_wcs_shif = 1,/ G3 X4 E7 @. \+ q- O
  6.    [& m! B0 w0 y/ I; i
  7.    while axis_def < 1 | axis_def > 2,q23" H( s" f- R3 k" G
  8.    if axis_def = 1,' c. I' F; \; ~3 P8 C# X8 Z
  9.     [
      o: F  f% p) ^" S; q: J
  10.     while wcs_shift < 1 | wcs_shift > 3, q27- \9 ?6 S7 S) i0 [/ g
  11.     if wcs_shift = 1, q24, tox_shift = tox_shift_x5 ]. b& q- ?! ^9 w. o7 p% E2 O  h8 A
  12.     if wcs_shift = 2, q25, toy_shift = tox_shift_y
    7 L  s% X- _1 t- T9 v
  13.     if wcs_shift = 3, q26, toz_shift = tox_shift_z" {7 g: [! d! p0 Y- z# K
  14.     ]/ f3 B7 d  B2 R  I
  15.     else,
    8 g2 c  T+ p6 }9 W  s# H8 Z
  16.     [
    ! R, t+ a0 r1 X8 O; T% M
  17.       q24, tox_shift = tox_shift_x; V0 [1 v1 t! }0 o7 L& y2 [) p
  18.       q25, toy_shift = tox_shift_y
    7 m9 {8 N1 i% b; p' j0 E. R) Y
  19.       q26, toz_shift = tox_shift_z
    $ ?) }! C( w* c2 P, O' }' Y
  20.     ]* r' c- U' b% R2 C# Y7 n1 l4 l7 M
  21.    tox_g = vequ(tox_shift)   
    8 v2 p3 P) s' W5 ~8 a8 C  S; _
  22.    ]
复制代码

9 S% X8 k) C7 z: ^在XYZ的计算过程中把偏移量添加进去,位置如下
& x8 x0 }; }+ s! P4 G' y4 T8 e( l4 B4 }$ y4 I
0 u+ F3 {! x) v: V7 i, ?  B$ `
  1. pxyzout0* z  T" i8 T8 \% K2 a8 ]

  2. 0 R; ?+ H" p% l, x7 E1 R
  3. pxyzout16 D2 T. h7 |, {" I2 J$ D" |

  4. 5 ?# G. I, L0 _
  5. pxyzout2
    % i8 j( j( ]4 M7 d, U- ^# E0 v# Z

  6. 5 j, {" B# l% q9 v+ K1 P
  7. pxyzout3
复制代码
4 e' w1 s1 T/ b1 d# ~2 e! O
偏移量的增加函数:vadd
8 ~8 ~7 L1 v8 F. n& ^4 |+ _$ C
% V- I% _  u' g  a0 _+ v7 }4 S& \
5 o" d7 D; q9 C
  1. return = vadd(v1, v2)
复制代码
; `9 i  o& o: [2 U: z, p8 V0 ?8 z  o2 c
增加2个3D向量,即相当于2个3D向量进行加法运算。  r# p, k  h6 Q: C5 B

8 f4 W# v0 |/ f! J
! T2 K4 _/ p5 [) P' p4 J
' a) b3 H2 n6 k3 ~/ B* V% T
实例:
$ ]: w; X9 X; s7 z- J* Z6 G' y7 Q
  1. pxyzcout0       #Toolplane Positioning
    1 s- p' Y: p% _
  2.       xabs = vequ(x$)- |. I4 r9 u! x: }) Z" r" c0 t
  3.       xabs = vadd(xabs,tox_g)
    ; L1 [4 H2 E4 a4 y9 z# @
  4.       iout = vequ(i$)     : t* z9 ^6 l5 @+ e1 h) j
  5. if rot_on_x = two, csav = -c$
    # V7 A7 C0 r5 X7 o& `. J; f
  6. else, csav = c$
复制代码

2 Z' q1 u+ j! v7 @无论是X,Y,Z哪个方向偏移了,其结果不仅仅只是影响相应的轴的坐标点,对于多轴的其对应的u,v,  w也会发生了变化4 X  p2 w! `% r4 K* P$ Z

7 W& @# ~- r# g1 q
4 N; }. s; g7 G& y* x) Q- a
  1. pxyzcout3* e4 |2 X  G0 I7 t5 y5 o
  2.   xabs = vadd(xabs,tox_g)1 |$ v. S( M0 }& S' i6 T
  3.   ua = vadd(ua,tox_g)
复制代码

/ I4 }5 H- g8 U( q9 t% `: b) \5 [& S至此,坐标系偏移以增加到相应的点上。
. k6 \* L7 K/ @* l

: m# e/ Z) v! r6 G9 ^) m1 m, ~% d
0 @& x3 J8 X; N( C; O

* Y1 |5 \" {  Q2 l
& L- K# T) X! i! G3 y5 A9 ^

- V8 d' h  t$ y& F& l3 J% x
" a7 ^0 ]  _; W0 |: J/ k0 r
% m& P+ c! D7 F* ~9 P3 K
以上及部分代码可能存在错误,自行修正。
9 P! s8 F& I2 f" _( x
# T# L* O, X8 _- d. l3 T
% h9 {& k0 ]% v! W/ o
9 a0 @! C" P$ n* u; {  G' B& o* Q0 Q3 I) K" E) H1 F$ b

* i3 q& u. b5 Z: `( i3 G* \6 A* j+ f- c  d- D; q: H9 \& b

. F4 \- K9 p7 ~; y) t# p  o
# R& i: c. P- j) K  W+ E, N- v& j0 A! j

" e, R: g5 ?3 S' Q" h
7 J0 p+ ~0 j  V& J7 t$ ?+ L' y& W+ t# [4 z
1 Y- Q' A* d# W+ d5 b; N! E% I

( ?5 Z8 u1 ^3 a
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

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

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

GMT+8, 2026-9-28 22:29 , Processed in 0.192684 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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