Hi,
I am trying to create a post-processor for Heidenhain iTNC 530 controller.
I have few questions in writing blocks to PP from Creo.
1. How to add BLK FORM 0.1 Z X-0 Y-0 Z-77 from CAD?
2. What options in option file generator or Creo has to be enabled/ disabled for M127, M129?
--
Dhinesh
1. Do you mean to have sequence numbers go 0.1, 0.2, 0.3 ...?
Have you tried with Start Sequence Number and Increment set to 0.1000000?
2. Looks like these are register to switch off special functions M126 and M128 on this machine, right? There is probably no standard function in GPOST.
But you can always insert a comment or CL Command into the toolpath and use FIL programming in the postprocessor to get triggered by this comment/command.
Then you can modify the output code, e.g. you may simply use an INSERT command to enter " M126" into the machine code.
Using FIL is a mighty tool to tweak the machine code to your needs, but it is not easy. But it is used in most sample postprocessors, so you may learn from them.
Koch,
That's actually a useful answer switching off functions.
But BLK FORM is associated with calculation of stock size, which I am clueless where and how to add.
I am able to generate the below out put where I can use FIL to edit seq numbers.
%
HEIDENHAIN DRILL PROG
N1 (Date:02/13/15 Time:11:53:29)
N2 M127
N3 M129
N4 T1 M6
N5 S1000 M3
N6 L0 X+80. Y+50. F M8
N7 Z+5. F
N8 L0 Z+1. F
N9 L1 X+80. Y+50. Z-25.258 F500.
N10 L0 Z+1. F
N11 Z+5. F
N12 M5
N13 M127
N14 M129
%
Also looking to customize output as attached.
10 L Z+100 R0 FMAX
11 CYCL DEF 240 CENTERING
Q200=2 ;SETUP CLEARANCE
Q343=1 ;SELECT DEPTH/DIA.
Q201=+0 ;DEPTH
Q344=-9 ;DIAMETER
Q206=250 ;FEED RATE FOR PLNGNG
Q211=0.1 ;DWELL TIME AT DEPTH
Q203=+20 ;SURFACE COORDINATE
Q204=100 ;2ND SETUP CLEARANCE
12 CYCL CALL POS X+30 Y+20 Z+0 FMAX M3
13 CYCL CALL POS X+80 Y+50 Z+0 FMAX
--
Dhinesh
Hi
try using this macro in your FIL
In XSIZE, YSIZE and ZSIZE you should have the 3 dimensions of your piece
Pass then to your INSERT/'BLK FORM ', xsize,' Y ....
Osvaldo
GETSIZ = MACRO /
$$ Macro to find the sheet size
$$ PPRINT / SIZE : xval X yval X thickness
$$ PPRINT before the first LOADTL
$$ Return OKSIZ 0:not found 1:found
$$
$$ Text variables
CTSIZE=TEXT/'SIZE'
COLON=TEXT/':'
XMULT=TEXT/'X'
$$
LPOS=POSTF(7,1)+1 $$ Current CL position
DO / ENDO1, ILOOP=1, 10
DMY=POSTF(14) $$ read next CL record
CLC=POSTF(7,2) $$ CL rec class
SCL=POSTF(7,3) $$ CL rec sub-class
IF (CLC.EQ.2000.AND.SCL.EQ.ICODEF(LOADTL))THEN
OKSIZ=0 $$ PPRINT/SIZE not found
ILOOP=11 $$ Exit the loop
ELSE
IF (CLC.EQ.2000.AND.SCL.EQ.ICODEF(PPRINT)) THEN
TPPR=TEXT/CLW $$ PPRINT text
TPPR=TEXT/OMIT,TPPR,1 $$ Omit trailing blanks
OKSIZ=INDXF(TPPR,TSIZE) $$ look for word SIZE
IF (OKSIZ.NE.0) THEN
ILOOP=11 $$ Exit the loop
$$
$$ Extract the sheet size PPRINT/ SIZE : xval X yval X zval
$$
ICOL=INDXF(TPPR,COLON) $$ Position of :
ILEN=CANF(TPPR,1) $$ Length of string
TPPR=TEXT/RANGE,TPPR,ICOL+1,ILEN $$ Extract after :
IX=INDXF(TPPR,XMULT) $$ Position of first X
STX=TEXT/RANGE,TPPR,1,IX-1 $$ Extract X value
ILEN=CANF(TPPR,1) $$ Length of string
TPPR=TEXT/RANGE,TPPR,IX+1,ILEN $$ extract second part after first X
ILEN=CANF(TPPR,1) $$ Length of string
IX=INDXF(TPPR,XMULT) $$ Position of first X
STY=TEXT/RANGE,TPPR,1,IX-1 $$ Extract Y value
STZ=TEXT/RANGE,TPPR,IX+1,ILEN $$ Extract Z value
$$ Debug : INSERT/'STX=',STX,'STY=',STY,'STZ=',STZ,'$'
$$ Conversion to real
XSIZE=SCALF(STX)
YSIZE=SCALF(STY)
ZSIZE=SCALF(STZ)
ELSE
ILOOP=1 $$ Continue the loop
ENDIF
ELSE
ILOOP=1 $$ Continue the loop
ENDIF
ENDIF
ENDO1) CONTIN
$$ return initial position in CL
RSLT=POSTF(15,CLPOS)
TERMAC