public void Postprocess(string file) { string dir = Main.globalSettings.Workdir; if (Main.conn.runFilterEverySlice == false || postproc != null || dir.Length == 0) { SlicingInfo.f.Invoke(SlicingInfo.f.StopInfo); LoadGCode lg = Main.main.LoadGCode; Main.main.Invoke(lg, file); if (SlicingInfo.f.checkStartBoxAfterSlicing.Checked && Main.conn.connected) { Main.main.Invoke(Main.main.StartJob); } return; // Nothing to do } SlicingInfo.f.Invoke(SlicingInfo.f.PostprocInfo); // Copy file to work dir postprocessFile = file; string tmpfile = dir + Path.DirectorySeparatorChar + "filter.gcode"; File.Copy(file, tmpfile, true); // run filter string full = Main.conn.filterCommand; int p = full.IndexOf(' '); if (p < 0) { return; } string cmd = full.Substring(0, p); string args = full.Substring(p + 1); args = args.Replace("#in", wrapQuotes(tmpfile)); args = args.Replace("#out", wrapQuotes(file)); Main.conn.log(cmd + " " + args, false, 3); postproc = new Process(); postproc.EnableRaisingEvents = true; postproc.Exited += new EventHandler(PostprocessExited); postproc.StartInfo.FileName = Main.IsMono ? cmd : wrapQuotes(cmd); postproc.StartInfo.Arguments = args; postproc.StartInfo.UseShellExecute = false; postproc.StartInfo.RedirectStandardOutput = true; postproc.OutputDataReceived += new DataReceivedEventHandler(OutputDataHandler); postproc.StartInfo.RedirectStandardError = true; postproc.ErrorDataReceived += new DataReceivedEventHandler(OutputDataHandler); try { postproc.Start(); } catch (Exception e) { postproc = null; SlicingInfo.f.Invoke(SlicingInfo.f.StopInfo); MessageBox.Show("Error starting postprocessor:" + e.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } // Start the asynchronous read of the standard output stream. postproc.BeginOutputReadLine(); postproc.BeginErrorReadLine(); }
private async Task LoadAzureAsync(LoadOptions info) { using (var client = CreateHttpClient()) { info.FileContent = await File.ReadAllBytesAsync(info.FileName); var response = await client.PostAsJsonAsync(api, info); var gcode = await response.Content.ReadAsAsync <string[]>(); if (response.IsSuccessStatusCode) { var load = new LoadGCode(); load.Load(gcode); Commands.Clear(); Commands.AddRange(load.Commands); if (!string.IsNullOrEmpty(info.GCodeWriteToFileName)) { using (var sw = File.CreateText(Environment.ExpandEnvironmentVariables(info.GCodeWriteToFileName))) { load.WriteGCodeFile(sw); } } } } }
private void ConversionExited(object sender, System.EventArgs e) { LoadGCode lg = Main.main.LoadGCode; procConvert.Close(); procConvert = null; string gcodefile = StlToGCode(slicefile); Main.main.Invoke(lg, gcodefile); }
private void PostprocessExited(object sender, System.EventArgs e) { postproc.Close(); postproc = null; SlicingInfo.f.Invoke(SlicingInfo.f.StopInfo); LoadGCode lg = Main.main.fileAddOrRemove.LoadGCode; Main.main.Invoke(lg, postprocessFile); if (SlicingInfo.f.checkStartBoxAfterSlicing.Checked && Main.connection.connected) { Main.main.Invoke(Main.main.StartJob); } }
public async Task <IActionResult> Render([FromBody] PreviewGCode opt) { var gCodeDraw = new GCodeBitmapDraw() { SizeX = opt.SizeX, SizeY = opt.SizeY, SizeZ = opt.SizeZ, RenderSize = new Size(opt.RenderSizeX, opt.RenderSizeY), OffsetX = opt.OffsetX, OffsetY = opt.OffsetY, OffsetZ = opt.OffsetZ, Zoom = opt.Zoom, CutterSize = opt.CutterSize, LaserSize = opt.LaserSize, KeepRatio = opt.KeepRatio }; if (opt.Rotate3DVect != null && opt.Rotate3DVect.Count() == 3) { gCodeDraw.Rotate = new Rotate3D(opt.Rotate3DAngle, opt.Rotate3DVect.ToArray()); } var load = new LoadGCode(); load.Load(opt.Commands.ToArray()); var commands = load.Commands; var bitmap = gCodeDraw.DrawToBitmap(commands); var memoryStream = new MemoryStream(); bitmap.Save(memoryStream, ImageFormat.Png); memoryStream.Position = 0; var fileName = "preview.png"; return(File(memoryStream, this.GetContentType(fileName), fileName)); }
public async Task <IActionResult> Render([FromBody] PreviewGCode opt) { await Task.CompletedTask; var gCodeDraw = new GCodeBitmapDraw() { SizeX = opt.SizeX, SizeY = opt.SizeY, SizeZ = opt.SizeZ, RenderSize = new Size(opt.RenderSizeX, opt.RenderSizeY), OffsetX = opt.OffsetX, OffsetY = opt.OffsetY, OffsetZ = opt.OffsetZ, Zoom = opt.Zoom, CutterSize = opt.CutterSize, LaserSize = opt.LaserSize, KeepRatio = opt.KeepRatio, }; if (!string.IsNullOrEmpty(opt.MachineColor)) { gCodeDraw.MachineColor = System.Drawing.ColorTranslator.FromHtml(opt.MachineColor); } if (!string.IsNullOrEmpty(opt.LaserOnColor)) { gCodeDraw.LaserOnColor = System.Drawing.ColorTranslator.FromHtml(opt.LaserOnColor); } if (!string.IsNullOrEmpty(opt.LaserOffColor)) { gCodeDraw.LaserOffColor = System.Drawing.ColorTranslator.FromHtml(opt.LaserOffColor); } if (!string.IsNullOrEmpty(opt.CutColor)) { gCodeDraw.CutColor = System.Drawing.ColorTranslator.FromHtml(opt.CutColor); } if (!string.IsNullOrEmpty(opt.CutDotColor)) { gCodeDraw.CutDotColor = System.Drawing.ColorTranslator.FromHtml(opt.CutDotColor); } if (!string.IsNullOrEmpty(opt.CutEllipseColor)) { gCodeDraw.CutEllipseColor = System.Drawing.ColorTranslator.FromHtml(opt.CutEllipseColor); } if (!string.IsNullOrEmpty(opt.CutArcColor)) { gCodeDraw.CutArcColor = System.Drawing.ColorTranslator.FromHtml(opt.CutArcColor); } if (!string.IsNullOrEmpty(opt.FastMoveColor)) { gCodeDraw.FastMoveColor = System.Drawing.ColorTranslator.FromHtml(opt.FastMoveColor); } if (!string.IsNullOrEmpty(opt.HelpLineColor)) { gCodeDraw.HelpLineColor = System.Drawing.ColorTranslator.FromHtml(opt.HelpLineColor); } if (opt.Rotate3DVect != null && opt.Rotate3DVect.Count() == 3) { gCodeDraw.Rotate = new Rotate3D(opt.Rotate3DAngle, opt.Rotate3DVect.ToArray()); } var load = new LoadGCode(); load.Load(opt.Commands.ToArray()); var commands = load.Commands; var bitmap = gCodeDraw.DrawToBitmap(commands); var memoryStream = new MemoryStream(); bitmap.Save(memoryStream, ImageFormat.Png); memoryStream.Position = 0; var fileName = "preview.png"; return(File(memoryStream, this.GetContentType(fileName), fileName)); }
public async Task <IActionResult> Render(int id, [FromBody] PreviewGCode opt) { var port = await SerialPortList.GetPortAndRescan(id); if (port == null) { return(NotFound()); } var gCodeDraw = new GCodeBitmapDraw() { SizeX = opt.SizeX, SizeY = opt.SizeY, SizeZ = opt.SizeZ, RenderSize = new Size(opt.RenderSizeX, opt.RenderSizeY), OffsetX = opt.OffsetX, OffsetY = opt.OffsetY, OffsetZ = opt.OffsetZ, Zoom = opt.Zoom, CutterSize = opt.CutterSize, LaserSize = opt.LaserSize, KeepRatio = opt.KeepRatio }; if (opt.Rotate3DVect != null && opt.Rotate3DVect.Count() == 3) { gCodeDraw.Rotate = new Rotate3D(opt.Rotate3DAngle, opt.Rotate3DVect.ToArray()); } if (!string.IsNullOrEmpty(opt.MachineColor)) { gCodeDraw.MachineColor = System.Drawing.ColorTranslator.FromHtml(opt.MachineColor); } if (!string.IsNullOrEmpty(opt.LaserOnColor)) { gCodeDraw.LaserOnColor = System.Drawing.ColorTranslator.FromHtml(opt.LaserOnColor); } if (!string.IsNullOrEmpty(opt.LaserOffColor)) { gCodeDraw.LaserOffColor = System.Drawing.ColorTranslator.FromHtml(opt.LaserOffColor); } if (!string.IsNullOrEmpty(opt.CutColor)) { gCodeDraw.CutColor = System.Drawing.ColorTranslator.FromHtml(opt.CutColor); } if (!string.IsNullOrEmpty(opt.CutDotColor)) { gCodeDraw.CutDotColor = System.Drawing.ColorTranslator.FromHtml(opt.CutDotColor); } if (!string.IsNullOrEmpty(opt.CutEllipseColor)) { gCodeDraw.CutEllipseColor = System.Drawing.ColorTranslator.FromHtml(opt.CutEllipseColor); } if (!string.IsNullOrEmpty(opt.CutArcColor)) { gCodeDraw.CutArcColor = System.Drawing.ColorTranslator.FromHtml(opt.CutArcColor); } if (!string.IsNullOrEmpty(opt.FastMoveColor)) { gCodeDraw.FastMoveColor = System.Drawing.ColorTranslator.FromHtml(opt.FastMoveColor); } if (!string.IsNullOrEmpty(opt.HelpLineColor)) { gCodeDraw.HelpLineColor = System.Drawing.ColorTranslator.FromHtml(opt.HelpLineColor); } var hisCommands = port.Serial.CommandHistoryCopy.OrderBy(x => x.SeqId).Select(c => c.CommandText); var load = new LoadGCode(); load.Load(hisCommands.ToArray()); var commands = load.Commands; var bitmap = gCodeDraw.DrawToBitmap(commands); var memoryStream = new MemoryStream(); bitmap.Save(memoryStream, ImageFormat.Png); memoryStream.Position = 0; var fileName = "preview.png"; return(File(memoryStream, this.GetContentType(fileName), fileName)); }