public virtual GCodeFile GCodeFromPrintMeshAssembly(PrintMeshAssembly printMeshAssembly, out GCodeGenerationDetails details, TPrintSettings settings = null, CancellationToken?cancellationToken = null) { PlanarSliceStack slices = null; var globalSettings = settings ?? settingsBuilder.Settings; if (AcceptsParts) { SliceMesh(printMeshAssembly, out slices, globalSettings.Part.LayerHeightMM); } // Run the print generator logger.WriteLine("Running print generator..."); var printGenerator = new TPrintGenerator(); AssemblerFactoryF overrideAssemblerF = (globalSettings.MachineProfile as MachineProfileBase).AssemblerFactory(); printGenerator.Initialize(printMeshAssembly, slices, globalSettings, overrideAssemblerF); if (printGenerator.Generate(cancellationToken)) { details = new GCodeGenerationDetails(printGenerator.PrintTimeEstimate, printGenerator.MaterialUsageEstimate, printGenerator.Warnings); return(printGenerator.Result); } else { throw new Exception("PrintGenerator failed to generate gcode!"); } }
public GCodeFile GCodeFromMesh(DMesh3 mesh, out GCodeGenerationDetails details, CancellationToken?cancellationToken = null) { return(GCodeFromMesh( mesh: mesh, details: out details, settings: Settings, cancellationToken: cancellationToken)); }
protected void GenerateGCode(DMesh3 mesh, out GCodeFile gcode, out GCodeGenerationDetails details) { ConsoleWriteSeparator(); logger.WriteLine($"GENERATION"); logger.WriteLine(); gcode = printGeneratorManager.GCodeFromMesh(mesh, out details); }
protected virtual void OutputGenerationDetails(GCodeGenerationDetails generationDetails) { ConsoleWriteSeparator(); WriteStringCollection("TOTAL EXTRUSION ESTIMATE:", generationDetails.MaterialUsageEstimate); WriteStringCollection("TOTAL PRINT TIME ESTIMATE:", generationDetails.PrintTimeEstimate); WriteStringCollection("WARNINGS:", generationDetails.Warnings, ConsoleColor.Red); logger.WriteLine("Print generation complete."); }
public virtual GCodeFile GCodeFromMeshes(IEnumerable <DMesh3> meshes, out GCodeGenerationDetails details, TPrintSettings settings = null, CancellationToken?cancellationToken = null) { var printMeshAssembly = PrintMeshAssemblyFromMeshes(meshes); return(GCodeFromPrintMeshAssembly(printMeshAssembly, out details, settings, cancellationToken: cancellationToken)); }
public GCodeFile GCodeFromMesh(DMesh3 mesh, out GCodeGenerationDetails details, TPrintSettings settings = null, CancellationToken?cancellationToken = null) { return(GCodeFromMeshes(new DMesh3[] { mesh }, out details, settings, cancellationToken: cancellationToken)); }