|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
机床只能识别c轴0-360 四轴联动,负数就报警,该如何解决? # A2 ~3 t. A1 Y# n7 R
我机床只能识别c轴0-360. k" F) J: E0 g2 t# J" _; [$ r
是负数的时候就报警
& o3 J+ P6 D8 c, w) j有什么办法将mc出来的程序有这个范围吗7 c w3 e3 W5 K9 ]; ^1 W3 b1 |
2.159 y3.483 z-16.075 c-25.027 f16.21 G; f: X' @1 y0 b8 Q4 j7 ?/ u9 N
x41.958 y3.776 z-16.001 c-25.27 f115.8
. b* j% n& A# @0 Ix41.771 y4.036 z-15.876 c-25.463 f97.60 V. _; W* F0 O( r
x41.506 y4.32 z-15.516 c-25.489 f8.6- r* a9 }6 q5 d8 p9 X; e( y
x41.473 y4.323 z-15.277 c-25.297 f121.1) G8 y$ Q0 y- ]) b: d$ S* C
x41.486 y4.276 z-15.06 c-25.13
$ a& i8 [) Z: r2 G, d6 bx41.562 y4.159 z-14.831 c-24.914% L+ r5 P+ ^( b0 h p9 t# i, w
x41.632 y4.065 z-14.543 c-25. f44.2
2 g. X6 F% V9 X2 z5 h2 m. |.
+ j. S6 m9 E% E8 Z" F$ X& n' p& D. U+ x.! T0 M2 b) X* k# P# R* P+ k
.* _6 o& e7 q+ f8 G6 }$ D+ [
如果有什么软件能设置成c为-时通通都加360# M+ P( p+ B: c8 q+ n: l
那就可以了 盼望高手出现
2 T4 {! u' K! ^+ D# J( m此问题在中国机械cad论坛我已做回复,现再次整理一下 : i/ s9 {& Q' ~* l
T, m. N: T+ a- |2 \9 ^
以下是本人的回复
% h+ E; Z" p7 I' o$ J' x; L$ ^可以的.该后处理可以做到,
5 ]- M4 \6 |! a9 Y需要修改的地方有几个,如下:
3 i8 ]4 I9 F+ i, a; @1.更改机器控制器,
, }7 {6 o, ?' o5 ~- w. I5 r3 K2.后处理需要更改的地方,你查找下面的代码,就知道如何修改了,如下:# ]( L, }6 Z# s+ d
, T9 R) a" J. z8 K
[hidden]pcoutrev #rotary axis revolution calculation (modify for wind-up)' r$ l- h' E% P: d0 j( T
if cir_at_zero = one,2 `# U6 m4 U+ H3 ~6 F, H: @2 ]
[
- P4 Q, t( ?+ P. M% Z; h #arcs at center position the c axis
/ b! z4 B1 a0 `1 ` if cuttype = -2| cuttype = three,
2 X: L7 d; A. J% H1 D csav = czero_csav - sweep$5 Q+ {& K: C9 D% A: M% `7 |5 Q/ _
else, csav = czero_csav + sweep$
' O/ `( G4 b [. s* V- u czero_csav = csav# [6 k9 Q) f r# F
]0 N) N, Z1 z$ a% I- a
#c does not move going to cl
& }" J" l' n2 z if pnt_at_zero, csav = prv_csav
# A" }( |2 E1 |) ^. C$ n cdelta = fmtrnd(csav) - prv_csav #this calculates once, for rev+ @2 s; j |! y: C9 l2 V8 \9 l
while abs(cdelta) > ctol & not(cir_at_zero), #if motion exceeds ctol, add wind-up+ n x3 ^4 A# f3 r
[* d8 A& {0 h$ ~. V1 w' G. u
if cdelta > zero,! V$ s9 ^2 l6 n" l2 d1 {
[7 ]0 I4 T( P1 x0 S) K5 R
rev = rev - one
1 s# f; z) i3 c: u/ P' S$ O cdelta = cdelta - 360. p0 L: W+ {/ o+ v' }3 ^6 ^, q
]
$ m& z+ p) X3 Z7 F6 z$ P9 U* p3 p else,, b' J1 I: X# s- ^2 D
[
- {. P: y9 N n rev = rev + one
' E) }5 ?# r a! d4 j6 I0 A. {) N cdelta = cdelta + 360
5 p% `6 B8 F/ u! P, D. f% H5 I3 g+ j ]
8 n T' [" G% x: o1 z& \, z3 ?7 G+ ^ I ]' V% H5 J" n! v& D
if cuttype <> four, c_wnd = rev * 360 + csav
j0 u) x3 c5 z( e& t0 ]: O else, c_wnd = sav_rev * 360 + csav' m% A3 G* k' A9 F# ?' t
!csav( v, b) @, |. d7 n8 J1 d& p! C
@c_wnd
5 ^7 j& t1 F# M2 M1 s, \$ w, _# y9 c #now switch to c_wnd which is the absolute winding c calculation
. k! H; n: a- l+ s6 l4 _+ C #modify for shortest direction if toolchange or toolplane; D% F. x% \; \. L, p
#but not with axis subs8 r3 N" ^' _3 E/ ^% J" u4 I
if c_axistype <> three,7 H; N; h) Z, C1 S* m7 _
[ Q5 }1 J" O6 n& {1 l: D2 A- p* R7 G
if abs(prvc_wnd - c_wnd) > 180
6 u% z# N% D, h- V & (toolchng | (y_axis & cuttype < four)),8 K( Q, P3 ~* L5 ~3 c/ b# E! q
[6 ^/ l' m7 J, Z
while abs(prvc_wnd - c_wnd) > 180,% R& `! m. o: }9 ~
[, W: O; V: s: k4 `: Z) E
if prvc_wnd > c_wnd, rev = rev + one
B6 u# N2 P+ B2 x4 P T7 E# r else, rev = rev - one
* B" H$ G- k5 {9 J! x- z. {9 f2 }$ h c_wnd = rev * 360 + csav
5 h% I m& U: x" `5 ?: P ]
) E; \. s2 z: F* \ @c_wnd9 u4 Y+ }* y5 z" c
]
3 z4 i J) J2 ^! S, ` ]
1 k+ ]6 g; ~5 v
; s) {2 h& C1 \# Y2 kpindxcalc #index move calculations, direction is shortest exc. asub1 N0 d V% h8 K+ l
if pnt_at_zero | cdelta = zero, indx_mc = prv_indx_mc8 `# H ], ?3 ]" F) Z
else,5 _6 R2 y7 M, o, O* t
[4 `1 O' y& S8 k
cdelta = fmtrnd(c_wnd) - prvc_wnd, W0 o+ |8 F U Z* p
if cuttype = four, #just look at the direction( X E1 j- J# J) I. z" b
[
+ i: P w- q; Z if cdelta >= zero, indx_mc = one
3 |& n& R* u/ S4 {" d5 E else, indx_mc = zero, ]& K6 Q( Q- n3 l9 d
]9 q( \7 S4 N) U! k
else,* z: |: z! ~) d; i
[ |3 z; F! B% N3 G" R
#phase shift delta 10 revolutions, check odd/even for direction) r6 M+ q t, z2 y
if frac(int((cdelta + 3600)/180)/two), indx_mc = zero1 G9 H4 v- N; S# F; ]6 G( ?6 N7 O/ v
else, indx_mc = one
" z$ X; I" P0 a" {2 G ]& c, `: ~' ], J9 a: u% q
]! n2 H: w P1 v, n, \+ K( i1 p
#set range 0-3602 W$ G, {3 w0 Y4 a9 z( A# `( J. n
while cabs < zero, cabs = cabs + 360
" ^* l' X; y% x while cabs > 360, cabs = cabs - 360
3 f* @$ o1 u( \) X' n4 t/ N& E
6 _5 I4 [% h" R! u _4 x/ E
5 y3 _7 G& x( N# h6 x: ]
|
|