|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
机床只能识别c轴0-360 四轴联动,负数就报警,该如何解决? 0 Z) N7 ?4 F% ] }; K7 U3 U
我机床只能识别c轴0-360! c5 O5 f; v+ l5 ?& [
是负数的时候就报警
; I4 U( C/ e' E8 h( u6 ~有什么办法将mc出来的程序有这个范围吗9 C6 a* @0 O. }" R
2.159 y3.483 z-16.075 c-25.027 f16.2
1 Y/ L* K; l" c* h2 E- t- W1 yx41.958 y3.776 z-16.001 c-25.27 f115.8 o4 p9 J# j3 A7 J; |2 K
x41.771 y4.036 z-15.876 c-25.463 f97.6. [/ o/ d' F9 J/ H' y
x41.506 y4.32 z-15.516 c-25.489 f8.6$ a8 B" }! M; q8 C, o7 r
x41.473 y4.323 z-15.277 c-25.297 f121.14 d+ @4 v3 [* s# v2 X6 \7 u
x41.486 y4.276 z-15.06 c-25.13) v6 [, C& U7 b1 M: X3 T
x41.562 y4.159 z-14.831 c-24.9141 u7 ^% Z$ a+ L
x41.632 y4.065 z-14.543 c-25. f44.2
1 F" P) }& d( ~8 M5 n.
$ _0 W" D/ L- V% E.
4 L4 ?) m2 A( K$ L! r.) R: M( r9 ?+ V
如果有什么软件能设置成c为-时通通都加360
! z6 d% X) v0 ~" w! w! i那就可以了 盼望高手出现 5 o$ ^3 J/ J; M8 R7 S: x
此问题在中国机械cad论坛我已做回复,现再次整理一下
' z4 X: q7 c: o; r- N( Y/ E4 a
L& l/ p5 O7 @; @3 u以下是本人的回复
. r2 R- `" e' d& C可以的.该后处理可以做到, ( f& g4 M- l2 b4 `: h. d- m! M1 b
需要修改的地方有几个,如下:
5 a* g+ d( P8 s9 M1.更改机器控制器,; b7 q$ l* R/ A Z) ]7 ?3 g
2.后处理需要更改的地方,你查找下面的代码,就知道如何修改了,如下:
1 i4 S: w8 L8 P0 h6 l; y9 p
" w2 n2 Z6 w2 `# Z+ a( a' B[hidden]pcoutrev #rotary axis revolution calculation (modify for wind-up)
- S9 v9 M1 e4 r) p7 L if cir_at_zero = one,' L6 e0 Q5 Q, u( X
[ t- M, o9 k' s: g5 ]
#arcs at center position the c axis
& E: F$ V3 R: `1 k if cuttype = -2| cuttype = three,6 P( u3 P+ Z' x( s2 d
csav = czero_csav - sweep$
5 Q9 N3 G( d7 {8 j; f else, csav = czero_csav + sweep$
* k+ y) ^; _) M7 V# \ czero_csav = csav
, W4 t" _( s. f5 r% N ]
& v+ J) P9 {$ N4 X, A2 l2 L3 r #c does not move going to cl
4 c' t2 ^# X: [5 A' v! @6 f7 T if pnt_at_zero, csav = prv_csav
9 z! B2 b; T( N9 S( l# A$ H cdelta = fmtrnd(csav) - prv_csav #this calculates once, for rev
, h d! q1 x5 F while abs(cdelta) > ctol & not(cir_at_zero), #if motion exceeds ctol, add wind-up
! y9 B% O# F0 }' i$ a [9 @3 \3 ]( Z6 O+ k
if cdelta > zero,
$ d8 ]) e3 K; q; t9 ^7 f [
/ F* L$ F7 n9 G5 n/ N rev = rev - one
& t6 g% c$ Z% x6 \/ i c cdelta = cdelta - 360+ ~7 _: [6 R* c+ h$ i+ b( X
]( T- u3 W; d# K/ d
else,
4 q5 x7 C- x8 @" N8 v4 C6 T% ] [
/ Q- H: v3 h% D4 S4 M rev = rev + one4 U# \- K1 b$ E
cdelta = cdelta + 360# v+ }7 j( f0 m/ H3 e, @
]
# f& m& s l* L" j ]$ O0 g8 m7 p. N' s1 _4 I! n% f: c
if cuttype <> four, c_wnd = rev * 360 + csav
/ N Z/ W S+ ` else, c_wnd = sav_rev * 360 + csav
& k7 s6 j# {/ B& U7 w( B, O( d !csav
7 F1 t$ }3 R- Z# @( @8 E( x @c_wnd* [! }+ i9 ~. r! `3 o) V0 a/ W- w
#now switch to c_wnd which is the absolute winding c calculation
: j D, R& Y3 `2 q9 ` #modify for shortest direction if toolchange or toolplane
5 A, I! \9 S. k) ?0 J #but not with axis subs
/ i6 k6 D' U) K7 L' }; k if c_axistype <> three,
0 ^( h+ E6 w" k& P9 H* p, i [
0 j4 |9 N5 N% L) o1 W) P if abs(prvc_wnd - c_wnd) > 180
, S0 N* k# ~' Y! d8 F & (toolchng | (y_axis & cuttype < four)),9 Q- e2 V9 @: }2 p* t
[3 Q* v6 P6 ~# _% s) A$ |6 @
while abs(prvc_wnd - c_wnd) > 180,
8 S2 q4 `2 G) [" | [1 @9 n! J% M) @# v
if prvc_wnd > c_wnd, rev = rev + one0 P# U4 w5 A# u
else, rev = rev - one( |0 p, X W0 \; w- v4 v5 }$ u
c_wnd = rev * 360 + csav; P3 c2 S4 Q. K: ?) _! u* {8 Q
], @8 B- \9 F& i. Q
@c_wnd! N5 o8 ~8 K! |
]
& Q3 B9 a4 u: Q3 S# ^6 j ]- ^4 t5 j; X3 L9 r3 f
, o9 ?7 Z$ j x# H" q/ Q- k6 Upindxcalc #index move calculations, direction is shortest exc. asub1 H5 |) F1 B% I2 e7 G" v
if pnt_at_zero | cdelta = zero, indx_mc = prv_indx_mc) P3 _# L g! O# r" K) g" R0 c
else,
1 u+ _, d' Z1 j5 f [+ Q8 s& x6 B2 }3 `: {+ a
cdelta = fmtrnd(c_wnd) - prvc_wnd& M( P& r+ n: s, D
if cuttype = four, #just look at the direction; ]* D- k! Q3 ^8 E- ?6 u) _
[, }0 U- N$ g7 c1 [
if cdelta >= zero, indx_mc = one
$ ?# Y: t# p+ J4 { q, q else, indx_mc = zero: O: \" f) I; e- }( r, X+ O
]
8 F# u- u1 A! f% x/ z else,
3 f9 D/ c' i3 M/ Q: s) v [
# v5 _9 @2 P V: F. K7 { #phase shift delta 10 revolutions, check odd/even for direction
4 F9 N/ X" Y1 D; O/ t' R if frac(int((cdelta + 3600)/180)/two), indx_mc = zero$ o# T4 }: ?4 m8 O# x
else, indx_mc = one- I# B k1 o6 Q3 _- S: e% U3 p( A; }
]
' N) H) \# k$ _2 n( U ]
) Y0 t. o" d) b- `" |. L #set range 0-360
l1 h e5 h. ? while cabs < zero, cabs = cabs + 360
/ ^; }# G2 G3 o6 ^- G while cabs > 360, cabs = cabs - 360
I% l+ s4 E+ G$ X9 h: a9 c! R0 W% X3 b4 }( Z, ?; ?" d r' v
( B6 p; x& _+ m$ `/ t* |
|
|