|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
机床只能识别c轴0-360 四轴联动,负数就报警,该如何解决?
4 ~ N9 b% c" c6 H2 R我机床只能识别c轴0-360
' b! r, j- ~5 K1 v. V, F) J是负数的时候就报警; e3 e% S" ]4 `9 a( ^: T, C+ d' F
有什么办法将mc出来的程序有这个范围吗7 G, V: g" ?7 m
2.159 y3.483 z-16.075 c-25.027 f16.26 P5 B0 z4 s" E5 R7 Q8 {
x41.958 y3.776 z-16.001 c-25.27 f115.8
- @5 N9 {% Q. [ ix41.771 y4.036 z-15.876 c-25.463 f97.66 q! w$ M' t2 m/ R( j
x41.506 y4.32 z-15.516 c-25.489 f8.6, S/ q0 |( ]% ?. f
x41.473 y4.323 z-15.277 c-25.297 f121.1
/ I: i* |" A. t1 F1 V/ y/ p7 zx41.486 y4.276 z-15.06 c-25.13
4 T- W: @7 J/ f0 g" px41.562 y4.159 z-14.831 c-24.914; W7 E9 j6 g( e+ t+ O- E
x41.632 y4.065 z-14.543 c-25. f44.2
# I- x- R. U9 d" j.
4 k0 t% G" R: A- @0 I9 `$ M8 }8 N.' A+ Y8 x* u1 x% E* [
.
7 a# O, j( i' ?; w3 N0 g如果有什么软件能设置成c为-时通通都加3608 }& I1 H9 }% d% f4 \0 h. Q: D5 e& @7 }
那就可以了 盼望高手出现
/ `4 n% } k+ k5 x此问题在中国机械cad论坛我已做回复,现再次整理一下
; R" x- }" J4 C
$ r8 I7 H4 c' V1 n以下是本人的回复
' Q) u# @7 P, [+ b可以的.该后处理可以做到, R4 n# k+ L+ |; z3 {( A! x" k6 z
需要修改的地方有几个,如下:: p+ v0 ~& D. R. o4 x* R G9 v, V
1.更改机器控制器,
# Z; Q; o3 F6 h. ]3 G; `2.后处理需要更改的地方,你查找下面的代码,就知道如何修改了,如下:) D' {' G/ R [- t
& c5 F. P1 Y# U& g1 R[hidden]pcoutrev #rotary axis revolution calculation (modify for wind-up)
/ }/ @# j8 q& }8 G y2 g( { if cir_at_zero = one,
# Z9 h/ ]3 |& l) b/ Q F/ n w [3 f+ T6 O& _6 F1 Y8 E; f) u
#arcs at center position the c axis
) a6 w/ y( E2 P H8 b' W if cuttype = -2| cuttype = three,' F) [/ i: s; L$ `/ L
csav = czero_csav - sweep$: V( L, m) g) }: t+ W8 y$ g/ x
else, csav = czero_csav + sweep$
5 _9 `5 W( i7 l. O7 r8 z czero_csav = csav }: p' q$ Q4 T! a- a( {" I, l
]5 G$ j7 |! D1 g. O7 q* q' c( S
#c does not move going to cl! l4 n% ]) c2 ^% O( C% b( O' ?, {
if pnt_at_zero, csav = prv_csav
& o) O( Y2 h0 @% Y& w5 k. ^6 \: r cdelta = fmtrnd(csav) - prv_csav #this calculates once, for rev
' L8 ^/ G# H% {& H% V while abs(cdelta) > ctol & not(cir_at_zero), #if motion exceeds ctol, add wind-up+ l! S4 |7 I I+ K* q& E
[
* H' A/ x( f/ X) d& F if cdelta > zero,
% z; ^* N" b, o1 _7 K [
6 ~ E V4 J& j9 z rev = rev - one
h3 U' ^* E8 D3 y0 | cdelta = cdelta - 360# S& F6 k' O2 u
]
& ~0 e! w9 {: c7 o4 E1 e else,
" f& X% M" d2 `5 ^; Q& O [
7 }9 K7 F' `5 [: \5 p/ I rev = rev + one
) c$ c0 x. J; d# o) u5 x i, \& d cdelta = cdelta + 360* h8 k9 L* x/ _+ d
]
1 E+ S# k( h# U ]0 v& p! O3 Z J+ b
if cuttype <> four, c_wnd = rev * 360 + csav: H. n+ d2 k& F5 e% _ J- ^/ B2 s
else, c_wnd = sav_rev * 360 + csav5 X' t* f, L1 n3 K( ~4 y2 _
!csav4 _ L) l6 i8 y! ^0 c1 F/ |
@c_wnd3 ^# h' h/ F$ y
#now switch to c_wnd which is the absolute winding c calculation3 C( Q+ ~: \% A; M
#modify for shortest direction if toolchange or toolplane
2 n8 _5 z' v I( f+ E; y #but not with axis subs
6 P0 @* v8 ^* c& R! G if c_axistype <> three,
; j6 p/ l: v1 \/ x7 Q4 W z) m [6 ~! a# Q C0 J; U7 i y) ?
if abs(prvc_wnd - c_wnd) > 1805 m$ S; V0 Z( d$ z2 x" w- U5 q
& (toolchng | (y_axis & cuttype < four)),' {+ k) G% m+ K1 b% h
[& k+ k6 @5 z. p0 K( n" \
while abs(prvc_wnd - c_wnd) > 180,5 s2 U9 x" U3 g" j$ c; ~
[9 n$ U' G& t! {
if prvc_wnd > c_wnd, rev = rev + one
+ R0 h) k8 Q+ @7 s else, rev = rev - one
3 t( z! I3 \- X c_wnd = rev * 360 + csav8 e8 ~2 R# f6 c: P8 x% r% `/ w
] s. c$ H3 N! S8 \ @7 U- D7 d
@c_wnd! v1 _$ _6 |, o) F2 ^2 Z
]. B+ r* m ~* X: {) k
]; O7 i5 y& I' f! n9 I
8 J" k1 ~ b$ v4 ~0 c9 u
pindxcalc #index move calculations, direction is shortest exc. asub1 O% s, p# M/ G0 c$ R7 F
if pnt_at_zero | cdelta = zero, indx_mc = prv_indx_mc% D+ Q3 _' @" M& ?4 X9 H
else,+ ]2 n# f. u$ ~ [
[
I( S- I) ?! D cdelta = fmtrnd(c_wnd) - prvc_wnd
" x- K$ s2 o5 z) A) A/ v if cuttype = four, #just look at the direction
- A; i3 Q# F( Z! F3 ? [" }4 k8 u: u* S, f) Z k0 ^( C
if cdelta >= zero, indx_mc = one
. x) L% a; }0 o* k* c A else, indx_mc = zero- M& A8 Q. n1 @! b9 Z" ]4 f a- k
]
- r& A5 |. Z' f+ z; e6 i4 ]" V else,
5 }) k( [, s u% A( p [
' Q& R* Z% T$ p+ X* J2 p #phase shift delta 10 revolutions, check odd/even for direction2 V2 p% Z2 G" f$ r) K, e. `2 C
if frac(int((cdelta + 3600)/180)/two), indx_mc = zero
% `. D3 O# x4 [$ }* z) G& @1 r else, indx_mc = one) ?2 H3 b8 {1 Z
]' |: u R# a4 y8 C2 Z7 Q
]
. t1 X0 g$ i }' ]' k. f2 t #set range 0-360' s: G: U8 g5 G7 b8 J% s
while cabs < zero, cabs = cabs + 360
6 k: T5 h0 _6 S2 u2 r while cabs > 360, cabs = cabs - 360
0 J( V3 N3 G5 X8 p8 D/ y) @8 }; \" n& j
9 g2 c, z& b* R2 q) Y8 f# I
. }- K1 A; e2 _# c+ z( P9 E; t
|
|