thanks. ALMOST!
the (2) D0 D1 part worked. the rounding did not.
this is my fil file after your changes.
REDEF/ON $$ ALLOW SYMBOLS TO BE OVERWRITTEN
CYCFLG=0 $$ CREATE A SYMBOL = 0
FSTPNT=0 $$ CREATE A SYMBOL = 0
MNRWRD=0 $$ CREATE A SYMBOL = 0
CIRFLG=0 $$ CREATE A SYMBOL = 0
SIDE=0 $$ CREATE A SYMBOL = 0
SEQINC=0 $$ CREATE A SYMBOL = 0
mode=1
CIMFIL/ON,MACHIN $$ CAPTURE MACHIN
RSLT=POSTF(13) $$ SEND RECORD TO POST
SEQNO/OFF $$ TURN SEQUENCE NUMBERS OFF
INSERT/'(1)$' $$ WRITE BLOCK TO POST
CIMFIL/OFF $$ END MACHIN
CIMFIL/ON,LOADTL $$ CAPTURE LOADTL
CALL/SEQNUM $$ CALL SEQUENCE NUMBER MACRO
RSLT=POSTF(20) $$ SAVE RECORD
INSERT/'N',SEQ,'(9)' $$ OUTPUT N# (9)
REPEAT/20,5,1 $$ OUTPUT E1 WITH THE NEXT T
RSLT=POSTF(21) $$ LOAD SAVED RECORD
RSLT=POSTF(13) $$ SEND RECORD TO POST
RECNUM=POSTF(7,1) $$ CREATE A SYMBOL = THE CURRENT RECORD NUMBER
LIMIT=100000 $$ CREATE A SYMBOL = A LARGE NUMBER
DO/PRESEL,COUNT=1,LIMIT $$ CREATE A DO LOOP TO FIND CUTTER COMP
RSLT=POSTF(14) $$ READ NEXT RECORD
RECTYP=POSTF(7,2) $$ CREATE A SYMBOL = RECORD NUMBER
CASE/RECTYP $$ CREATE A CASE TEST
WHEN/14000 $$ WHEN EOF IS FOUND
RSLT=POSTF(15,(RECNUM+1)) $$ RETURN TO BEGINING
COUNT=(LIMIT+1) $$ EXCEED LIMIT
CMPCHK=0 $$ CREATE A SYMBOL = 0
WHEN/2000 $$ WHEN A STANDARD POST RECORD
WORD=POSTF(7,3) $$ CREATE A SYMBOL = MAJOR WORD
IF(WORD.EQ.ICODEF(CUTCOM))THEN $$ IF IT IS CUTCOM
RSLT=POSTF(15,(RECNUM+1)) $$ RETURN TO BEGINING
COUNT=(LIMIT+1) $$ EXCEED LIMIT
CMPCHK=1 $$ CREATE A SYMBOL = 1
ENDIF $$ END IF TEST
IF(WORD.EQ.ICODEF(SELECT))THEN $$ IF SELECT ID FOUND
FXTOFF=POSTF(7,4) $$ CREATE A SYMBOL = MINOR WORD
ENDIF $$ END ID TEST
IF(WORD.EQ.ICODEF(LOADTL))THEN $$ IF TOOL CHANGE IS FOUND
RSLT=POSTF(15,(RECNUM+1)) $$ RETURN TO BEGINING
COUNT=(LIMIT+1) $$ EXCEED LIMIT
CMPCHK=0 $$ CREATE A SYMBOL = 0
ENDIF $$ END ID TEST
ENDCAS $$ END CASE
PRESEL)CONTIN $$ END OD DO LOOP
CIMFIL/OFF $$ END LOADTL
CIMFIL/ON,SPINDL $$ CAPTURE SPINDL
RSLT=POSTF(2,1,1867,1) $$ SIMULATION ON
RSLT=POSTF(13) $$ SEND RECORD TO POST
RSLT=POSTF(2,1,1867,0) $$ SIMULATION OFF
CALL/SEQNUM $$ CALL SEQUENCE NUMBER MACRO
INSERT/'N',SEQ,'(1)M3$' $$ OUTPUT N# (1)M3
CIMFIL/OFF $$ END SPINDLE
CIMFIL/ON,COOLNT $$ CAPTURE COOLNT
RSLT=POSTF(2,1,1867,1) $$ SIMULATION ON
RSLT=POSTF(13) $$ SEND RECORD TO POST
RSLT=POSTF(2,1,1867,0) $$ SIMULATION OFF
CIMFIL/OFF $$ END COOLNT
CIMFIL/ON,CUTCOM $$ CAPTURE CUTCOM
RSLT=POSTF(2,1,1867,1) $$ SIMULATION ON
RSLT=POSTF(13) $$ SEND RECORD TO POST
RSLT=POSTF(2,1,1867,0) $$ SIMULATION OFF
COMP=POSTF(7,4) $$ CREATE A VARABLE = MINOR WORD
CASE/COMP $$ CREATE A CASE TEST
WHEN/ICODEF(LEFT) $$ WHEN LEFT
SIDE=1 $$ CREATE A SYMBOL = 1
WHEN/ICODEF(RIGHT) $$ WHEN RIGHT
SIDE=2 $$ CREATE A SYMBOL = 2
WHEN/ICODEF(OFF) $$ WHEN CANCELED
SIDE=3 $$ CREATE A SYMBOL = 3
ENDCAS $$ END CASE
CIMFIL/OFF $$ END CUTCOM
CIMFIL/ON,RAPID $$ CAPTURE RAPID
RSLT=POSTF(2,1,1867,1) $$ SIMULATION ON
RSLT=POSTF(13) $$ SEND RECORD TO POST
RSLT=POSTF(2,1,1867,0) $$ SIMULATION OFF
MODE=0 $$ CREATE A SYMBOL = 0
CIMFIL/OFF $$ END RAPID
CIMFIL/ON,FEDRAT $$ CAPTURE FEDRAT
RSLT=POSTF(2,1,1867,1) $$ SIMULATION ON
RSLT=POSTF(13) $$ SEND RECORD TO POST
RSLT=POSTF(2,1,1867,0) $$ SIMULATION OFF
MODE=1 $$ CREATE A SYMBOL = 1
CIMFIL/OFF $$ END FEDRAT
CIMFIL/ON,5,5 $$ CAPTURE GOTO
RSLT=POSTF(2,1,1867,1) $$ SIMULATION ON
RSLT=POSTF(13) $$ SEND RECORD TO POST
RSLT=POSTF(2,1,1867,0) $$ SIMULATION OFF
RATE=POSTF(1,3,104) $$ CREATE A SYMBOL = CURRENT FEED RATE
XLOC=POSTF(1,3,414) $$ CREATE A SYMBOL = CURRENT X
YLOC=POSTF(1,3,415) $$ CREATE A SYMBOL = CURRENT Y
ZLOC=POSTF(1,3,416) $$ CREATE A SYMBOL = CURRENT Z
IF(MODE.EQ.0.AND.CYCFLG.EQ.0)THEN $$ IF A RAPID MOVE ONLY
CALL/SEQNUM $$ CALL SEQUENCE NUMBER MACRO
INSERT/'N',SEQ,'(0)' $$ OUTPUT N# (0) NEXT TO...
POSTN/IN,24,XLOC,25,YLOC,26,ZLOC $$ X# Y# Z#
ENDIF $$ END IF TEST
IF(MODE.EQ.1.AND.CIRFLG.EQ.0.AND.CYCFLG.EQ.0.AND.CMPCHK.EQ.0)THEN $$ IF A FEED MOVE ONLY
CALL/SEQNUM $$ CALL SEQUENCE NUMBER MACRO
INSERT/'N',SEQ,'(1)' $$ OUTPUT N# (1) NEXT TO...
POSTN/IN,24,XLOC,25,YLOC,26,ZLOC,6,RATE $$ X# Y# Z# F#
ENDIF $$ END IF
IF(MODE.EQ.1.AND.CIRFLG.EQ.0.AND.CYCFLG.EQ.0.AND.CMPCHK.EQ.1)THEN $$ IF A COMP MOVE
CMPCHK=2 $$ CREATE A SYMBOL = 2
JUMPTO/SKIP $$ JUMP DOWN TO SKIP
ENDIF $$ END IF
IF(MODE.EQ.1.AND.CIRFLG.EQ.0.AND.CYCFLG.EQ.0.AND.CMPCHK.EQ.2)THEN $$ IF A COMP MOVE
CMPCHK=3 $$ SET A SYMBOL TO 3
ENDIF $$ END IF
IF(MODE.EQ.1.AND.CIRFLG.EQ.0.AND.CYCFLG.EQ.0.AND.CMPCHK.EQ.3)THEN $$ IF A COMP MOVE
CALL/SEQNUM $$ CALL SEQUENCE NUMBER MACRO
INSERT/'N',SEQ,'(1)X0/Y0/C0$' $$ OUTPUT N# (1)X0Y0C0
CALL/SEQNUM $$ CALL SEQUENCE NUMBER MACRO
INSERT/'N',SEQ,'(1)' $$ OUTPUT N# (1) NEXT TO...
POSTN/IN,24,XLOC,25,YLOC,6,RATE,3,SIDE $$ OUTPUT X# Y# F# C#
CALL/SEQNUM $$ CALL SEQUENCE NUMBER MACRO
INSERT/'N',SEQ,'(1)' $$ OUTPUT N# (1)
POSTN/IN,26,ZLOC,6,RATE $$ OUTPUT Z# F#
CMPCHK=0 $$ CREATE A SYMBOL = 0
ENDIF $$ END IF
IF(SIDE.EQ.3)THEN $$ IF SYMBOL = 3
CALL/SEQNUM $$ CALL SEQUENCE NUMBER MACRO
INSERT/'N',SEQ,'(1)X0/Y0/C0$' $$ OUTPUT N# (1)X0Y0C0
SIDE=0 $$ CREATE A SYMBOL = 0
ENDIF $$ END IF
SKIP) $$ JUMPTO LABEL
IF(MODE.EQ.1.AND.CIRFLG.EQ.1)THEN $$ IF A CIRCLE
CALL/SEQNUM $$ CALL SEQUENCE NUMBER MACRO
INSERT/'N',SEQ,'(2)D',DIR $$ OUTPUT N# (2)D0 OR (2)D1 NEXT TO...
INSERT/'X',XLOC,'Y',YLOC,'Z',ZLOC,'I',ILOC,'J',JLOC,'F',RATE,'$'
ENDIF $$ END IF
IF(CYCFLG.EQ.1)THEN $$ IF SYMBOL = 1 THEN
IF(FSTPNT.EQ.0)THEN $$ IF SYMBOL = 0 THEN
CALL/SEQNUM $$ CALL SEQUENCE NUMBER MACRO
INSERT/'N',SEQ,'(0)' $$ OUTPUT N# (0) NEXT TO...
POSTN/IN,24,XLOC,25,YLOC $$ X# Y#
ENDIF $$ END IF
FSTPNT=0 $$ CREATE A SYMBOL = 0
ENDIF $$ END IF
CIRFLG=0 $$ CREATE A SYMBOL = 0
CIMFIL/OFF $$ END GOTO
CIMFIL/ON,3 $$ CAPTURE CIRCLE
CIRFLG=1 $$ CREATE A SYMBOL = 1
RSLT=POSTF(2,1,1867,1) $$ SIMULATION ON
RSLT=POSTF(13) $$ SEND RECORD TO POST
RSLT=POSTF(2,1,1867,0) $$ SIMULATION OFF
ILOC=POSTF(7,9) $$ CREATE A SYMBOL = X ARC CENTER
JLOC=POSTF(7,10) $$ CREATE A SYMBOL = Y ARC CENTER
ILOC=TEXT/CONVF,ILOC,7,4,0,0,4 $$ ROUND X ARC CENTER TO 4 PLACES
JLOC=TEXT/CONVF,JLOC,7,4,0,0,4 $$ ROUND Y ARC CENTER TO 4 PLACES
IF(POSTF(7,14).EQ.-1)THEN $$ IF THE CIRCLE NORMAL IS -1,( RECORD 14 )
DIR=0 $$ CREATE A SYMBOL = 0 SO WE CAN OUTPUT (2)D0
ELSE $$ ELSE
DIR=1 $$ CREATE A SYMBOL = 1 SO WE CAN OUTPUT (2)D1
ENDIF $$ END IF TEST
CIMFIL/OFF $$ END CIRCLE
CIMFIL/ON,CYCLE $$ CAPTURE CYCLE
CALL/SEQNUM $$ CALL SEQUENCE NUMBER MACRO
RSLT=POSTF(2,1,1867,1) $$ SIMULATION ON
RSLT=POSTF(13) $$ SEND RECORD TO POST
RSLT=POSTF(2,1,1867,0) $$ SIMULATION OFF
DPTH=POSTF(7,6) $$ CREATE A SYMBOL = TOTAL DEPTH
FED=POSTF(7,8) $$ CREATE A SYMBOL = FEED RATE
INC=POSTF(7,10) $$ CREATE A SYMBOL = INCREMENT
PLG=POSTF(7,12) $$ CREATE A SYMBOL = PLUNGE CLEARANCE
TYPE=POSTF(7,4) $$ CREATE A SYMBOL = MINOR WORD
IF(TYPE.EQ.ICODEF(OFF))THEN $$ IF SYMBOL = OFF
CYCFLG=0 $$ SET SYMBOL = 0
ELSE $$ IF SYMBOL IS NOT = OFF
CYCFLG=1 $$ SET SYMBOL = 1
ENDIF $$ END TEST
SUBTYP=POSTF(7,4) $$ CREATE A SYMBOL = MINOR WORD
CASE/SUBTYP $$ TEST MINOR WORD
WHEN/ICODEF(DRILL) $$ WHEN DRILL
INSERT/'N',SEQ,'(0)' $$ OUTPUT N# (0)
POSTN/IN,24,XLOC,25,YLOC,26,DPTH,23,PLG,6,FED,7,1 $$ OUTPUT X# Y# Z# W# F# G1
WHEN/ICODEF(DEEP) $$ WHEN DEEP
INSERT/'N',SEQ,'(0)' $$ OUTPUT N# (0)
POSTN/IN,24,XLOC,25,YLOC,26,DPTH,11,INC,23,PLG,6,FED,7,3 $$ OUTPUT X# Y# Z# K# W# F# G3
WHEN/ICODEF(TAP) $$ WHEN TAP
INSERT/'N',SEQ,'(0)' $$ OUTPUT N# (0)
POSTN/IN,24,XLOC,25,YLOC,26,DPTH,23,PLG,6,FED,7,1 $$ OUTPUT X# Y# Z# W# F# G1
WHEN/ICODEF(REAM) $$ WHEN REAM
INSERT/'N',SEQ,'(0)' $$ OUTPUT N# (0)
POSTN/IN,24,XLOC,25,YLOC,26,DPTH,23,PLG,6,FED,7,2 $$ OUTPUT X# Y# Z# W# F# G2
WHEN/ICODEF(BORE) $$ WHEN BORE
INSERT/'N',SEQ,'(0)' $$ OUTPUT N# (0)
POSTN/IN,24,XLOC,25,YLOC,26,DPTH,23,PLG,6,FED,7,5 $$ OUTPUT X# Y# Z# W# F# G5
WHEN/ICODEF(OFF) $$ WHEN OFF
INSERT/'N',SEQ,'(0)' $$ OUTPUT N# (0)
POSTN/IN,7,0 $$ OUTPUT G0
ENDCAS $$ END CASE
FSTPNT=1 $$ CREATE A SYMBOL = 1
CIMFIL/OFF $$ END CYCLE
CIMFIL/ON,14 $$ CAPTURE END
RSLT=POSTF(2,1,1867,1) $$ TURN SIMULATION ON
RSLT=POSTF(13) $$ SEND BLOCK TO POST
RSLT=POSTF(2,1,1867,0) $$ TURN SIMULATION OFF
CALL/SEQNUM $$ CALL SEQUENCE NUMBER MACRO
INSERT/'N',SEQ,'(9)M30$' $$ OUTPUT N# (9)M30
RSLT=POSTF(2,1,1847,1) $$ TURN EOB CHARACTERS OFF
INSERT/'END$' $$ OUTPUT END
CIMFIL/OFF $$ END END
SEQNUM=MACRO $$ SEQUENCE NUMBER MACRO
SEQINC=SEQINC+1 $$ INCREMENT SYMBOL BY 10
SEQ=TEXT/CONVF,SEQINC,4,0,0,1,1 $$ TURN THE SYMBOL INTO A FORMATTED TEXT STRING
TERMAC $$ END MACRO
*****************************
this is the file it generated
*****************************
(1)$
N0001(9)T2M6E1$
N0002(1)M3$
N0003(0)X-1.4788Y-2.0571Z1.5$
N0004(0)X-1.4788Y-2.0571Z.1$
N0005(1)X-1.4788Y-2.0571Z-.1F20.$
N0006(2)D0X1.32959Y2.15653Z-.1I.0J.0F20$
N0007(2)D1X3.58369Y1.86965Z-.1I2.7728J4.4974F20$
N0008(2)D0X6.05111Y-2.41093Z-.1I4.3307J-.5512F20$
N0009(2)D1X5.94529Y-3.0021Z-.1I6.3893J-2.7765F20$
N0010(2)D0X4.37589Y-4.62664Z-.1I4.88J-3.5433F20$
N0011(2)D1X4.28724Y-4.66385Z-.1I4.3485J-4.6855F20$
N0012(2)D0X3.34646Y-5.32874Z-.1I3.3465J-4.3307F20$
N0013(1)X1.4567Y-5.3287Z-.1F20.$
N0014(2)D0X.52122Y-4.67849Z-.1I1.4567J-4.3307F20$
N0015(2)D1X-1.47875Y-2.05712Z-.1I-4.7798J-6.6493F20$
N0016(1)X-1.4788Y-2.0571Z-.2F20.$
N0017(2)D0X1.32959Y2.15653Z-.2I.0J.0F20$
N0018(2)D1X3.58369Y1.86965Z-.2I2.7728J4.4974F20$
N0019(2)D0X6.05111Y-2.41093Z-.2I4.3307J-.5512F20$
N0020(2)D1X5.94529Y-3.0021Z-.2I6.3893J-2.7765F20$
N0021(2)D0X4.37589Y-4.62664Z-.2I4.88J-3.5433F20$
N0022(2)D1X4.28724Y-4.66385Z-.2I4.3485J-4.6855F20$
N0023(2)D0X3.34646Y-5.32874Z-.2I3.3465J-4.3307F20$
N0024(1)X1.4567Y-5.3287Z-.2F20.$
N0025(2)D0X.52122Y-4.67849Z-.2I1.4567J-4.3307F20$
N0026(2)D1X-1.47875Y-2.05712Z-.2I-4.7798J-6.6493F20$
N0027(1)X-1.4788Y-2.0571Z-.27F20.$
N0028(2)D0X1.32959Y2.15653Z-.27I.0J.0F20$
N0029(2)D1X3.58369Y1.86965Z-.27I2.7728J4.4974F20$
N0030(2)D0X6.05111Y-2.41093Z-.27I4.3307J-.5512F20$
N0031(2)D1X5.94529Y-3.0021Z-.27I6.3893J-2.7765F20$
N0032(2)D0X4.37589Y-4.62664Z-.27I4.88J-3.5433F20$
N0033(2)D1X4.28724Y-4.66385Z-.27I4.3485J-4.6855F20$
N0034(2)D0X3.34646Y-5.32874Z-.27I3.3465J-4.3307F20$
N0035(1)X1.4567Y-5.3287Z-.27F20.$
N0036(2)D0X.52122Y-4.67849Z-.27I1.4567J-4.3307F20$
N0037(2)D1X-1.47875Y-2.05712Z-.27I-4.7798J-6.6493F20$
N0038(1)X-1.4788Y-2.0571Z1.5F20.$
N0039(1)M3$
$