|
|
发表于 2022-9-10 08:06:24
|
显示全部楼层
如下基础红色标记处。
4 }" }; p$ k* `) o' j( e
* N5 ~6 K. t; u+ ?# --------------------------------------------------------------------------
4 i* ~1 W6 a1 Y% q# Parameter read postblocks:
3 u& s* |3 K* f% x, h* S* L# --------------------------------------------------------------------------, V9 e( K& u) D$ ^6 g2 N4 B
pprep$ #Pre-process postblock - Allows post instructions after the post is parsed but before the NC and NCI file are opened.
7 e8 ~; @' F% s. {* r6 U0 w param_read$ = 1 ----------------------------> here
7 C b" d8 j* V, k #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!- v" Q0 A7 I& j0 Q! \4 R+ S
rd_mch_ent_no$ = 0 #Read only the machine base parameters (use to collect common parameters from CNC_MACHINE_TYPE)* f; L& Q$ F7 a# h% ^
rd_md$ ----------------------------> here #Read machine definition parameters: P- k- {# I: U8 _
5 I L1 M7 S9 D: b* v; v
#debug
) T, _( H3 ~ e$ n! R; u& }) j #error_msg$ = 0
0 [3 j/ B* u1 t" e5 R6 Y #err_file$ = 4% D9 B5 L. z7 U( h
#bug2$ = 40
. l# a# [9 E7 S: e. Q. I* t- g #fastmode$ = no$
) N: U+ V6 i8 n- S% M, t- S5 ?$ b( }
( _" F: S1 e1 `6 I; n( a% @' }9 V- Z+ H* [$ F% U" p% Z
# --------------------------------------------------------------------------
; J+ u+ l. T/ `/ @: ipsynclath$ #Read NCI Axis-Combination (950) line1 \/ C9 T' |- P/ b q6 N3 r4 J
pset_mach ----------------------------> here#Set rotary switches by reading machine def parameters6 |* [1 y2 }' @4 I$ S
#Rotaxtyp = 1 sets initial matrix to top
v* i$ z2 F& J4 u" p( t7 Y" i #Rotaxtyp = -2 sets initial matrix to front
9 Y c& {* P8 _8 c if vmc, rotaxtyp$ = one
9 k3 c( m! }- @4 w else, rotaxtyp$ = -2
# E& A/ M( Z6 p# J# E s7 D3 E; i V) }' {: f3 O1 u4 M0 M" Q3 q" r2 u
pset_mach #Set post switches by reading machine def parameters( f$ \3 V4 c T7 I% k) }) A: Q
rot_ax_cnt = 0
3 W0 p3 J( g7 A/ o7 S9 I" F rotaxerror = 0
' P) E4 w+ y: S6 `" }# r6 | rot_on_x = 0 #Turn off rotary axis unless it is detected in machine read - supresses rotary output in 3 axis machines
6 D! r: p( Y) S8 S
, K0 F# b4 A% O/ t* B. P rd_cd$ ----------------------------> here #Read control definition parameters - calls pmachineinfo$
, u' b: A: ]5 H* ?1 B; T e- D #Output error message if Write NC operation information is not enabled in CD
0 t. m; ]+ ^% V #if write_ops = 0, result = mprint(swriteopserror,2), exitpost$
$ r0 z6 J3 {0 u) |( { p& _
- U3 W) [# u4 R$ d" m) o if sof = 1,/ c) A+ J% P3 N! r! J* ~. g/ R8 X
[+ `% H* r5 ]1 B( b* J
maxfeedpm = 999999 #Uncomment these variables to force use of machine def values as initial lowest max feedrate value
0 G8 G* t; u" F. Q0 k% [$ K maxfeedpm_m = 9999999 #Otherwise the default (post) initialization setting is used as initial value
4 I- S. M2 [7 r6 W2 D- J9 L: Q #minfeedpm = 9999993 u# @ c) p$ j+ O# b
#minfeedpm_m = 999999* V) V3 `# ^& W/ {
!maxfeedpm, !maxfeedpm_m #, !minfeedpm, !minfeedpm_m$ R2 n% D9 q5 H* u2 F
rd_mch_ent_no$ = 0
0 s8 B$ M; N5 h9 R/ w; i rd_md$ ----------------------------> here #Read machine definition parameters - calls pmachineinfo$
1 E1 v. E% w1 h) y8 @, c ]
$ U7 s# w9 Q, I# c
( P" z2 r# c+ R rd_mch_ent_no$ = syncaxis$ ----------------------------> here #Retrieve machine parameters based on current axis combination - read from .nci G950 line
. Z! Y/ _7 n; Q) p) Z8 O5 p* M; k rd_md$ ----------------------------> here #Read machine definition parameters - calls pmachineinfo$4 ?7 M- n! Q l1 a6 U! N( ^
rd_tlpathgrp$ ----------------------------> here# Read toolpath group parameters - calls pmachineinfo$
0 o- d! S. V7 r% t% E( @) g* }1 m! J _+ A2 _5 N
rd_prm_op_no$ = op_id$
+ ]. a! p$ L1 t3 S, G4 Q rd_params$ ----------------------------> here #Read operaitons parameters1 Q+ ^6 r1 N$ k3 T; i
6 v1 Y& r8 Z5 c Q, b8 B* f! j* J #We only need these set at toolchange (and start of file). No need to set them each time a user may call rd_md
$ ~; C* p* j3 s6 k$ p if sav_rot_on_x = zero, rot_on_x = zero0 I' T/ R+ l6 T/ P9 C: ]
else, rot_on_x = rot_axis2 Z. a% L9 \7 h0 `
rot_cw_pos = rot_dir
! q: m# R" J7 |6 u9 H index = rot_index
8 Y. ^) v, G9 M$ n, |9 E if rot_angle = zero, ctable = one #ctable zero will produce a divide by zero error, so force to one if zero in MD, f& `. x& \7 e* a7 v! L
else, ctable = rot_angle
% a ~$ a1 r/ N) g% R( O8 l5 y" M. p8 p7 [
if met_tool$ = 1,
) h0 y( U: S# \4 K! z! ~3 Y8 a7 ]7 e [- G% z; X7 I6 {! Q! d
maxfrinv = maxfrinv_m #Set limit for feed inverse time
0 v. M+ a5 H4 ~8 q( Y! A5 X minfrinv = minfrinv_m8 m2 ^' p% K: N# X3 R; j
maxfeedpm = maxfeedpm_m #Set limit for feed in mm/min. M6 K2 z. o0 w% o
minfeedpm = minfeedpm_m- Q2 w9 h# ]8 J+ z+ G
]* w( h/ p9 N% k) O& a& l n
% q8 E# O8 V* [5 f0 r$ {5 t if use_md_rot_label, sav_srot_label = srot_label #Backup the original rotary axis label/ S p+ [% |( m1 t) r
, i0 `1 }& z. o) c
& X2 V- y a# v5 l" n* A! K8 u+ m/ h: b9 _6 n! Y) C# I
|
|