|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
机床只能识别c轴0-360 四轴联动,负数就报警,该如何解决?
& l: x7 j5 M& Z' I% _1 e- G' e我机床只能识别c轴0-360
- j& s/ e+ O4 q1 `是负数的时候就报警$ @3 J+ |2 T) S4 n; V1 U/ e" T
有什么办法将mc出来的程序有这个范围吗4 u& l& T# m/ \) o( B5 m
2.159 y3.483 z-16.075 c-25.027 f16.27 `. T7 {) e, d: D1 G/ w
x41.958 y3.776 z-16.001 c-25.27 f115.8
. \6 J* C: w- i Lx41.771 y4.036 z-15.876 c-25.463 f97.62 g* S5 o8 Y1 D1 t3 W4 M0 g
x41.506 y4.32 z-15.516 c-25.489 f8.6
# |# h0 L4 A5 k$ g7 a, rx41.473 y4.323 z-15.277 c-25.297 f121.1
4 f& E3 _! d5 Qx41.486 y4.276 z-15.06 c-25.133 L ~: J6 ?* I0 @
x41.562 y4.159 z-14.831 c-24.914
5 y6 S9 J0 m0 ~$ C- G" ix41.632 y4.065 z-14.543 c-25. f44.2
1 m6 w- P3 T* z L6 Y% ]8 y7 f.
. H" p/ J- v! n$ E8 R4 t.
& H! V" K! ^2 l+ j& z.: F- k# T) `1 }+ ?9 ^2 ~
如果有什么软件能设置成c为-时通通都加360
! \- W5 [5 O& w( f' s8 Z& I那就可以了 盼望高手出现
! Q7 C0 c. d/ E; y6 d此问题在中国机械cad论坛我已做回复,现再次整理一下 , v" Q I) J4 R1 w9 g7 _
& Q7 J+ L! n& n* W
以下是本人的回复 4 _6 r- C& t- z5 r a0 C+ F
可以的.该后处理可以做到,
) t! |) C* U1 W需要修改的地方有几个,如下:
+ P2 w" k7 x4 i4 i }1.更改机器控制器,
7 m& h$ n% Z, @4 p R) D2 R) P2.后处理需要更改的地方,你查找下面的代码,就知道如何修改了,如下:* U- X" m8 w- s x, W4 x
) E* l. P" x2 v( B. w) p[hidden]pcoutrev #rotary axis revolution calculation (modify for wind-up)
+ G/ z( i) \# ^! z/ P& T/ q if cir_at_zero = one,8 d8 @/ i2 `5 M! X" }+ c/ Z" x
[1 |' g1 |3 |% e, X* l S" Q4 D( M
#arcs at center position the c axis
+ B: W! |8 k0 B8 V if cuttype = -2| cuttype = three,8 O& r. X2 M. v# B( T6 h
csav = czero_csav - sweep$# W3 S7 d2 ?4 S8 _
else, csav = czero_csav + sweep$% R4 Z$ R, L/ d/ e! Q! ^' q" f1 j0 c- B& E
czero_csav = csav
4 m D. N! K( P; P ]
$ A3 a; l6 n: C% }: U #c does not move going to cl5 T8 o2 L! I# I' `
if pnt_at_zero, csav = prv_csav
) j' z/ a4 }- s) ?7 g, z cdelta = fmtrnd(csav) - prv_csav #this calculates once, for rev
# y- L- S7 o0 @ while abs(cdelta) > ctol & not(cir_at_zero), #if motion exceeds ctol, add wind-up
! m7 q8 [; Q& w( D$ A [
% u- A, ^! D' Q) h if cdelta > zero,2 _$ p3 e/ M' U% _# O; q' ]6 c C
[
! ]$ T6 V1 G# `7 }# T rev = rev - one
' U4 r1 e2 R3 |8 B9 g cdelta = cdelta - 360+ M! e- i" ?( t
]
0 r8 e/ w7 @( D9 z) U1 c8 s else,
* e7 P/ `7 x2 \$ y [
+ l: Z% j; r( { rev = rev + one# Z' u- Z+ @/ }" d) s7 q8 |
cdelta = cdelta + 360: S$ U4 l5 z+ [
]) s3 Y# w" N" c( q* {
]
! Z6 J, K5 Q4 a0 X if cuttype <> four, c_wnd = rev * 360 + csav
( G: M# v! B; C" L else, c_wnd = sav_rev * 360 + csav, c3 o* k' W- a" k; S0 D
!csav1 W s, E G$ H& O+ H/ K
@c_wnd
4 Z3 u1 T' p, o0 v #now switch to c_wnd which is the absolute winding c calculation! m7 `+ V: W2 a! ?8 |
#modify for shortest direction if toolchange or toolplane: V) u: I# H$ X: H& Z! x
#but not with axis subs
) U! r% V( q) a+ Z if c_axistype <> three,
) O3 F9 k m4 c# H: _" c8 X8 `: H [7 r$ n ?7 K. O: Y2 D; ~ Y
if abs(prvc_wnd - c_wnd) > 180: [+ \7 H8 _; [6 u8 r" c- Y
& (toolchng | (y_axis & cuttype < four)),
' |7 _+ U ~5 g( K2 f6 G2 V [8 @! ]- l' Y, P" h; e3 }
while abs(prvc_wnd - c_wnd) > 180,
8 b" Z( a) X# v7 Q' t2 | [
" l+ B! \, Y1 z) }! O2 p% I. L; d if prvc_wnd > c_wnd, rev = rev + one
- H) [: ~+ h0 |1 z, R8 N else, rev = rev - one6 w* Y# I8 {4 r5 _4 t
c_wnd = rev * 360 + csav& ^ d0 f1 u+ l4 T' r! U
]
- Y9 ~6 u; P4 j! Z: Z% M" { @c_wnd2 ?8 V0 E( v/ w( v
]4 i' f: o# k! k9 R) s$ s) k! d
]4 \& W* l! X$ A- B. M7 i
. k9 B6 M" ~; K7 p0 S& `) I( _1 }pindxcalc #index move calculations, direction is shortest exc. asub
1 g4 L7 o- O7 `$ Y( }6 r' d if pnt_at_zero | cdelta = zero, indx_mc = prv_indx_mc, _1 [4 p) ~6 E2 \- e
else,( }% @, a/ p+ j5 q
[$ d7 N& _7 `6 j3 T% Z5 P
cdelta = fmtrnd(c_wnd) - prvc_wnd
* r, ^- N3 z* v& Q( f, B/ \ if cuttype = four, #just look at the direction" S) i2 ^9 i! s6 R. ~; s Y
[
: _2 T7 ^4 q) u. x. L: L6 F9 \9 e: K if cdelta >= zero, indx_mc = one
$ n! s% k& V, Y8 S else, indx_mc = zero# z \9 `$ |1 n0 f e- i
]
5 ^" S, @ e2 i: t else,
4 V7 B0 s3 r! D. r6 Z# Y+ [ [: H" p& o& A7 y3 C) Z
#phase shift delta 10 revolutions, check odd/even for direction @ ^8 a" h( `# W
if frac(int((cdelta + 3600)/180)/two), indx_mc = zero: c+ N0 k+ k0 n0 d( o. U
else, indx_mc = one
- x2 d+ ?/ d3 r( C! X) C ]: u$ k# d/ x. [9 Y
]+ w3 w$ q4 B0 y
#set range 0-3608 W T5 T% l6 N s& N
while cabs < zero, cabs = cabs + 360; _8 u4 [4 b) [2 v: k/ O
while cabs > 360, cabs = cabs - 3602 o' _; c5 o7 M$ {
. L5 M: v; v% f1 @# L
6 h. B) h1 o- S M) Q5 G9 n; b
|
|