Example #1
0
        static void Main(string[] args)
        {
            const string filename = "20x20x20.sl1";
            FileInfo     file     = new FileInfo(filename);

            var p = new Program();

            var configuration = p.Extract(filename);

            GCodeWriter gCodeWriter = new GCodeWriter(configuration.config);

            gCodeWriter.WriteHeader();
            gCodeWriter.StartGCode();

            var     layerHeight        = (decimal)gCodeWriter.PrusaPrintConfig.LayerHeight;
            decimal currentLayerHeight = 0.0m;
            decimal currentLayer       = 1m;

            foreach (var image in configuration.images)
            {
                decimal zlevel = (currentLayer * layerHeight);
                gCodeWriter.Write();

                gCodeWriter.Write(new Comment()
                {
                    Value = $"LAYER_START:{currentLayer-1}"
                });
                gCodeWriter.Write(new Comment()
                {
                    Value = $"currPos:{zlevel}"
                });
                gCodeWriter.Write(new M6054()
                {
                    Value = image.Name
                });
                gCodeWriter.Write(new G0()
                {
                    Z = 5.0m + zlevel, F = 65
                });
                gCodeWriter.Write(new G0()
                {
                    Z = zlevel, F = 150
                });
                gCodeWriter.Write(new G4()
                {
                    Value = 0
                });
                gCodeWriter.Write(new M106()
                {
                    Value = 255
                });
                gCodeWriter.Write(new G4()
                {
                    Value = (currentLayer <= gCodeWriter.PrusaPrintConfig.NumFade ? gCodeWriter.PrusaPrintConfig.ExpTimeFirst * 1000 : gCodeWriter.PrusaPrintConfig.ExpTime * 1000)
                });
                gCodeWriter.Write(new M106()
                {
                    Value = 0
                });
                gCodeWriter.Write();
                gCodeWriter.Write(new Comment()
                {
                    Value = "LAYER_END"
                });
                gCodeWriter.Write();

                currentLayerHeight += layerHeight;
                currentLayer++;
            }
            var gcode = gCodeWriter.ToString();

            var data     = p.RebuildZipFile(gcode, configuration.images);
            var fileName = file.Name + ".zip";

            File.WriteAllBytes(fileName, data);
        }