Moderators: TomKerekes, dynomotion
-
turbothis
- Posts: 325
- Joined: Fri Mar 15, 2019 4:07 pm
- Location: southern oregon
Post
by turbothis » Fri Mar 15, 2024 11:21 pm
so i am needing to match up a new post processor for partsmaster/dolphing CAM to Kmotion CNC
i guess what common lathe would share the same PPR?
there is a drop down list of them to choose from
Code: Select all
T_3NE300_V11.ppr
T_802-BVDB-15-Aug-13.ppr
T_802S_BigDog-V11.ppr
T_810D-BTA-V11.ppr
T_AL20_HHAIN-V11.ppr
T_AL30_HHAIN-V11.ppr
T_AL30_SIEMENS-V11.PPR
t_anilam4200.ppr
T_BigLathe.ppr
T_BigLathe.ppx
T_BOXFRD_V11.ppr
T_CINC_FALCON-V11.ppr
T_Crus2-anembo-30-11-11.ppr
T_Crus2-anembo-30-11-11_V11.ppr
T_CRUS2L_V11.ppr
T_CTEK903_V11.ppr
T_CTEK903_V11.ppx
T_DEBUG.ppr
T_DSG_V11.ppr
T_DUMMY.PPR
T_Eagle-300-CLG-1-12-11_V11.ppr
T_Eagle-300-CLG-18-12-11_V10.ppr
T_EdingCNC_FTurret_10_Apr_15.ppr
T_EMC-14-Dec-09-V11.ppr
T_EMCO_V11.ppr
T_EMC_FTurret_V13_10Mar15.ppr
T_F0i_HOWCO_C_Jun2014.ppr
t_f0tc-expand-all-V11.ppr
T_F0tc_v11.ppr
T_F0T_V11.ppr
T_F18i_HOWCO_C_Jun2014.ppr
T_F20i_HOWCO_SH-V11.ppr
T_F21i_HOWCO_24-FEB-14.ppr
T_F21i_HOWCO_VERT_11Nov13.ppr
T_F21i_TC200-V11.ppr
T_F3TC_Armour_18_Aug2014.ppr
T_F3TC_V11.ppr
T_F5HYDR_V11.ppr
T_F6TR_V11.ppr
T_F6T_V11.ppr
t_fag800_V11.txt
T_Fagor-8055-V11.PPR
T_FEMCO_FANUC-V11.ppr
t_flashcut_lathe_v10-V11.ppr
t_flashcut_lathe_v10-V11.ppx
T_F_REVARC_VBORE-V11.ppr
T_GE1050_V11.ppr
T_GE2000_V11.ppr
T_GE550_V11.ppr
T_Haas-front-V11.ppr
T_Haas-TL1-V11-13Aug12.ppr
T_Haas_SL20-MPS_25Feb13_V11.ppr
T_Haas_SL30-V11.ppr
T_HAWK_FANUC-V11.ppr
t_hhain-V11.ppr
T_horiz1_V11.ppr
T_Hyundai_CNC_Lathe_22Aug2013.ppr
t_lx2_V11.ppr
t_lx3_V11.ppr
T_M378_V11.ppr
T_Mach3DcssT.ppr
T_Mach3DcssT.ppx
T_Mach3Rcss.ppr
T_MachLatheRadius_V11.ppr
T_MachLatheRadius_V11.ppx
T_MAXNCI_V11.ppr
T_MAXNC_V11.ppr
T_MSLT30_V11.ppr
T_New.ppr
T_New.ppx
T_OKUMA_V11.ppr
T_OLIVE_V11.ppr
T_PNC3_V11.ppr
T_S810T_V11.ppr
T_SIN3A_V11.ppr
T_Takisawa_Fanuc11T_V11_27Feb13.ppr
T_TRAUB_V11.ppr
T_Tsugami_Fanuc10T_V11_18Jan13.ppr
T_USB-CNC-V11.ppr
T_USB-CNC-V11.ppx
T_VBM-V12.ppr
T_VBORER_FANUC-V11.ppr
T_Wabeco-8-Apr-15.ppr
t_yang_17mar-V11.ppr
-
turbothis
- Posts: 325
- Joined: Fri Mar 15, 2019 4:07 pm
- Location: southern oregon
Post
by turbothis » Fri Mar 15, 2024 11:28 pm
chatbot says this is a good start with the parameters i gave it
Code: Select all
TITLE: Dolphin CAM to KMotionCNC Lathe Post Processor
VERSION:
FILEVERSION 1.0
WORDS:
:XAXIS = {"X"DDDDD.ddd" "}
:ZAXIS = {"Z"DDDDD.ddd" "}
:FEEDRATE = {"F"DDDDD.ddd" "}
:SPINDLE_CW = {"M03 S"DDDD" "}
:SPINDLE_CCW = {"M04 S"DDDD" "}
END:
AXES:
XSCALE 1
ZSCALE 1
TURRET
END:
GROUPS:
:G0 = {G0}
:G1 = {G1}
:G2 = {G2}
:G3 = {G3}
END:
MACROS:
#X = { $X:XAXIS }
#Z = { $Z:ZAXIS }
#F = { $FEEDRATE:FEEDRATE }
#CW = { $SPINDLE_CW }
#CCW = { $SPINDLE_CCW }
END:
RULES:
:START = { ; Start of the program }
(G90) ; Absolute positioning mode
(G20) ; Inch units mode
(G18) ; XZ plane selection
(G96) ; Constant surface speed mode
(G40) ; Cancel cutter radius compensation
(G80) ; Cancel canned cycles
(M05) ; Stop spindle
; Additional initialization commands can be added here
}
:END = { ; End of the program }
(M05) ; Stop spindle
(M30) ; Program end and reset
}
:MOVE = { ; Movement command }
#X #Z #F
}
:SPINDLE_CW = { ; Spindle clockwise command }
#CW
}
:SPINDLE_CCW = { ; Spindle counterclockwise command }
#CCW
}
END:
-
turbothis
- Posts: 325
- Joined: Fri Mar 15, 2019 4:07 pm
- Location: southern oregon
Post
by turbothis » Mon Mar 25, 2024 4:28 pm
ok, the guy at dolphin helped me and chatbot out and made a nice little post processor
i will use it over time and see if it needs more work or is just fine
Code: Select all
TITLE:
:T1 = {
CNC Lathe
Kmotion CNC Radius Mode Post
}
END:
VERSION:
FILEVERSION 15.0 TURNING
END:
WORDS:
:TMP = {DDDDDD.dd}
:BLOCK = {"N"DDDD" "}
:XAXIS = {" Z"DDDDD.ddd" "} {" Z"DDD.dddd" "}
:YAXIS = {" X"DDDDD.ddd" "} {" X"DDD.dddd" "}
:XARC = {"K"DDDDD.ddd" "} {"K"DDD.dddd" "}
:YARC = {"I"DDDDD.ddd" "} {"I"DDD.dddd" "}
:ARAD = {"R"DDDDD.ddd" "} {"R"DDD.dddd" "}
:DELAY = {"G04 P"DDD" "}
:DWELL = {"P"DDDD.dddd" "}
:PECK = {"Q"DDDDD.ddd" "} {"Q"DDD.dddd" "}
:NDEEP = {"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"ZDD}
:SUBPR = {"P"DDDD" "}
:REPEAT = {"L"DDDD" "}
:CRC = {"D"DD" "}
:TLC = {""ZDD" "}
:SURF = {"S"DDDD" "}
:SRAD = {"R"DDDD.ddI} {"R"DD.ddddI}
:INDEX = {"INDEX"DDD.ddd" "}
:PROGNO = {"O"DDDDD" "}
:NUM1 = {" "DDDD.dddd" "}
:ROT = {" "DD" "}
:TOOLD = {DDDDD.ddd} {DDD.dddd}
:SPDELAY = {"G04P"DDDD}
END:
AXES:
YSCALE 1
XSCALE 1
TURRET
END:
GROUPS:
:G1 = {G00_ G01_ G02_ G03_ }
:G2 = {G17_ G18_ G19_}
:G3 = {G90_ G91_ }
:G5 = {G48_ G93_ G94_ G95_ G96_ G97_}
:G6 = {G20_ G21_}
:G7 = {G40_ G41_ G42_}
:G10 = {G98_ G99_}
:M1 = {_M00 _M01 _M02}
:M2 = {_M03 _M04 _M05}
:M3 = {_M08 _M09}
END:
CYCLES:
NPECK EXPAND
NDEEP EXPAND
TURN EXPAND
FACE EXPAND
THREAD EXPAND
END:
MACROS:
#N = { NULL }
#L = { [RAPID ? (G01_) / (G00_)] }
#FTYPE = { [FEEDTYPE ? (G94_) / (G95_) ] }
#X = { $X:XAXIS }
#Y = { $Y:YAXIS }
#I = { $XCEN:XARC }
#K = { $YCEN:YARC }
#AR = { $ARCRAD:ARAD }
#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 }
#RAPID = { SET [RAPID] = 2 }
#FEED = { SET [RAPID] = 1 }
#SPIN = { ($SPINDLE:SPIN) [SPIN ? (M05_) / (M03_) / (M04_) ] }
#RPM = { ($SPINDLE:SPIN) }
#GCLW = {
IF ($USR11 EQ 0) THEN
(G02_)
ELSE
(G03_)
ENDIF
}
#GACLW = {
IF ($USR11 EQ 0) THEN
(G03_)
ELSE
(G02_)
ENDIF
}
#IPLANE = {
IF ([CRETRACT] EQ 2) THEN
(G99_)
ELSE
(G98_)
ENDIF
}
#CRC = {
; Only output G41/G42 if part surface is requested (PSPROG=2) which means the CNC
; has to offset the tool
IF ([PSPROG] EQ 2) THEN
[CUTCOM ? (G40_) / (G41_) / (G42_) ]
ENDIF
}
#CRCNO = {
IF ([PSPROG] EQ 2) THEN
($CRCNO:CRC)
ENDIF
}
#Q = { ABS($CDEPTH/$CNDEPTH):NDEEP }
#Q = { ABS($CDEPTH/$CNDEPTH):NPECK }
#UNSET = {
IF ((ABS($DELTAX) LT $USR8) AND (ABS($DELTAY) LT $USR8)) THEN
UNSETALL
ENDIF
}
END:
RULES:
:INIT = {
set $RAPIDFEED = 100 ; rapid feedrate
SET $USR2 = 0 ; ITINERANT
SET $USR3 = 0 ; DENOTES 2ND OR SUBSEQUENT TOOL
SET $USR11 = 1 ; Set to 1 if Proturn Arcs to be negated (dependant on tool)
SET $USR12 = 0 ; set for Arc direction fix for FRONT turret and TURN cycles.
SET $USR13 = 1.0 ; SCALE FACTOR TO COMPENSATE FOR ANGLES BEING WRONGLY SCALED IN INCH.
SET $USR14 = 0.0
}
:START = {
; start with N10, increment in 1s
SET $BLOCK = 1
set $INCR = 1
}
:ORIGIN = {
;#N (G92_) $ORIGINY:YAXIS $ORIGINX:XAXIS EOB
;unset :XAXIS
;unset :YAXIS
}
:RETRACT = { #N #L #Y #X EOB }
:UNITS = {
; G20/G21 = Inch/MM units
; G18 = XZ Plane
; G80 = Cancel modal motion (deactivates all move modalities)
; G90 = Absolute mode (G91 = Incremental mode)
#N (G18_) [UNITS ? (G21_) / (G20_)] (G80_) (G90_) EOB
; KAA - changed order to default IN so that the set is not needed 2x for each IN
; Sets MIN change in move for a program block to be written
SET $USR8 = 0.00005 ; default IN scale
set $usr13 = 25.4
IF ([UNITS] EQ 1) THEN
SET $USR8 = 0.0005 ; set MM scale
SET $USR13 = 1.0
ENDIF
}
:CUTCOM = {
IF (0 NE 0) THEN
; Only output G41/G42 if part surface is requested (PSPROG=2) which means the CNC
; has to offset the tool
IF ([PSPROG] EQ 2) THEN
[CUTCOM ? (G40_) / (G41_) / (G42_) ]
ELSE
(G40_)
ENDIF
#CRCNO EOB
ENDIF
}
:GOTO =
{
NULL ; "DISTANCE : " $DISTANCE:NUM1 EOB
IF ($DISTANCE GE $USR8) THEN
#N #CRC #CRCNO EOB
#N #L #Y #X #F EOB
ENDIF
}
:GOCLW = {
#UNSET
IF (([PSPROG] NE 2) OR ([CUTCOM] LT 2)) THEN
#N #CRC EOB
#N #GCLW #Y #X #AR #F EOB
ELSE
#N #CRC #CRCNO EOB
#N #GCLW #Y #X #AR #F EOB
ENDIF
}
:GOACLW = {
#UNSET
IF (([PSPROG] NE 2) OR ([CUTCOM] LT 2)) THEN
#N #CRC EOB
#N #GACLW #Y #X #AR #F EOB
ELSE
#N #CRC #CRCNO EOB
#N #GACLW #Y #X #AR #F EOB
ENDIF
}
:DELAY = { #N $DELAY:SPDELAY EOB }
:SCREWING = { #N "G32 " #Y #X #F EOB
UNSET (G5)
UNSET :FEED
}
:SELCTL =
{
UNSETALL
IF ($USR3 EQ 1) THEN
#N (_M05) (_M09) EOB
#N (_M00) EOB
" " EOB
" " EOB
ENDIF
SET $USR3 = 1
}
:SPINDLE =
{
#N #FTYPE EOB
#N #RPM [SPIN ? (_M05) / (_M03) / (_M04) ] EOB
SET $USR2 = $SPINDLE / 1000.0
IF ($USR2 LT 1) THEN
SET $USR2 = 1
ELSE
SET $USR2 = $USR2 + 0.999 ; Adding just under 1 to make sure we increment by 1 at every 1000 RPM step
SET $USR2 = INT($USR2) ; Convert to an integer, effectively achieving the ceiling effect
ENDIF
#N ($USR2:SPDELAY) EOB
" " EOB
" " EOB
}
:FINISH =
{
UNSETALL
#N (_M05) (_M09) EOB
#N (_M30) EOB " " EOB
}
END: