|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
机床只能识别c轴0-360 四轴联动,负数就报警,该如何解决? ! O) X/ ^- k6 ]3 q: T0 M$ g
我机床只能识别c轴0-360
% V q- K2 r3 a7 f1 k! I* ]6 t1 n是负数的时候就报警
9 ~' n z: Z# }3 z有什么办法将mc出来的程序有这个范围吗
0 Y/ P( t1 _; O. O/ z0 ]0 W5 S2.159 y3.483 z-16.075 c-25.027 f16.2& B2 n3 z2 c. S" ^) t/ j
x41.958 y3.776 z-16.001 c-25.27 f115.8
3 k5 Z7 y! c* }: j# q, {. E5 _& Px41.771 y4.036 z-15.876 c-25.463 f97.63 c! c, P& C0 S- T9 b. F& ]
x41.506 y4.32 z-15.516 c-25.489 f8.6- c0 {& ^# A% O
x41.473 y4.323 z-15.277 c-25.297 f121.1
8 {2 L; t" c* g) W8 I5 B0 ?x41.486 y4.276 z-15.06 c-25.130 R# J3 K4 ~" W: D. x
x41.562 y4.159 z-14.831 c-24.914
, \0 `! M. R3 N2 W. u/ R% i) `x41.632 y4.065 z-14.543 c-25. f44.2
2 q- W) G$ v6 u% U.
2 A9 M6 G( M( `+ i2 U+ q8 w.
! k+ d& i7 V4 _7 K3 x4 X& E. ~" h+ p5 W+ B+ j6 ]( U" j
如果有什么软件能设置成c为-时通通都加3606 M5 C# P! ~% V
那就可以了 盼望高手出现
2 d7 K: ?/ |( ?* {此问题在中国机械cad论坛我已做回复,现再次整理一下
* w* N8 D1 m, B3 p3 ~0 U' z1 X: z. K" a! K0 G7 {8 I8 V) ]0 t6 O* B. t- T
以下是本人的回复 * h% F- j' S% ]4 n
可以的.该后处理可以做到,
' W4 }, `; O# K v) c* Z# N+ ]需要修改的地方有几个,如下:
* k7 S4 I0 X" W& D: D1 U6 ^- L1.更改机器控制器,
1 [- l* k0 E1 ^% |2.后处理需要更改的地方,你查找下面的代码,就知道如何修改了,如下:
" E# Z0 p d9 X
3 T4 y( X/ y1 r& [6 K6 @[hidden]pcoutrev #rotary axis revolution calculation (modify for wind-up)
4 A6 G! q1 L4 u+ t if cir_at_zero = one,
& Y, s& P& [3 a' a3 \2 {$ ?+ J% X [
, F5 ^4 k1 V I #arcs at center position the c axis) L" Y8 h" d" Y0 ~: U9 ~4 c
if cuttype = -2| cuttype = three,
+ u8 ]2 x5 ]2 t csav = czero_csav - sweep$
* ~) d- }9 {6 V- N1 e1 o( g, W else, csav = czero_csav + sweep$' D% @- ?+ o* X. l1 b( c- [
czero_csav = csav
' Q6 Z' M, r# ]6 u1 W) L ]! S6 y9 d5 S" V l
#c does not move going to cl
, V0 |1 A& u2 {, {- | if pnt_at_zero, csav = prv_csav# G8 [5 A6 L5 x, O; Y. S& D
cdelta = fmtrnd(csav) - prv_csav #this calculates once, for rev
9 s6 X7 P$ _5 b. j while abs(cdelta) > ctol & not(cir_at_zero), #if motion exceeds ctol, add wind-up- L3 d) F, o) e1 v
[
: n8 |$ H4 W+ p, \. b if cdelta > zero,: @) `. @1 E7 ~+ y3 d
[" g8 t6 B1 h2 h: j$ ~7 v0 `
rev = rev - one$ \# { P1 q0 o$ M7 _
cdelta = cdelta - 360
. Q) K: j C+ ^9 P0 n7 ?& S: v9 Z X ]; W2 q/ w/ u4 N+ W# w, A: D
else,$ g$ [' W! A9 q9 [2 d' X, P
[, B$ [1 D# ]' {7 {9 j: ~3 p
rev = rev + one
9 _0 ^! S/ x# Q( M9 a cdelta = cdelta + 360- W5 ~6 Z: s- t9 M
]& ?* }6 [: ?" }% }0 r/ N
]
! e0 a% k! a' G9 f! a' ~ if cuttype <> four, c_wnd = rev * 360 + csav4 p) i! c C0 z! Q; L/ g7 k
else, c_wnd = sav_rev * 360 + csav" X2 a8 Z2 u0 C: X6 h
!csav
0 d. z* s4 \8 x$ u, w6 S @c_wnd
1 {5 t! ]2 D3 B8 h5 n# T1 i# } #now switch to c_wnd which is the absolute winding c calculation1 R1 y9 Z9 l7 `9 ^
#modify for shortest direction if toolchange or toolplane
$ Y4 a4 N1 t: x. W: _# K7 ^ #but not with axis subs
{, i- n3 e4 v* W9 ` if c_axistype <> three,
5 C# B/ s8 g. h& F [, J* i1 y+ \9 r" }1 Q& P
if abs(prvc_wnd - c_wnd) > 180% a9 Q% n- j8 x* \0 Z: q
& (toolchng | (y_axis & cuttype < four)),
* m3 L" v$ G: q9 j2 L [( M6 o7 z) C3 j0 Q1 O
while abs(prvc_wnd - c_wnd) > 180,' M8 w7 y6 @. j2 b/ B
[
3 J8 M5 p- r1 i. ]0 x* o if prvc_wnd > c_wnd, rev = rev + one
( Q. X/ W) l2 Q% D% v3 `+ D else, rev = rev - one
# e% B+ ]6 R8 @; s& L c_wnd = rev * 360 + csav$ o, n4 h# B4 S+ Y+ A
]
5 |. f* _. I$ ~+ r" E, Z @c_wnd2 ]8 W2 w( N3 ^. u4 M
]) |$ V( O2 o2 D; f& T+ s
]
' o- U; Q- D* `5 a+ a# A5 x
7 d" C) N8 F" W, T6 i( Epindxcalc #index move calculations, direction is shortest exc. asub+ }' v) M6 M1 u2 ^2 F
if pnt_at_zero | cdelta = zero, indx_mc = prv_indx_mc
9 R7 o; w* Q, f* g else,5 N, {( ^7 D8 G
[4 d2 v0 t$ C1 Q3 n
cdelta = fmtrnd(c_wnd) - prvc_wnd. p; w" w8 j* a# s/ j$ m0 ?
if cuttype = four, #just look at the direction+ P( M0 s I+ |+ }: ?
[
d% K" W6 m# i" } if cdelta >= zero, indx_mc = one
" G! S2 u5 T6 k2 C/ D) H7 E else, indx_mc = zero
# O$ L) Y0 R2 D: h ]
# F- `, B& y" E; P& b( }. l7 U else,
& f( M/ `+ c2 x8 d0 y [
! Y& R" G- s* I6 _ #phase shift delta 10 revolutions, check odd/even for direction
5 ~4 g# _3 p, y7 O) z9 N% w: { if frac(int((cdelta + 3600)/180)/two), indx_mc = zero
0 ?& h: Q5 R: U; |% Y else, indx_mc = one7 u( \6 j& K2 ]) I
]+ k! b+ B: D' A3 \, _0 O% D3 m
]
: r- j5 \- e& E #set range 0-360$ w0 F2 d$ @7 e& C/ V; K6 o
while cabs < zero, cabs = cabs + 360
5 V1 O' i5 k# {1 R! q6 m2 [ while cabs > 360, cabs = cabs - 3608 E6 Q6 n3 c: N) @9 P& Y0 Q: f
/ ~5 g( F( d- [! P" J/ M- }
- N/ g( z; g' ^$ S, O+ [: G: n
|
|