trying to get my lathe cutting but need the dolphin to spit out some code to play with kmotion cnc
i see an incremental I J PPR in the PPR editor but for the life of me i cant use it from the dolphing cam
is this going to work out?
HTML Code:TITLE: :T1 = { MACH3 CNC Milling Controller Copyright (c) 2003 Dolphin CADCAM Ltd Modified to remove quadrant splitting in Arcs. nov 2013 mmm. } END: WORDS: :TMP = {DDDDDD.dd} :BLOCK = {"N"DDDD} :XAXIS = {"X"DDDDD.ddd} {"X"DDD.dddd} :YAXIS = {"Y"DDDDD.ddd} {"Y"DDD.dddd} :ZAXIS = {"Z"DDDDD.ddd} {"Z"DDD.dddd} :XARC = {"I"DDDDD.ddd} {"I"DDD.dddd} :YARC = {"J"DDDDD.ddd} {"J"DDD.dddd} :DELAY = {"G04X"DDDDD.ddd} :DWELL = {"P"DDDD.ddd} :PECK = {"Q"DDDDD.ddd} {"Q"DDD.dddd} :RPLANE = {"R"DDDDD.ddd} {"R"DDD.dddd} :FEED = {"F"DDDDD.dddI} {"F"DDD.dddd} :SPIN = {"S"DDDD} :TOOL = {"T"DD} :SUBPR = {"P"DDDD} :REPEAT = {"L"DDDD} :CRC = {"D"DD} :TLC = {"H"DD} :INDEX = {"INDEX"DDD.ddd} :PROGNO = {"O"DDDDD} END: GROUPS: :G1 = { G00 G01 G02 G03 } :G8 = { G73 G74 G76 G80 G81 G82 G83 G84 G85 G86 G87 G88 G89 } :G2 = { G17 G18 G19 } :G3 = { G90 G91 } :G4 = { G94 G95 } :G5 = { G20 G21 } :G6 = { G40 G41 G42 } :G7 = { G43 G44 G49 } :G9 = { G98 G99 } :G10 = { G54 G55 G56 G57 G58 G59 } :M1 = { M00 M01 M03 M04 M05 M06 } :M2 = { M98 M99 } END: CYCLES: DRILL CANNED DRILLDWELL CANNED DEEPDRILL EXPAND NDEEP CANNED NPECK CANNED PECKDRILL EXPAND NPECK CANNED REAM CANNED BORE CANNED TAP CANNED TAPNOREV EXPAND LHTAP EXPAND LHTAPNOREV EXPAND HELIX VECTOR END: MACROS: #N = { $BLOCK:BLOCK IF ($BLOCK EQ 9995) THEN SET $BLOCK = 5 ENDIF } #L = { [RAPID ? (G01) / (G00)] } #FTYPE = { [FEEDTYPE ? (G94) / (G95) ] } #X = { ($X:XAXIS) } #Y = { ($Y:YAXIS) } #Z = { ($Z:ZAXIS) } #IINC = { ($XCEN-$OLDX):XARC } #JINC = { ($YCEN-$OLDY):YARC } #IABS = { $XCEN:XARC } #JABS = { $YCEN:YARC } #R = { ($CCLDIST:RPLANE) } #P = { if ( $CDELAY ne 0 ) then ($CDELAY:DWELL) endif } #F = { [RAPID ? [FEEDTYPE ? ($FPM:FEED) / ($FPR:FEED) ] ] } #DWELL = { if ($CDELAY ne 0) then (G82) else (G81) endif } #DWREM = { if ($CDELAY ne 0) then (G89) else (G85) endif } #DWBOR = { if ($CDELAY ne 0) then (G88) else (G86) endif } #RAPID = { SET [RAPID] = 2 } #FEED = { SET [RAPID] = 1 } #IPLANE = { if ( [CRETRACT] eq 2 ) then (G99) else (G98) endif } #CRCX = { [CUTCOM ? (G40) / (G41) / (G42)] } #CRCNOX = { [CUTCOM ? NULL / ($CRCNO:CRC) / ($CRCNO:CRC) ] } #CRC = { NULL } #CRCNO = { NULL } #Q = { (ABS($CD1):PECK) } END: RULES: :INIT = { SET $USR1 = 0 SET $USR5 = 2.5 SET $BLOCK = 1 set $INCR = 1 set $RAPIDFEED = 10000 ; rapid feedrate } :PARTNO = { "( Produced :- " $TIME " " $DATE " )" EOB "( CNC File :- " $CNCNAME " )" EOB "( Post Processor :- " $POST " )" EOB "( Part Number ID :- " $JOBTEXT " )" EOB } :XPROGNO = { "%" EOB $PROGNO:PROGNO EOB } :UNITS = { #N (G00) [UNITS ? (G21) / (G20)] (G17) (G90) (G40) (G49) (G80) EOB IF ([UNITS] EQ 1) THEN SET $USR2 = 0.0005 set $PRECISION = 0.001 ELSE SET $USR2 = 0.00005 set $PRECISION = 0.0001 ENDIF } :STOP = { UNSETALL #N (M00) EOB } :OPSTOP = { UNSETALL #N (M01) EOB } :PPRINT = { #N $JOBTEXT EOB } :RETRACT = { #N (G00) #Z eob } :GOTO = { SET $USR3 = 0 IF ((ABS($DELTAX) GE $USR2) OR (ABS($DELTAY) GE $USR2)) THEN SET $USR3 = 1 ENDIF IF (($USR3 EQ 1) OR (ABS($DELTAZ) GE $USR2)) THEN #N #L #CRC IF ((ABS($DELTAX) GE $USR2) OR (ABS($DELTAY) GE $USR2)) THEN $X:XAXIS $Y:YAXIS ENDIF IF (ABS($DELTAZ) GE $USR2) THEN #Z ENDIF #CRCNO #F EOB ENDIF } :GOCLW = { #N (G02) #CRC #X #Y #Z #IINC #JINC #CRCNO #F eob } :GOACLW = { #N (G03) #CRC #X #Y #Z #IINC #JINC #CRCNO #F eob } :DELAY = { #N $DELAY:DELAY eob } :SPINDLE = { #N $SPINDLE:SPIN [SPIN ? NULL / (M03) / (M04) ] eob #N #FTYPE EOB } :FINISH = { #N (M09) EOB #N (M30) EOB "%" EOB } :SELCTL = { IF ($USR1 EQ 1) THEN #N (M09) EOB ENDIF SET $USR1 = 1 UNSETALL set $CYCLETIME = $CYCLETIME + 0.5 ; 30 seconds for a tool change if ( $Z ne $ZTLOAD ) then #N (G00) (G28) $ZTLOAD:ZAXIS eob #N (G49) EOB endif #N (G49) eob #N $TOOLNO:TOOL (M06) " ( " $JOBTEXT " )" eob #N (G00) (G43) $CLEARP:ZAXIS $TLCNO:TLC eob } :DRILL = { #N #IPLANE #DWELL #X #Y #Z #R IF ($CDELAY NE 0) THEN ($CDELAY:DWELL) ENDIF #F eob } :BORE = { #N #IPLANE #DWBOR #X #Y #Z #R IF ($CDELAY EQ 0) THEN ($USR5:DWELL) ELSE ($CDELAY:DWELL) ENDIF #F eob } :REAM = { #N #IPLANE #DWREM #X #Y #Z #R #F EOB } :TAP = {#N #IPLANE (G84) #X #Y #Z #R #F EOB } :NPECK = { #N #IPLANE (G83) #X #Y #Z #Q #R #F EOB } :NDEEP = { #N #IPLANE (G83) #X #Y #Z #Q #R #F EOB } :DRILLDWELL = :DRILL :COOLANT = {IF ([COOLANT] EQ 1) THEN #N (M09) EOB ENDIF IF ([COOLANT] EQ 2) THEN #N (M08) EOB ENDIF } :CYCLEOFF = { #N (G80) EOB UNSET (G8) unset :RPLANE unset :PECK UNSET (G9) UNSET :FEED UNSET :ZAXIS UNSET :DWELL } :GOHOME = { if ( $Z lt $CLEARP ) then #N (G00) (G80) $CLEARP:ZAXIS eob endif #N (G00) $XSAFPOS:XAXIS $YSAFPOS:YAXIS EOB #N (G00) (G28) $ZSAFPOS:ZAXIS eob #N (G49) EOB } :CLEARP = { if ($CLEARP lt $CLDIST) then ERRMSG "Clear plane is below Wsurf - DANGER" endif } END: