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);
        }
Beispiel #2
0
        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
            }
        }