post processor for KmotionCNC / help adjusting
hey, andre.
this might be a better place to work on this rather than emailing
i had emailed you last week about my lathe PPR but figured i would warm up on something already functioning ( my milling PPR )
it is a basic 3 axis knee mill with VFD spindle
i have chatbot helping me but we cant get it all worked out
1 i would like to have a G04 with a second per 1000 rpm commanded. can be rounded up to whole seconds
chatbot got me this but it does not add the dwell in the final G code
:SPINDLE = { $SPINDLE:SPIN (M03) eob
(G04 P$SPINDLE/1000) eob ; Dwell 1 second per 1000 RPM
}
2 trying to have a basic end of cycle details
:FINISH = {
(G00 Z0.5) (M05) (M09) (M30) EOB
}
3 a basic once over if i am missing or killing something usefull
THANKS
HTML Code:
TITLE:
:T1 = {
KmotionCNC Milling Controller
}
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}
:KARC = {" K"DDDDD.ddd} {" K"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:
:G2 = { G17 G18 G19 }
:G1 = { G00 G01 G02 G03 }
:G8 = { G73 G74 G76 G80 G81 G82 G83 G84 G85 G86 G87 G88 G89 }
: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
HELIX VECTOR
ARC QUADRANT
END:
MACROS:
#N = {}
#L = { [RAPID ? (G01) / (G00)] }
#FTYPE = { (G94) }
#X = { ($X:XAXIS) }
#Y = { ($Y:YAXIS) }
#Z = { ($Z:ZAXIS) }
#I = { $XCEN-$OLDX:XARC }
#J = { $YCEN-$OLDY:YARC }
#K = { $KCEN-$OLDK:KARC }
#R = { ($CCLDIST:RPLANE) }
#P = { if ( $CDELAY ne 0 ) then ($CDELAY:DWELL) endif }
#F = { ($FPM:FEED) }
#DWELL = { if ($CDELAY ne 0) then (G82) else (G81) 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
}
:XPROGNO = { "%" EOB $PROGNO:PROGNO EOB }
:UNITS = {
#N (G20) (G17) (G90) (G40) (G49) (G80) (G94) 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
}
:PPRINT = { #N $JOBTEXT EOB }
:RETRACT = { #N (G00) #Z eob }
:INSERT = { #N $JOBTEXT 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
#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 = { (G02) #CRC #X #Y #Z #I #J #CRCNO #F eob }
:GOACLW = { (G03) #CRC #X #Y #Z #I #J #CRCNO #F eob }
:DELAY = { $DELAY:DELAY eob }
:SPINDLE = { $SPINDLE:SPIN (M03) eob
(G04 P$SPINDLE/1000) eob ; Dwell 1 second per 1000 RPM
}
:FINISH = { (_M05) (_M09) EOB
(_M30) 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