lathe post processor help for kmotion cnc
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:
shizuoka an-s knee mill=kflop/kanalog running nema 34 dc brushed servos
cincinnati sabre 750=kflop/kanalog building now with ac brushless servos