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); }
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 } }