Мне нужно создать симулятор cn c, я использовал траекторию спирали для импорта модели и сделать некоторые преобразования, цель состоит в том, чтобы симулировать линию Gcode.
У меня есть кнопка, которая вызывает метод перемещения оси, я намеренно вызываю одно и то же движение снова и снова, мой код:
private void Button_Click(object sender, RoutedEventArgs e)
{
MoveX(100,25000);
MoveX(100, 25000);
MoveX(100, 25000);
MoveX(100, 25000);
MoveX(100, 25000);
MoveX(100, 25000);
MoveX(100, 25000);
MoveX(100, 25000);
MoveX(100, 25000);
MoveX(100, 25000);
MoveX(100, 25000);
MoveX(100, 25000);
MoveX(100, 25000);
MoveX(100, 25000);
MoveX(100, 25000);
MoveX(100, 25000);
MoveX(100, 25000);
MoveX(100, 25000);
MoveX(100, 25000);
MoveX(100, 25000);
}
private void MoveX(double amontX , double speed)
{
//speed = 1000; // mm/min
double resolution = 1;
double step = amontX/ amontX * resolution;
double delay = (60000/speed) ;
while (amontX > 0)
{
Transform3DGroup moveX = new Transform3DGroup();
moveX.Children.Add(axis_x.Transform);
TranslateTransform3D position = new TranslateTransform3D(step, 0, 0);
moveX.Children.Add(position);
axis_x.Transform = moveX;
amontX = amontX - 1;
Wait(delay);
}
}
private void Wait(double milliseconds)
{
if (milliseconds == 0) return;
DateTime _desired = DateTime.Now.AddMilliseconds(milliseconds);
while (DateTime.Now < _desired)
{
System.Windows.Forms.Application.DoEvents();
}
}
Проблема в том, что движение начинается хорошо, но начинает замедляться снова и снова, любая идея?
Извините, англи sh и c #, я не профессионал ни в одном
Спасибо