|
|
发表于 2022-9-10 08:06:24
|
显示全部楼层
如下基础红色标记处。" b/ O k# s+ o4 y9 V+ U# Q) j: t
. T2 j. ^! p @1 g! a# --------------------------------------------------------------------------
8 l) A1 F3 }8 m) G" p% i j) c# l# Parameter read postblocks:" \: h* ^7 p/ Q6 n. I0 a
# --------------------------------------------------------------------------
$ w2 V: x. _' ]3 f7 \- H8 h1 |pprep$ #Pre-process postblock - Allows post instructions after the post is parsed but before the NC and NCI file are opened., d" C6 {4 s f& S& f
param_read$ = 1 ----------------------------> here* n6 U, i: j1 u2 l7 a S. {
#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!5 H6 N6 {1 @5 e/ n& H. j
rd_mch_ent_no$ = 0 #Read only the machine base parameters (use to collect common parameters from CNC_MACHINE_TYPE)" J# ?& _7 B# O4 r
rd_md$ ----------------------------> here #Read machine definition parameters$ L) M, c. W7 s& d4 k
- P; f' o; e- g( Z' V5 r. m
#debug
2 S# Z* U2 O# E) a" l #error_msg$ = 0
1 W7 Y+ G b& M3 A: @3 A, E #err_file$ = 4
) m* ~3 T% c6 q& [ #bug2$ = 40# b4 F! T( K& L# w& s" x
#fastmode$ = no$+ v( i" Q; m* _2 z' V% n+ }
/ F( n) v a6 _) \7 o: P T
, L$ L% w: \, ^6 ^4 x" x$ M5 ]; w1 y( M
# --------------------------------------------------------------------------2 [# V) z% {! t" `& L% A2 v
psynclath$ #Read NCI Axis-Combination (950) line
* V& x+ v5 M# z+ O* \* P* b pset_mach ----------------------------> here#Set rotary switches by reading machine def parameters+ ~* [& z( q- j% Q0 V, K3 b) @) D
#Rotaxtyp = 1 sets initial matrix to top
9 p5 N7 Y2 h# A6 A" o- _, Q* ?5 s #Rotaxtyp = -2 sets initial matrix to front
9 C5 O. H( K$ i+ c if vmc, rotaxtyp$ = one
O( M1 ~) f8 I) [" v else, rotaxtyp$ = -2
( S8 I* X9 l5 ?' B8 m9 t: `( [0 ]
0 M! |+ w; z7 [4 G1 J) k7 \pset_mach #Set post switches by reading machine def parameters# j) C" b* o- B' s# E8 @
rot_ax_cnt = 0- L# @4 |0 g" _- ?. a+ |0 f
rotaxerror = 0
7 p) v2 n' z# d( F1 N& U f rot_on_x = 0 #Turn off rotary axis unless it is detected in machine read - supresses rotary output in 3 axis machines
( }) U0 e/ ]4 P/ v! }: Y
! y- w; P7 {% J7 [, H0 d% g) L rd_cd$ ----------------------------> here #Read control definition parameters - calls pmachineinfo$9 \" ], S9 A* L' m1 Q* y4 w4 w5 z1 [
#Output error message if Write NC operation information is not enabled in CD
5 F( S, D' O' \! P1 e #if write_ops = 0, result = mprint(swriteopserror,2), exitpost$
0 `% x1 {# j% @" T
( k$ n$ \1 R U4 D% s if sof = 1,
' F% f! j; \) g3 w [
& D, \( L- S3 }) b maxfeedpm = 999999 #Uncomment these variables to force use of machine def values as initial lowest max feedrate value& l4 ~! m' H9 f8 m% v) B1 [2 ? [* V
maxfeedpm_m = 9999999 #Otherwise the default (post) initialization setting is used as initial value o, F) G: u. a8 _$ s) b& n& \
#minfeedpm = 999999: D2 U4 u" A# S8 Q) n. P' J
#minfeedpm_m = 999999
' C7 k7 Y9 A2 X/ ^/ K/ u !maxfeedpm, !maxfeedpm_m #, !minfeedpm, !minfeedpm_m4 G. e$ s6 r! i
rd_mch_ent_no$ = 0
! o7 }) h# @( I3 ^3 F4 D rd_md$ ----------------------------> here #Read machine definition parameters - calls pmachineinfo$7 t% ^& z; d D, t# \
]; y p u) Z, ~7 W
' [* S* t7 \- ~5 x- N* W
rd_mch_ent_no$ = syncaxis$ ----------------------------> here #Retrieve machine parameters based on current axis combination - read from .nci G950 line- h# F& y0 o; Y0 u. F7 G- {
rd_md$ ----------------------------> here #Read machine definition parameters - calls pmachineinfo$; l* P& q! Z7 ~
rd_tlpathgrp$ ----------------------------> here# Read toolpath group parameters - calls pmachineinfo$
" I% q$ S' l1 Z# L k+ k
; A; P' ]- j. X) U rd_prm_op_no$ = op_id$% @! A+ T# P3 S3 Y0 r
rd_params$ ----------------------------> here #Read operaitons parameters- f/ w- Y, ~3 r' E( a- C; G
7 S; c( V6 Z' z" t' @1 o #We only need these set at toolchange (and start of file). No need to set them each time a user may call rd_md
. [& g6 n: r5 L; M if sav_rot_on_x = zero, rot_on_x = zero5 g0 r% ^4 Q4 M* ?4 g8 C$ s
else, rot_on_x = rot_axis
2 f" q1 c8 Z8 Y% W; ~) _ rot_cw_pos = rot_dir
! O: t! ^0 n- Z4 `$ K9 q index = rot_index
) q' B) q: o+ e% m q if rot_angle = zero, ctable = one #ctable zero will produce a divide by zero error, so force to one if zero in MD
. A8 r: T' K5 S. \ B else, ctable = rot_angle. d5 J$ n f0 \7 M3 x/ l8 y
' R" Y6 w: _8 ^! \, i& V if met_tool$ = 1,
) f/ s/ |3 h7 H0 c4 _ [: ?9 C) q/ Y) O3 ^& V. D
maxfrinv = maxfrinv_m #Set limit for feed inverse time
! u% i( a# K4 l+ P' S r( ` minfrinv = minfrinv_m- n- R% c2 y- v+ T7 c
maxfeedpm = maxfeedpm_m #Set limit for feed in mm/min
4 {1 n; I+ F* G i+ V, T minfeedpm = minfeedpm_m
3 L! Q' q+ r: ~+ [- y* v: J3 Q ]
6 l# x; f H- w1 R; m9 c
$ B0 f8 ^3 z: {& [1 G' M: h if use_md_rot_label, sav_srot_label = srot_label #Backup the original rotary axis label
( y& t3 ^0 N7 @5 f- S; q' L/ ?/ M# B4 s5 h! v1 _: w- F+ r* h( Q1 Y
# _; F) r; S8 O5 k+ X
+ A$ y+ }! `5 P. q- u- \: E |
|