|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
机床只能识别c轴0-360 四轴联动,负数就报警,该如何解决?
3 V- J; k2 X# X4 ]* y7 j+ h6 f我机床只能识别c轴0-3601 L& M' A6 ^& A$ R
是负数的时候就报警
4 N) d0 ~1 n% G0 {7 b有什么办法将mc出来的程序有这个范围吗
( k6 \+ y9 P, C+ w- \2 G2.159 y3.483 z-16.075 c-25.027 f16.20 G0 ~; e" k/ I- d: f0 M
x41.958 y3.776 z-16.001 c-25.27 f115.8: E; Z& ?# T/ p( Q& s" O* N8 X0 F
x41.771 y4.036 z-15.876 c-25.463 f97.6
9 l) z- @4 a w4 a) a1 rx41.506 y4.32 z-15.516 c-25.489 f8.6
/ c$ Z+ I% H( T) S6 E& cx41.473 y4.323 z-15.277 c-25.297 f121.1
7 C4 W8 h2 y! i$ Tx41.486 y4.276 z-15.06 c-25.13' J( J" q/ [' T6 g( C6 U
x41.562 y4.159 z-14.831 c-24.9146 D; k4 ]3 V1 r0 @- q1 W
x41.632 y4.065 z-14.543 c-25. f44.2
" a" P4 P/ ^- j, {2 A2 ]# z4 A6 I.
- X3 ?; c, E m# r1 x" b+ d# h.
- ?( r$ Y0 J$ `, d; ]( q.* M$ v7 v4 N- m
如果有什么软件能设置成c为-时通通都加360( |8 Z8 B8 O/ F5 y
那就可以了 盼望高手出现
4 l( v% ^9 X* z' n( J; c此问题在中国机械cad论坛我已做回复,现再次整理一下 ( ?6 v7 g- X1 G8 [8 l4 F
5 Y/ d$ f# ~# x! A" ~以下是本人的回复
% w7 v$ w3 L, T& M( j# t* ?可以的.该后处理可以做到, 9 w0 r) y/ M, g
需要修改的地方有几个,如下:
3 Q' K- O- j$ Z2 J! x( `6 g+ H" Q1.更改机器控制器,5 c' O& J! r& L; I, D6 y
2.后处理需要更改的地方,你查找下面的代码,就知道如何修改了,如下:0 W3 W: D4 t" E! U ]! @# R7 g
* F" k O* z% z0 T[hidden]pcoutrev #rotary axis revolution calculation (modify for wind-up)! m3 I ?% ?3 n
if cir_at_zero = one,7 |8 g5 }; X+ u2 l- b* f, T$ L) g
[2 ?- F% a$ s1 }! l; F1 L
#arcs at center position the c axis& a! v* L9 O& y- b; p1 ~8 R
if cuttype = -2| cuttype = three,
( g# p& y& P5 e F' E7 V- N csav = czero_csav - sweep$
) G" X( c/ N6 U K; V, t else, csav = czero_csav + sweep$
$ {, n- S$ s3 F czero_csav = csav! Q% x) |4 w5 g
]
4 Y+ `6 s. }* t5 J! b+ |: O' S, J. I2 s #c does not move going to cl" [2 q& ?# R+ Q9 t
if pnt_at_zero, csav = prv_csav# v( A( H. X9 t! j
cdelta = fmtrnd(csav) - prv_csav #this calculates once, for rev
6 D8 C3 ^6 P; J* W; X; q$ A7 B* H while abs(cdelta) > ctol & not(cir_at_zero), #if motion exceeds ctol, add wind-up
( ], Z% C9 I5 p- C, P* ] [
9 f- d% R# \# J) Q' g6 ^$ e( m1 X if cdelta > zero,
* y" A z) j6 a# K# Q7 K% {* J [) c( b, A; Y! T- C, _' |$ Z) |) A
rev = rev - one
) @. q0 W H$ p4 t& U cdelta = cdelta - 360
& F7 T1 `0 j8 n ]( g1 o+ h1 [/ v
else, K" h" h* N1 o6 N, G3 {+ K( y
[; e: l# q/ X5 E: y6 Q( T2 ]7 m
rev = rev + one# `9 v% B) v) e" `7 J+ z
cdelta = cdelta + 360
# F6 Q# S) V' }3 J3 O ]
/ ^' L3 G/ _$ |- }4 U ]6 J8 F% F2 j0 \& A4 |4 {
if cuttype <> four, c_wnd = rev * 360 + csav. N8 i0 v5 m% |3 ^8 l9 ?' l* R
else, c_wnd = sav_rev * 360 + csav) }( E) N0 a# Q
!csav
/ ~, } O) l/ V% Z4 w @c_wnd
8 a( l$ X. C( E5 _1 a3 Y #now switch to c_wnd which is the absolute winding c calculation
5 g$ p8 y# k4 _ #modify for shortest direction if toolchange or toolplane, ?1 l5 Z7 q: i" X
#but not with axis subs- d7 g5 L4 V; ?0 y9 J7 i
if c_axistype <> three,
9 U" ]3 X( a2 X- M$ R4 C$ Z$ D [ T( R0 y1 [; z& e
if abs(prvc_wnd - c_wnd) > 1800 N- O1 A7 J4 S- x% E5 e# S& }
& (toolchng | (y_axis & cuttype < four)),6 g- _8 l( t% u
[
8 O' g, H( s% g2 k9 |! a while abs(prvc_wnd - c_wnd) > 180,
% H% h9 Z9 `7 ]' U5 a9 y [! e' p2 D% W. b( n8 S
if prvc_wnd > c_wnd, rev = rev + one0 @5 E6 r4 e. C, @9 s0 l' F
else, rev = rev - one8 n$ J) r/ ?9 I2 ]/ e
c_wnd = rev * 360 + csav
' [; f$ J6 w g( M0 R# P ]
& M' `: P, _: x1 U r: A$ p& G @c_wnd9 V7 X; Z. u, X$ u
]
( E9 x. y4 ]2 \9 T- ^. M ]( a- L% F9 u# M+ _2 [
# R6 g7 J. S9 Q( n5 M9 hpindxcalc #index move calculations, direction is shortest exc. asub4 u% h$ o2 e; \6 D, |, C# e# W
if pnt_at_zero | cdelta = zero, indx_mc = prv_indx_mc( e$ J/ O3 _2 K, a9 r
else,
' d. [- L0 _6 v [
5 q4 {- t, S" U1 E, x! F( ^ cdelta = fmtrnd(c_wnd) - prvc_wnd8 ]' Q, M" ^# `3 T, H
if cuttype = four, #just look at the direction
- k, d5 x1 e' D: H) A* D9 p [
; O4 z+ ]* ?9 K3 m0 M) `$ a3 x7 f if cdelta >= zero, indx_mc = one
3 C+ v1 _3 u9 y* e) r else, indx_mc = zero
0 c; c" w6 F$ n ]
) [+ D0 {+ [9 j# m1 ~ else,! f; n; B7 Y' h" s! U. F( u
[
/ G2 E# D# F1 e #phase shift delta 10 revolutions, check odd/even for direction# s. O/ H7 o1 p& g% I! v" Z. @
if frac(int((cdelta + 3600)/180)/two), indx_mc = zero
8 _' L8 d" N: k! A3 N else, indx_mc = one
( x' F+ L- ?/ A4 e ]+ g; j& l' A5 j% x) v1 f
]
6 Y8 J7 O& v3 n #set range 0-360
* G+ E$ U% V3 F) M while cabs < zero, cabs = cabs + 360
0 u* {& ?/ V+ L while cabs > 360, cabs = cabs - 360! I* r$ x' b9 \! O, c9 K% A
- ~6 O; M' W5 ?3 e
) a: ?$ x9 t/ M- Q' a
|
|