|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
机床只能识别c轴0-360 四轴联动,负数就报警,该如何解决? & X2 h; u0 T# f5 ]! X
我机床只能识别c轴0-360
5 m% Z3 A; _: j7 n0 C: o- c$ j) R是负数的时候就报警
# D4 v t- f0 @# ~, h% l有什么办法将mc出来的程序有这个范围吗9 p, ?4 Y( K# R9 h+ K: c2 }3 X
2.159 y3.483 z-16.075 c-25.027 f16.2
) g2 X+ p3 f: n) K" |4 @) z; xx41.958 y3.776 z-16.001 c-25.27 f115.8
3 R2 N5 L& u E. s. D7 t6 ^x41.771 y4.036 z-15.876 c-25.463 f97.63 C2 o6 p- _9 v ?) }2 K
x41.506 y4.32 z-15.516 c-25.489 f8.6. g5 f' W l+ x
x41.473 y4.323 z-15.277 c-25.297 f121.1
* ]4 j0 N- H- c3 j' s. \5 U# Yx41.486 y4.276 z-15.06 c-25.13
2 D% b' t( v* r' z$ }) Xx41.562 y4.159 z-14.831 c-24.914
) q- T! b2 {* S+ i# p* Sx41.632 y4.065 z-14.543 c-25. f44.2
6 \5 L4 N. B* x+ j+ }& `4 q5 Z" {.
! [; V4 T% i# r; f& v! {- }.# j7 v8 k6 E; I6 Y
.* i! g9 ?& d& P; o2 ]1 G4 s: e/ }
如果有什么软件能设置成c为-时通通都加3601 ?0 G; P" Y7 a/ q
那就可以了 盼望高手出现
4 ~1 r4 ?% Q. s此问题在中国机械cad论坛我已做回复,现再次整理一下
' E) w* G% Y4 x$ ?1 z% n* v, P% h" b- o
以下是本人的回复 ) \3 p/ H% A9 E) N/ V+ {
可以的.该后处理可以做到, 0 l) }6 o! `9 o0 p$ i. u
需要修改的地方有几个,如下:# h5 t7 _/ {7 X, N$ O
1.更改机器控制器,
, S6 s. u! C" R1 S2.后处理需要更改的地方,你查找下面的代码,就知道如何修改了,如下:: C9 l) f" M' e' t. d1 u! N+ G
3 A$ L- _0 |0 ]0 ?$ K. G- |
[hidden]pcoutrev #rotary axis revolution calculation (modify for wind-up)
* X! G- }& G5 a: ? if cir_at_zero = one,/ z$ b9 l$ |& ?7 U+ d
[
% B& O! P1 G3 Y! W1 i3 S #arcs at center position the c axis! S" Z0 r0 Z7 }8 l+ Q. r7 {( l
if cuttype = -2| cuttype = three,/ P0 w& `9 D7 x% Z- ]
csav = czero_csav - sweep$; \& c& N0 r8 H+ H1 b
else, csav = czero_csav + sweep$4 p) X8 n ]) q) X F9 D: L( f
czero_csav = csav
% p- B& R. d6 B' G# W! L8 ^5 a [ ]
* Y3 f% ~2 G4 b# e- w+ n #c does not move going to cl$ w3 Q. T' j* C
if pnt_at_zero, csav = prv_csav
; [3 x9 ]" j5 J3 ~7 g cdelta = fmtrnd(csav) - prv_csav #this calculates once, for rev
+ c* `& g2 M8 L6 V( i% z r while abs(cdelta) > ctol & not(cir_at_zero), #if motion exceeds ctol, add wind-up0 A6 e$ Z9 i. Q: h
[
. ?$ B6 u e$ Q& O8 m6 C9 g' t if cdelta > zero,
2 v' k1 z6 B# U' J1 z" m [ n5 O& P: [) v& Y. J+ x
rev = rev - one
7 A1 ^* H) g f, L cdelta = cdelta - 3601 [8 G1 H8 q/ T8 D( ]$ i
]
# `" V8 O8 |4 p: j7 b+ K% M else,
( ^' `9 b$ o/ O3 J- T [
0 K' L5 ~: h* i" W9 D" F( Y7 J rev = rev + one
# q" s2 U* J' m- h4 A' P cdelta = cdelta + 3605 ?. U4 e4 C ?
]
) B+ V8 C* o' s8 T* X- g ]# G6 Y: K+ e$ f# v
if cuttype <> four, c_wnd = rev * 360 + csav- S& E ~, K+ {" P. _
else, c_wnd = sav_rev * 360 + csav$ y" T' g+ v% {
!csav
4 w8 ^8 _8 K( t: z& [% l @c_wnd
9 m, [* `9 A- b( g6 g. V #now switch to c_wnd which is the absolute winding c calculation/ b- e3 @, I6 Y. j. ?7 e
#modify for shortest direction if toolchange or toolplane9 n- H# K; [& w( h9 h+ J2 o
#but not with axis subs
9 ?4 h4 f+ ]3 C; B6 D/ a* [3 i+ b if c_axistype <> three," e; q9 ?/ I+ s
[
' h# x2 P i8 }: A( u if abs(prvc_wnd - c_wnd) > 180# U7 P5 V. ~9 ~
& (toolchng | (y_axis & cuttype < four)),$ d& H* w8 n9 O% t; ~1 w
[% V# S; ~3 s& |& Y5 U
while abs(prvc_wnd - c_wnd) > 180,& N% B3 A$ L+ B1 x7 P c. q1 K
[
/ J4 W) P8 j+ k2 [# x s0 ` if prvc_wnd > c_wnd, rev = rev + one9 Z& {% Y7 L, o$ F
else, rev = rev - one
8 |* ~. Z0 z1 [* Y. Z" G% N c_wnd = rev * 360 + csav! |& X* U( Q7 u. v4 Y
]
* ^) M# K# U+ }9 ] @c_wnd
* o _) A+ {+ C6 ~" ?5 k' R7 g ]
7 d8 @/ p. `1 M5 E7 V ]
- e7 ~( z8 H; k. L$ S
1 ~2 q( D6 V' \' a3 r6 Fpindxcalc #index move calculations, direction is shortest exc. asub
" |, s' S2 \/ V6 \ if pnt_at_zero | cdelta = zero, indx_mc = prv_indx_mc% ?3 u: p2 T2 i
else,
; p2 ]5 n$ x& ~" [# V9 C6 R7 Z [
, U' d) q1 e4 Q9 K6 U4 l- { cdelta = fmtrnd(c_wnd) - prvc_wnd7 K' Z! N$ H# @0 y3 x$ y% U
if cuttype = four, #just look at the direction, R! P% n0 G& b* D
[0 c& [; P9 H* B: ~) s# P
if cdelta >= zero, indx_mc = one
4 D! S4 f& K2 x& I: M else, indx_mc = zero
# ]" `9 T4 @0 [! J) ^ \. Y/ X ]
; _/ H m1 _ S else,) U2 b# }4 i8 s+ o/ R# t" L( a+ l
[
" n! v4 V7 G+ q8 X& c #phase shift delta 10 revolutions, check odd/even for direction7 U" w9 `' \; Z* P9 d2 ]; a
if frac(int((cdelta + 3600)/180)/two), indx_mc = zero% }; M0 R. n0 E4 U9 e# V# ]
else, indx_mc = one r- m \5 L. c0 `0 s
]
+ @1 x i1 b* ^! k4 a1 y% f ]
& ]) n) b- {1 t #set range 0-360* J1 Z( Z4 `$ Z- ]
while cabs < zero, cabs = cabs + 360
4 i- M2 b% }- Z while cabs > 360, cabs = cabs - 360% b0 s$ Q& W- H2 V k! a0 _
2 S7 q( ]- J, i0 I0 R' F3 v7 G
3 Z1 d* \. f2 g ?& W* G5 U
|
|