|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
机床只能识别c轴0-360 四轴联动,负数就报警,该如何解决?
' l6 Y! S+ T+ K8 j' n/ E8 p; N5 {我机床只能识别c轴0-360
/ ?- D2 ]# j, ?& p5 m% C是负数的时候就报警
9 U, C3 N6 i6 x- x+ c, G有什么办法将mc出来的程序有这个范围吗; F/ b. Q) Z- v: F, N
2.159 y3.483 z-16.075 c-25.027 f16.2
+ z. i7 G. h. h" Xx41.958 y3.776 z-16.001 c-25.27 f115.87 d( c+ U. ^1 \5 |
x41.771 y4.036 z-15.876 c-25.463 f97.6
1 j1 y1 Y1 E3 ^3 Bx41.506 y4.32 z-15.516 c-25.489 f8.6
. m6 i/ f/ O7 W2 y, M; }6 L9 kx41.473 y4.323 z-15.277 c-25.297 f121.1' W8 E0 U; G; @
x41.486 y4.276 z-15.06 c-25.13
, h% E+ N4 o4 [x41.562 y4.159 z-14.831 c-24.9148 R% S8 b" N9 M
x41.632 y4.065 z-14.543 c-25. f44.2
@$ K( S* s* P+ l1 U, i.4 o5 A. r2 Q* A8 L$ O: _
.
3 {! D6 h3 u+ r6 g% W2 G3 v/ m# m.
& h9 ~ F8 F. Y* f5 }+ ~如果有什么软件能设置成c为-时通通都加360
4 J& |& d5 G: Z) l% i4 K/ I8 v那就可以了 盼望高手出现
$ H4 _" G. {3 w9 `此问题在中国机械cad论坛我已做回复,现再次整理一下 ( ]9 K' P3 z! C- z7 W3 e+ }( p( g3 B
. Y) u, `* O* @& @以下是本人的回复
: }3 r+ z/ o% f. ?: z! ]; A可以的.该后处理可以做到, % S5 }7 t. P$ B
需要修改的地方有几个,如下:
7 q: H& d* R1 o! Y; [+ R$ z# T1.更改机器控制器, ]( ?3 }' m8 y7 z
2.后处理需要更改的地方,你查找下面的代码,就知道如何修改了,如下:
& [% S; N8 f% c8 y% M5 L
8 Y7 d( z4 O7 e5 u: k, S[hidden]pcoutrev #rotary axis revolution calculation (modify for wind-up)
! h& U: `9 i* } if cir_at_zero = one,
7 T" P* W. U, a9 }( B7 h c [8 E/ e* p+ ~& o2 C" J
#arcs at center position the c axis# f; r$ K8 K5 @
if cuttype = -2| cuttype = three,6 y! m! W& m0 E; G3 ~, C) a
csav = czero_csav - sweep$7 v, P; w a7 V" B& a
else, csav = czero_csav + sweep$9 S' ]7 A3 u* h7 }
czero_csav = csav
/ r- x0 P% G/ p2 B& _' Z! ] ]
% ]" ^9 q2 B; u9 D; y& m #c does not move going to cl0 ~& G7 [: d# M3 ~; z
if pnt_at_zero, csav = prv_csav
# ]9 A1 h# u( t; A) s' B' a) y: P8 ~ cdelta = fmtrnd(csav) - prv_csav #this calculates once, for rev6 C: a( a/ [# J/ Z
while abs(cdelta) > ctol & not(cir_at_zero), #if motion exceeds ctol, add wind-up
: `8 f, X7 I# C4 R" U$ _: A$ W [
: I) o `& ~! X: F if cdelta > zero,+ L8 D; h; {- f- \ Q
[8 l4 d/ _5 w; y) s
rev = rev - one( q- Z6 ?+ k/ Y1 {& T8 ~3 a% x
cdelta = cdelta - 360; J: j- S) x3 _: n
]. L# n# f, q0 [7 k
else,
8 E1 o! [" _5 F [9 O) n8 n3 ^1 k+ ~
rev = rev + one) t: d7 l6 W9 P/ d4 B
cdelta = cdelta + 360
, x0 `1 {* F2 t6 @. X ]7 O/ Z" r! @9 @5 @7 S. J
]
! k) T9 }4 o+ ~: a if cuttype <> four, c_wnd = rev * 360 + csav- g3 Q, S9 A0 U6 X9 y, D
else, c_wnd = sav_rev * 360 + csav
, s5 l" b! D+ d1 a !csav
) s& c* z: ?0 f+ [9 B( G @c_wnd9 c' a8 g4 R; ~6 Z- O& A5 F6 B, D$ L S
#now switch to c_wnd which is the absolute winding c calculation1 p7 _# a8 |7 M e) B2 a
#modify for shortest direction if toolchange or toolplane5 O! R, q% n( s I% X7 s
#but not with axis subs
0 X; a- `8 }; O0 V. X+ |- v if c_axistype <> three,
# ^! I" }" C3 {7 }7 Z5 H9 q [
" e3 Q/ Y; m+ f- J3 g( o if abs(prvc_wnd - c_wnd) > 180
?3 C7 D( b0 }+ W* j! j1 {" o8 ` & (toolchng | (y_axis & cuttype < four)),2 o, J% d1 V6 T C0 t- A5 b
[9 }# J- ~; y. U" i9 f& L
while abs(prvc_wnd - c_wnd) > 180,& ^4 ~5 ?# b) ], l" y
[
$ r' f+ d+ j; c6 V2 o9 i% J if prvc_wnd > c_wnd, rev = rev + one( Z' o* b9 B; p
else, rev = rev - one
- f1 B3 _/ z6 X3 A' P9 a c_wnd = rev * 360 + csav
# a7 u1 w' D) V# W) E! j ]
" J- m. y# w3 N; w( Q @c_wnd
% X: Y7 ?7 M4 W; k8 N) [" b D6 | ]6 P% w a1 q8 w7 G& Y) A) Q+ f
]) D2 C! G" ]9 ]
9 I9 E' m ^& Z$ [6 f. P8 ]pindxcalc #index move calculations, direction is shortest exc. asub0 N0 R" ^$ N$ F2 V; `* T) s
if pnt_at_zero | cdelta = zero, indx_mc = prv_indx_mc" _0 t) L+ \" r5 t* q. F
else,
: a! ^1 h! N' n4 m, u4 F+ o% K | [9 N! n! b+ D' _. i. I- P
cdelta = fmtrnd(c_wnd) - prvc_wnd
3 M2 K8 I) n" t5 m if cuttype = four, #just look at the direction7 b7 r/ ?$ q$ C
[$ g, L/ ?. R9 V _% S3 {
if cdelta >= zero, indx_mc = one9 T- R4 N# R. o3 [5 f
else, indx_mc = zero- v8 ?* [9 @) S, V. ?: F# ]
], l0 n! M) d* n! U4 B" W
else,
* P" G0 W8 x$ B" u) U; n0 y ] [
) I" r$ ~+ i# V; c) l #phase shift delta 10 revolutions, check odd/even for direction
; Y$ m& {; a3 s5 q1 Q$ p if frac(int((cdelta + 3600)/180)/two), indx_mc = zero
- i4 J3 H" f3 ^% S7 @9 F. b else, indx_mc = one5 R/ B6 l4 E& a
]* r/ [ r" H2 x8 T
]
8 Z. B% Q2 N( `% I #set range 0-360
$ y4 z: C& S; \7 Q. L6 t while cabs < zero, cabs = cabs + 360
" x3 Y+ T. C3 Q" m- A! O while cabs > 360, cabs = cabs - 360! [# m+ d/ I( X' g: I, Z. V
+ r* U' Z2 Q- ]! H7 W2 R" Y
5 r2 A, u4 C+ O: T$ g
|
|