Ejemplo n.º 1
0
        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!");
            }
        }
Ejemplo n.º 2
0
 public GCodeFile GCodeFromMesh(DMesh3 mesh, out GCodeGenerationDetails details, CancellationToken?cancellationToken = null)
 {
     return(GCodeFromMesh(
                mesh: mesh,
                details: out details,
                settings: Settings,
                cancellationToken: cancellationToken));
 }
Ejemplo n.º 3
0
        protected void GenerateGCode(DMesh3 mesh, out GCodeFile gcode, out GCodeGenerationDetails details)
        {
            ConsoleWriteSeparator();
            logger.WriteLine($"GENERATION");
            logger.WriteLine();

            gcode = printGeneratorManager.GCodeFromMesh(mesh, out details);
        }
Ejemplo n.º 4
0
        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.");
        }
Ejemplo n.º 5
0
        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));
        }
Ejemplo n.º 6
0
 public GCodeFile GCodeFromMesh(DMesh3 mesh, out GCodeGenerationDetails details, TPrintSettings settings = null, CancellationToken?cancellationToken = null)
 {
     return(GCodeFromMeshes(new DMesh3[] { mesh }, out details, settings, cancellationToken: cancellationToken));
 }