|
|
发表于 2022-9-10 08:06:24
|
显示全部楼层
如下基础红色标记处。
2 x G% [* u; I u7 U- p" E9 X/ L& J/ U( R$ r
# --------------------------------------------------------------------------% L) e6 y& M* a8 @. M, H
# Parameter read postblocks:
; T- i# d% C; Q0 ?) ?# Y* e# --------------------------------------------------------------------------
! g5 y7 w. ]! e+ hpprep$ #Pre-process postblock - Allows post instructions after the post is parsed but before the NC and NCI file are opened.
% \* Y( o9 q3 |" d$ p. K/ k param_read$ = 1 ----------------------------> here" V7 x" F) C c6 V8 x
#DO NOT ATTEMPT TO OUTPUT TO THE NC FILE IN THIS POSTBLOCK (OR ANY POSTBLOCKS YOU MAY CALL FROM HERE) BECAUSE THE NC OUTPUT FILE IS NOT YET OPENED!6 i3 T! X- B& X9 C8 W
rd_mch_ent_no$ = 0 #Read only the machine base parameters (use to collect common parameters from CNC_MACHINE_TYPE)( l/ k; f) f% `8 Z& h7 d @& L
rd_md$ ----------------------------> here #Read machine definition parameters
. f% e! S# {+ _9 }' i6 i! H9 u8 W2 ?8 ?. f9 ?9 w m& z7 s$ ^& K
#debug
! ]8 [4 h4 g/ ?, P2 X/ o+ L) Y #error_msg$ = 0! U0 Q; O! m; e6 a' S, l; F
#err_file$ = 4& L$ m$ V: e _; y4 D# X
#bug2$ = 40/ ^3 U1 N& D/ e' K0 _8 N
#fastmode$ = no$& }3 B$ r$ `, D( ?
7 ^# e+ \, l. ^3 s& W* f( p, c) ^1 G6 l. e- F) E' R
3 F" h8 {6 B$ r7 ?; u) m# --------------------------------------------------------------------------( s- F1 e$ I5 y4 }
psynclath$ #Read NCI Axis-Combination (950) line9 j% ~7 o2 E* I" }
pset_mach ----------------------------> here#Set rotary switches by reading machine def parameters
* K; i) I* _4 h #Rotaxtyp = 1 sets initial matrix to top
9 @6 {+ G7 l' j5 H) f g; { #Rotaxtyp = -2 sets initial matrix to front
. t7 t3 g% O" A" X9 O if vmc, rotaxtyp$ = one0 }2 V2 k& @$ Q, b$ M# B
else, rotaxtyp$ = -2, n; k+ K6 e/ t9 v8 w. a& ]
9 p1 I3 t4 R& M; e* B2 U' j! x6 X% h
pset_mach #Set post switches by reading machine def parameters ^$ U5 n. H. J& c S
rot_ax_cnt = 05 o- A+ ?1 s3 W5 [/ V
rotaxerror = 0' @ l X9 [- i5 l$ q1 I) ]
rot_on_x = 0 #Turn off rotary axis unless it is detected in machine read - supresses rotary output in 3 axis machines5 ~" O: D4 O/ [) \9 e: k0 s8 C% t
, H! q. D5 s* \' n rd_cd$ ----------------------------> here #Read control definition parameters - calls pmachineinfo$5 N0 v4 @: N0 }
#Output error message if Write NC operation information is not enabled in CD
1 P$ t& X/ j% |2 ^ #if write_ops = 0, result = mprint(swriteopserror,2), exitpost$: W2 o- B9 L1 G1 O7 `
! h! o9 d' T( v0 q8 U
if sof = 1,
1 U+ s- |4 S: |! T# G3 ]2 Q [
; F: n7 Q$ J, }3 p2 G/ N maxfeedpm = 999999 #Uncomment these variables to force use of machine def values as initial lowest max feedrate value' G6 g4 h( z( X& v
maxfeedpm_m = 9999999 #Otherwise the default (post) initialization setting is used as initial value
" R/ k$ X) t! T# U #minfeedpm = 999999" z" W$ }1 m1 U/ g
#minfeedpm_m = 999999
& Y9 Y; l) S4 U$ i+ Q- S% K !maxfeedpm, !maxfeedpm_m #, !minfeedpm, !minfeedpm_m
6 O1 T" i. g6 ]( |* Z rd_mch_ent_no$ = 0
o7 b5 t& c7 v7 ^) Q rd_md$ ----------------------------> here #Read machine definition parameters - calls pmachineinfo$5 [. c# G+ K% k, C
]
. H3 D# A) s0 z
# l- U: [" h/ D x( E& i! s rd_mch_ent_no$ = syncaxis$ ----------------------------> here #Retrieve machine parameters based on current axis combination - read from .nci G950 line
0 [7 {" ^% M5 Y8 d rd_md$ ----------------------------> here #Read machine definition parameters - calls pmachineinfo$
0 s: J* S0 o5 ? rd_tlpathgrp$ ----------------------------> here# Read toolpath group parameters - calls pmachineinfo$
/ W: Y5 D5 A% N2 D8 J, b
+ J/ b' X" Q2 U$ K% q# F rd_prm_op_no$ = op_id$
( B$ g# Z9 N4 R: P5 ^1 d rd_params$ ----------------------------> here #Read operaitons parameters
7 T' }0 c6 E2 N, [+ n, i/ P. J4 U/ H0 o4 n! h _& A7 J$ w
#We only need these set at toolchange (and start of file). No need to set them each time a user may call rd_md
6 i" H! `# g5 U5 H% M* _ if sav_rot_on_x = zero, rot_on_x = zero4 w" n8 z0 p' p- o5 x3 c
else, rot_on_x = rot_axis
; _7 a3 [. a2 T" T$ [5 Y# f% I rot_cw_pos = rot_dir {3 M' s5 y, ^5 e
index = rot_index
$ t( k! u$ @: C5 U3 ~+ u: E if rot_angle = zero, ctable = one #ctable zero will produce a divide by zero error, so force to one if zero in MD$ O, |% X$ ] u, f7 O
else, ctable = rot_angle
0 c# j M, [3 t2 T
( q, {0 L, G% c% O( n, d6 F/ k E if met_tool$ = 1,0 d7 I# I8 k% {9 v
[
7 ^2 G) {5 {8 {& |( c( ~ maxfrinv = maxfrinv_m #Set limit for feed inverse time
$ e/ U. A' E; N- p* o* X4 J minfrinv = minfrinv_m
' c$ f# [! @) g. w$ t maxfeedpm = maxfeedpm_m #Set limit for feed in mm/min4 D H/ P2 [% x
minfeedpm = minfeedpm_m3 `% D$ Z& U$ [
]
! u4 W4 j: O& M B) N T
- j2 _) {! E7 M if use_md_rot_label, sav_srot_label = srot_label #Backup the original rotary axis label7 r/ e F2 D- {! w5 F, M
0 h8 `7 l9 W' r7 V: W& o7 `7 ?+ e1 l+ H! Q. |" p
$ Y+ P3 ?5 Q l9 M% z( r |
|