Пример #1
0
        private void MoveAxis(char axis, bool rightOrUp)
        {
            double distance = double.Parse(txtDistance.Text);

            distance = rightOrUp ? distance : distance * -1;

            StringBuilder sb = new StringBuilder();

            switch (axis)
            {
            case 'x':
                sb = simpleMovements.MoveX(distance, feed);
                break;

            case 'y':
                sb = simpleMovements.MoveY(distance, feed);
                break;

            case 'z':
                sb = simpleMovements.MoveZ(distance, feed);
                break;
            }

            txtLog.Text = sb.ToString();
            SerialPortManager.ExecuteCommands(sb);
        }
Пример #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
            }
        }