public string PreprocessGCode(string filename, PrinterInfo printerInfo, InternalPrinterProfile printerProfile, IPreprocessor processor, JobDetails bounds, int number) { var fileInfo = new FileInfo(filename); var directoryName = fileInfo.DirectoryName; var name = fileInfo.Name; var length = name.IndexOf('_'); string str; if (length > 0) { str = name.Substring(0, length) + "_" + number + "_" + processor.Name + "_processed.gcode"; } else { str = name.Substring(0, name.Length - fileInfo.Extension.Length) + "_" + number + "_" + processor.Name + "_processed.gcode"; } var gcodefilename = directoryName + Path.DirectorySeparatorChar.ToString() + str; var input_reader = new GCodeFileReader(filename); var output_writer = new GCodeFileWriter(gcodefilename); if (!processor.ProcessGCode(input_reader, output_writer, printerInfo.calibration, bounds, printerProfile)) { return(null); } input_reader.Close(); output_writer.Close(); return(gcodefilename); }
public bool RunProcessor(IPreprocessor processor, String inputFile, String outputFile) { var reader = new GCodeReader(inputFile); var writer = new GCodeWriter(outputFile); try { return(processor.ProcessGCode(reader, writer, getPrinterDetails(), getJobDetails())); } finally { reader.Close(); writer.Close(); } }