Задача:
Этот текст
...
X13.41Y-24.94
G00Z5.00
G00X7.28Y-33.17
G01Z0.00F600
G02X6.45Y-32.08I3.88J3.86
...
Необходимо добавить параметр G5 в начало строк начинающихся с координат (X или Y), и разделить параметры пробелом. Что бы вышло вот так.
...
G5 X13,1 Y-24,94
G0 Z5,00
G0 X7,28 Y-33,17
G1 Z0,00
G2X 6,45 Y-32,08 I3,88 J3,86
...
Использую:
Regex regex = new Regex(@"\.");
textBox1.Text = regex.Replace(textBox1.Text, ",");
Regex regzero = new Regex(@"F600");
textBox1.Text = regzero.Replace(textBox1.Text, "");
Regex regGX = new Regex(@"^X");
textBox1.Text = regzero.Replace(textBox1.Text, "G5X");
Regex regX = new Regex(@"X");
textBox1.Text = regzero.Replace(textBox1.Text, " X");
Regex regY = new Regex(@"Y");
textBox1.Text = regzero.Replace(textBox1.Text, " Y");
Regex regI = new Regex(@"I");
textBox1.Text = regzero.Replace(textBox1.Text, " I");
Regex regJ = new Regex(@"J");
textBox1.Text = regzero.Replace(textBox1.Text, " J");
Отрабатывает только 2 первых выражения...
Как можно решить эту проблему и в чем моя ошибка?
P.S.
По факту это блок программы, который не работает, в идеале, необходимо умножить значение каждого параметра на 1000 и заменять X и Y на разницу с их последними значениями(перевод абсолютных координат в относительные). ΔX=X1-X0, Y соответственно. И заменить строки G1 Z0,00 и G0 Z5,00 на M98P0002 и M98P0003.Выйти должно вот так
...
G5 X13100 Y-24940 //предположим, что это стартовые координаты
M98P0002 //заменяем G00Z5.00 на M98P0002
G0 X-5820 Y-9230 //положение этих координат относительно предыдущих
M98P0003 //заменяем G01Z0.00 на M98P0003
G2X -830 Y-1090 I3880 J3860 //параметры I и J менять не нужно, только *1000
...
Без комментариев
...
G5 X13100 Y-24940
M98P0002
G0 X-5820 Y-9230
M98P0003
G2X -830 Y-1090 I3880 J3860
...