public void CreateGCodeFromStlFile() { var mesh = _stlReader.ReadStl(View.FileName); if (!_meshHelper.IsMeshManifold(mesh)) { return; } _meshHelper.CenterMesh(mesh); var layers = _slicer.Slice(mesh); var path = _pather.GeneratePath(layers); View.GCode = _generator.GenerateGCode(path); }
private void GenerateShapeCode(short typeGeometric, Geometric shape, bool simulate) { GCodeShapeFactory gcodeFactory = new GCodeShapeFactory(); IGCodeGenerator shapeGenerator = gcodeFactory.Build(typeGeometric); StringBuilder gCodeCmd = simulate ? shapeGenerator.GenerateSimulatorGCode(shape) : shapeGenerator.GenerateGCode(shape); if (gCodeCmd != null && gCodeCmd.Length > 0) { numberExpectedRespones = 0; txtLog.AppendText(gCodeCmd.ToString()); //GRBL returns ok/error for each line sent. This variable is used to know when the excecution has finished. numberExpectedRespones = gCodeCmd.ToString().Split('\n').Length - 1; SerialPortManager.ExecuteCommands(gCodeCmd); //TODO manage Input when GRBL Return error } }