|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
机床只能识别c轴0-360 四轴联动,负数就报警,该如何解决? + f- [9 W& \5 Y
我机床只能识别c轴0-360
* X' Z/ w* j R; a) V9 d) D是负数的时候就报警
2 t2 Z O1 C. F' J: ~有什么办法将mc出来的程序有这个范围吗
1 m; V7 @5 r" Z2.159 y3.483 z-16.075 c-25.027 f16.25 T. [$ Z9 w6 @7 e9 v) k' E0 Q' n2 K
x41.958 y3.776 z-16.001 c-25.27 f115.8
1 p3 U: s* \; f" C0 _, wx41.771 y4.036 z-15.876 c-25.463 f97.6
5 T4 S4 s4 }# n7 D* ~7 ~x41.506 y4.32 z-15.516 c-25.489 f8.6
& o% I) | b2 E0 @( E5 ox41.473 y4.323 z-15.277 c-25.297 f121.1' I1 s# ~# V* Q x: @% `6 q
x41.486 y4.276 z-15.06 c-25.13$ }4 C8 g& w) i
x41.562 y4.159 z-14.831 c-24.914 x' y2 C( C5 a
x41.632 y4.065 z-14.543 c-25. f44.2
% i* l2 W8 T, l8 X# c% l/ w/ q, q.
! c4 T. S7 f0 I.5 d3 q! M. E- n9 d2 R) W7 M3 q$ s% t
.( r, N: N3 |; w" H
如果有什么软件能设置成c为-时通通都加3609 q- T0 \+ D8 ?/ N
那就可以了 盼望高手出现 ! S2 p' H3 b8 D1 q7 p+ @
此问题在中国机械cad论坛我已做回复,现再次整理一下
/ z) i- W# `# o f
6 J/ h4 h" f# F- U( X! j以下是本人的回复 $ M2 D6 @+ m. K6 a, @0 g+ Y$ W
可以的.该后处理可以做到, 1 j% ~0 d1 L8 O1 B2 i* _2 ?
需要修改的地方有几个,如下:
8 Q# O6 s* C4 A1 {; b. D1.更改机器控制器,! m9 y' n$ _7 z/ F7 e
2.后处理需要更改的地方,你查找下面的代码,就知道如何修改了,如下:0 R# m/ t, ?: v- _
+ O% W0 _$ Z: ~$ D
[hidden]pcoutrev #rotary axis revolution calculation (modify for wind-up)9 s; `% `, Y, S
if cir_at_zero = one,
3 v4 {5 @1 c, t$ n( M [
9 [9 M& r1 V2 u #arcs at center position the c axis1 U" w w$ a( j/ n$ W
if cuttype = -2| cuttype = three,/ N) r$ r7 Q, a. C6 C' P
csav = czero_csav - sweep$
- @+ M* ^9 J+ ^7 b% M else, csav = czero_csav + sweep$
9 d9 r2 a, ~9 O# g czero_csav = csav
! c( |- S6 |) j& {( s ]& f) H- J6 M, r& U+ b. I9 `4 F" h7 w
#c does not move going to cl2 }, e8 X$ H9 S5 R# Y
if pnt_at_zero, csav = prv_csav
( h: Q. c$ f6 A* [0 i/ Z. T* d cdelta = fmtrnd(csav) - prv_csav #this calculates once, for rev
, r! T: x, p7 G3 B |) C' q while abs(cdelta) > ctol & not(cir_at_zero), #if motion exceeds ctol, add wind-up
7 S& ?' ]0 i1 J [
K" U* [3 M2 z1 [# J if cdelta > zero,/ i: n% l O8 N, M0 ]$ @
[$ `* p6 N1 e3 J9 ~7 n. a9 p
rev = rev - one7 [( u& N1 z4 G* Z- ]8 J
cdelta = cdelta - 3605 k+ {; z) w$ H) s! L# D
]
9 b H* V' C& m else,1 F* {1 |: H) U( ]/ Y, Z
[
/ \* H9 ]! g3 a2 e rev = rev + one
, g) z1 R2 b0 o cdelta = cdelta + 360
" ]' T0 C, b3 ?3 E% S5 J$ j6 v ]" l3 m3 @2 S. s
]0 e! f7 F5 J) m% F/ _& H1 ^
if cuttype <> four, c_wnd = rev * 360 + csav6 ?9 l1 k0 _" M5 c) E
else, c_wnd = sav_rev * 360 + csav
4 u% a" N1 J. p( W+ }8 l- ` !csav0 s0 q( c: r# v7 Y8 x3 X6 Z8 L
@c_wnd
, b( p/ h, B8 L! {4 M$ d: E #now switch to c_wnd which is the absolute winding c calculation
, H$ ?% j$ G. k8 n, u0 O- V) a #modify for shortest direction if toolchange or toolplane
/ A8 ^2 }5 R6 `% Q #but not with axis subs
4 Z6 c1 H- @! E& x% I! x+ P if c_axistype <> three,) \1 m D1 L1 j, W z: j/ C
[
& c2 Y f- L& x5 _4 R4 d* B0 K if abs(prvc_wnd - c_wnd) > 180# _: g7 n0 K( p
& (toolchng | (y_axis & cuttype < four)),& _* v: W% c# W# _
[6 i3 E+ e% p* W# K( U+ B4 e% n
while abs(prvc_wnd - c_wnd) > 180,( T9 S) g* v; J$ E) C( B
[- Q D4 {0 P- J- v9 @4 S! W; U5 q$ O1 W
if prvc_wnd > c_wnd, rev = rev + one+ ~1 F' ~1 J m
else, rev = rev - one; L6 U* ~3 A- u) q0 ~" Z& Z M
c_wnd = rev * 360 + csav
+ p' x1 B+ f9 C( X% y ]- O7 n6 ?2 m" k* V
@c_wnd+ Q1 I' ?1 m) O. W7 \
]+ w0 p$ t. l8 Q$ f* c ^& Z
]2 ~. z6 I" J2 c, ^1 p* a& G
" F2 l" N: n0 o1 spindxcalc #index move calculations, direction is shortest exc. asub, K% O+ K5 u; X( U5 q' E
if pnt_at_zero | cdelta = zero, indx_mc = prv_indx_mc8 z# a9 m7 P @, F3 k
else,; @- E1 w" Z2 l* l4 S9 g" O6 S
[) x4 N& f) f: `& a0 O5 g# N* V5 V
cdelta = fmtrnd(c_wnd) - prvc_wnd5 q5 A7 C+ q' I% P4 C! G
if cuttype = four, #just look at the direction
0 H- k! j6 O7 i. u" e# [: J [
! L1 p2 F0 Y Z3 U+ i3 f5 a& l5 P if cdelta >= zero, indx_mc = one2 S3 S) p; k% M# v: N
else, indx_mc = zero
8 b; R F5 V/ e' s, E ]5 C$ g/ g: c; Q' [ R
else,. S) l. l/ B# [( Z) S
[
) D5 l2 L; g. X, z6 W& p# W. ^ #phase shift delta 10 revolutions, check odd/even for direction; o# \9 D, v! Q2 r% @. Z
if frac(int((cdelta + 3600)/180)/two), indx_mc = zero* F8 h2 [7 t7 u ?
else, indx_mc = one
7 `0 o9 k% g& c2 L$ z3 J9 V- Y ]: {, q! o4 j8 m/ f2 v! H2 A5 A
]& n; d. k+ s- i% ?9 Y+ \
#set range 0-360
. {8 o4 X3 y; G5 N- V4 D9 T- c while cabs < zero, cabs = cabs + 360
' a, \ n/ o# f) y3 }: m: i! f+ L while cabs > 360, cabs = cabs - 360
1 t' @' b# v- \/ ?
9 F, l1 F5 Y" a) u! P7 D# C" e( ]
* {! h; e; u9 M- M" j* \ r: \
|
|