# Simple GCode to KRL Parser import datetime import re FileName = ("wrench.nc") # File to convert. PathName = ("C:/Temp/") # Full directory path containing file. Remember to include the trailing slash. Use FORWRAD SLASHES / TimeStamp = str(datetime.datetime.now()) OutFileName = FileName.lower() OutFileName = OutFileName.replace(".nc", ".src") OutFileName = OutFileName.replace(" ", "_") R1File = open(PathName + OutFileName,"w") # Robot 1 output file # add headers and init to top of .SRC file R1File.write("&ACCESS RVO1"+"\r\n") R1File.write("&COMMENT "+"\r\n") R1File.write("DEF " + FileName + " ( )"+"\r\n") R1File.write(";FOLD INI"+"\r\n") R1File.write(";FOLD BASISTECH INI"+"\r\n") R1File.write("GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )"+"\r\n") R1File.write("INTERRUPT ON 3 "+"\r\n") R1File.write("BAS (#INITMOV,0 )"+"\r\n") R1File.write(";ENDFOLD (BASISTECH INI)"+"\r\n") R1File.write(";FOLD USER INI"+"\r\n") R1File.write(";Make your modifications here"+"\r\n") R1File.write(""+"\r\n") R1File.write(";ENDFOLD (USER INI)"+"\r\n") R1File.write(";ENDFOLD (INI)"+"\r\n") R1File.write("; Created by simple GCode to KRL Parser" + "\r\n") R1File.write("; From Source File: " + PathName + FileName + "\r\n") R1File.write("; On " + TimeStamp + "\r\n") R1File.write("$TOOL = TOOL_DATA[1]" + "\r\n") # assuming Tool 1 has been setup for physical tool -- MAY NOT BE CORRECT R1File.write("$BASE = BASE_DATA[1]" + "\r\n") # assuming Base 1 has been setup for physical jig -- MAY NOT BE CORRECT R1File.write("PTP $AXIS_ACT" + "\r" + "\n") InputFile = open(PathName + FileName, "r") for InLine in InputFile: OutLine = InLine.rstrip() OutLine = OutLine.lstrip() OutLine = OutLine.upper() if (("X" in OutLine) or ("Y" in OutLine) or ("Z" in OutLine)): if (OutLine.find("X") < 0): if (OutLine.find("Y") < 0): FirstIndex = OutLine.find("Z") else: FirstIndex = OutLine.find("Y") else: FirstIndex = OutLine.find("X") OutLine = OutLine[FirstIndex:] OutLine = OutLine.replace("X", "X ") OutLine = OutLine.replace("Y", ",Y ") OutLine = OutLine.replace("Z", ",Z ") if ("F" in InLine): OutLine = OutLine[: OutLine.find("F")] OutLine = "LIN {" + OutLine + "} " + "C_VEL " + "\r" + "\n" OutLine = OutLine.replace("{,", "{") #print OutLine R1File.write (OutLine) R1File.write("END" + "\r" + "\n") R1File.close() InputFile.close()