|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
机床只能识别c轴0-360 四轴联动,负数就报警,该如何解决?
7 R+ j* H$ v9 G* T我机床只能识别c轴0-360
, m' V% k. v0 d! c+ M" T: _ ]1 r是负数的时候就报警1 n* ?8 H4 J9 t7 n' U" d
有什么办法将mc出来的程序有这个范围吗) v) C/ x6 ^% L6 x2 w
2.159 y3.483 z-16.075 c-25.027 f16.2+ C$ F) c, F7 r2 W7 q. Q6 z
x41.958 y3.776 z-16.001 c-25.27 f115.8( W. I2 w& q1 s
x41.771 y4.036 z-15.876 c-25.463 f97.6
/ e) v5 }- C; S8 tx41.506 y4.32 z-15.516 c-25.489 f8.6& Q" ^" g+ `2 G: ]# S2 _, {
x41.473 y4.323 z-15.277 c-25.297 f121.11 v6 U" U2 e! l) I; P
x41.486 y4.276 z-15.06 c-25.13$ x7 i! X' l) T+ C8 ?
x41.562 y4.159 z-14.831 c-24.914
2 m$ C7 U2 R% ^6 I, l* o# gx41.632 y4.065 z-14.543 c-25. f44.2
& q3 E4 T1 Q# v& s.% G6 z5 w% G( K- P6 n
.
2 a9 e5 u; |4 B0 }& e' Q( p0 V.' D' \: N4 z8 w$ A" w* E& Y0 @. u- t( l9 d
如果有什么软件能设置成c为-时通通都加3600 S4 e3 y0 L P* f
那就可以了 盼望高手出现 & P( J4 t& k* P" H3 e* v
此问题在中国机械cad论坛我已做回复,现再次整理一下
* \6 o. S& D9 E- [9 b9 {; t4 a- n- C% G1 c" c8 k$ F# E2 o
以下是本人的回复
! V, A% i* V7 m: n7 t) w( P4 d* Q# u可以的.该后处理可以做到, B7 o7 I1 |2 i" {/ c1 r: h
需要修改的地方有几个,如下:
) ^3 Z6 \2 ~8 W2 j1.更改机器控制器,5 E/ ^* q" M r% {
2.后处理需要更改的地方,你查找下面的代码,就知道如何修改了,如下:3 [6 I) H1 H, }/ [& p) v3 Q, d% ^! n4 J
4 A- |2 V- y! o' p+ O* S8 x
[hidden]pcoutrev #rotary axis revolution calculation (modify for wind-up)1 G' `) I4 v4 K4 B* l3 e
if cir_at_zero = one,/ [+ n0 v! t( P! ^
[; a- S$ H8 u- Z; F; y
#arcs at center position the c axis
; n3 R' \) v w5 m if cuttype = -2| cuttype = three,6 k# J# i2 E3 c, F
csav = czero_csav - sweep$
: d( ]0 s! F% F* a* U else, csav = czero_csav + sweep$! x) r1 D5 Q3 x( p
czero_csav = csav
! X/ N9 b8 F y7 M4 f ]
4 Y5 R3 \) R. l0 h/ s5 T) ~ #c does not move going to cl V }- i& a6 H2 d. i0 O
if pnt_at_zero, csav = prv_csav
9 t+ R1 _- r: D( j2 l cdelta = fmtrnd(csav) - prv_csav #this calculates once, for rev' o" a: L$ q4 I) x
while abs(cdelta) > ctol & not(cir_at_zero), #if motion exceeds ctol, add wind-up
' V/ ~# W; I$ ?0 h [
* Y3 [3 J& {5 W+ j6 K+ v; j if cdelta > zero,
8 H- V+ a+ \ N/ M [" Z* W! D& f/ k5 N4 C2 V7 Q
rev = rev - one
$ l3 X& r* J) B: e, } R cdelta = cdelta - 360; c" ?" ]; j4 k1 m; f+ P9 h
]
+ a8 B& z+ ?2 g+ m: z9 a else,# [$ p) h; H/ a& q% I% s
[
& s$ T, Z* | l- U# H7 S9 N) \; ] rev = rev + one5 `% w# j) t) T* E; c: c
cdelta = cdelta + 360# c" a, I P: r7 a; ^
], K0 ]# Y& M+ K$ e$ g3 K
]% W+ b9 d& g9 C/ j1 Y
if cuttype <> four, c_wnd = rev * 360 + csav1 ^! A) Q% s- \
else, c_wnd = sav_rev * 360 + csav8 i7 M. Z) Q2 a6 L
!csav9 n( B7 b9 B0 H* C3 }" \
@c_wnd
! T4 v/ b' s. E( g/ Q8 X #now switch to c_wnd which is the absolute winding c calculation
: ? @3 \4 f/ p. m% x" U& |' s N #modify for shortest direction if toolchange or toolplane
) q8 D; \7 ~9 z5 P5 ? #but not with axis subs
* m1 N5 S" U! y0 ~ if c_axistype <> three,
5 l0 B. N- T4 W1 Q [
% B2 \* i# O* C$ T1 r9 w6 Y6 e if abs(prvc_wnd - c_wnd) > 180: J$ N3 K% w. I0 g* E
& (toolchng | (y_axis & cuttype < four)),
3 G0 W# A& q% _! [/ C6 U9 q) f [
1 g. y* r% x' ` while abs(prvc_wnd - c_wnd) > 180,& Y' ?6 B' \) G3 }4 n! k
[
1 p+ s6 ~$ q& C% z4 E if prvc_wnd > c_wnd, rev = rev + one# C# h M5 c2 X% s4 T% z& i
else, rev = rev - one3 ~0 @, d6 `) o% e9 G: A
c_wnd = rev * 360 + csav
% B9 {( q3 D4 h5 a L; [ ]# D- p' z4 k; O
@c_wnd) M1 k% U, f$ Q& ?
]
; W1 d& U. h" [9 G# v; \) ?2 O ]% I" B) O E4 B8 D- E
# T. H; }) \; W% a9 F( ppindxcalc #index move calculations, direction is shortest exc. asub! { _5 P7 X8 y! V
if pnt_at_zero | cdelta = zero, indx_mc = prv_indx_mc, Z- i5 J: a) B$ d3 u1 d* f
else,3 Y9 ~6 o3 L8 l; o6 [* {5 D8 G1 Q
[) g* G& q# a* |' x, T- B( o
cdelta = fmtrnd(c_wnd) - prvc_wnd7 S, {, Y3 x7 z; G; M
if cuttype = four, #just look at the direction! {8 B: y' v+ z0 H
[
0 q9 b) f/ T i! P/ m0 s if cdelta >= zero, indx_mc = one
5 ?7 F3 d( O6 d. k2 F else, indx_mc = zero' n! \- o, r) U. B" D
]" M: L6 ~7 Q g
else,
3 {6 U8 f: ?1 b4 T4 k [! P5 P1 N7 s! t8 K& G4 y
#phase shift delta 10 revolutions, check odd/even for direction; o9 f; t2 [2 T+ w! G8 ^8 m; F
if frac(int((cdelta + 3600)/180)/two), indx_mc = zero W; X+ k4 j. {& K
else, indx_mc = one
8 K2 c4 m# p5 C% x. y e* I- x2 Q; J ]
: V( I1 \. l! { G+ y/ F ]
. p; D0 M. m1 n* Q q6 J/ i #set range 0-360* }" i- f$ i: j$ u. m
while cabs < zero, cabs = cabs + 360; ]; V2 Z8 }) |3 s# _
while cabs > 360, cabs = cabs - 360
. L$ K" m* F+ q$ [% K
* Y. j1 }1 `9 ~8 B3 p& c$ b. T& d7 M- q4 } I+ |; A
|
|