Использование G10 L2 Pn

Обсуждение аспектов работы с CAМ программами, подготовка моделей, настройка постпроцессоров, настройка параметров инструментов, обсуждение стратегий обработки, симуляция обработки. Вопросы по G-коду.
atomichammer
Опытный
Сообщения: 136
Зарегистрирован: 20 янв 2017, 13:10
Репутация: 7
Настоящее имя: Anton
Откуда: Алматы
Контактная информация:

Использование G10 L2 Pn

Сообщение atomichammer »

Добрый день
Использую LinuxCNC.
Хочу сделать нестинг (массив) деталей, для чего сляпал вот такой код (фрагмент):

Код: Выделить всё

#1 = 0 (initial X offset)
#2 = 0 (initial Y offset)
#3 = 1 (initial X counter value)
#4 = 1 (initial Y counter value)
#5 = 75 (X increment value)
#6 = 57 (Y increment value)
#7 = 3 (number of X copies)
#8 = 3 (number of Y copies)

(make inner milling)
O160 WHILE [#3 LE #7]
O170 WHILE [#4 LE #8]
G10 L2 P1 X#1 Y#2
o100 call
o110 call
o120 call
#2 = [#2+#6]
#4 = [#4+1]		(increment Y counter)
O170 ENDWHILE
#1 = [#1+#5]		(increment X offset)
#3 = [#3+1]		(increment X counter)
#2 = 0			(reset Y offset)
#4 = 1			(reset Y counter)
O160 ENDWHILE

#1 = 0
#2 = 0
#3 = 1
#4 = 1

(make outer contours)
O180 WHILE [#3 LE #7]
O190 WHILE [#4 LE #8]
G10 L2 P1 X#1 Y#2	(set working offset)
o130 call
#2 = [#2+#6]		(increment Y offset)
#4 = [#4+1]		(increment Y counter)
O190 ENDWHILE
#1 = [#1+#5]		(increment X offset)
#3 = [#3+1]		(increment X counter)
#2 = 0			(reset Y offset)
#4 = 1			(reset Y counter)
O180 ENDWHILE
G10 L2 P1 X0.000Y0.000	(reset all offsets)

M5
M30
Код, в общем-то, делает то, что мне надо, но есть один ньюанс: как я понимаю, G10 принимает машинные координаты и поэтому вся обработка начинается от машинного нуля. А мне иногда хотелось бы начинать ее с произвольного места, т.е. где я обнулился.
Ну и вопрос: как это сделать?
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

Re: Использование G10 L2 Pn

Сообщение Сергей Саныч »

atomichammer писал(а):G10 принимает машинные координаты
G10 L2 - да. А G10 L20 - из текущей СК.
Например,

Код: Выделить всё

G10 L20 P0 X0. Y0.
обнулит X и Y.
Чудес не бывает. Бывают фокусы.
atomichammer
Опытный
Сообщения: 136
Зарегистрирован: 20 янв 2017, 13:10
Репутация: 7
Настоящее имя: Anton
Откуда: Алматы
Контактная информация:

Re: Использование G10 L2 Pn

Сообщение atomichammer »

Ну это, конечно, вариант, но придется работать как в инкрементальных координатах... Ну раз по-другому нельзя
atomichammer
Опытный
Сообщения: 136
Зарегистрирован: 20 янв 2017, 13:10
Репутация: 7
Настоящее имя: Anton
Откуда: Алматы
Контактная информация:

Re: Использование G10 L2 Pn

Сообщение atomichammer »

Ну вышло как-то так:

Код: Выделить всё

#1 = 0 (initial X offset)
#2 = 0 (initial Y offset)
#3 = 1 (initial X counter value)
#4 = 1 (initial Y counter value)
#5 = 75 (X increment value)
#6 = 57 (Y increment value)
#7 = 3 (number of X copies)
#8 = 3 (number of Y copies)

(make inner milling)
O160 WHILE [#3 LE #7]
O170 WHILE [#4 LE #8]
o100 call
o110 call
o120 call
G0 X0 Y#6
G10 L20 P0 X0.000 Y0.000
#2 = [#2+#6]		(increment Y offset)
#4 = [#4+1]		(increment Y counter)
O170 ENDWHILE
G0 X#5 Y-#2
G10 L20 P0 X0.000 Y0.000
#1 = [#1+#5]		(increment X offset)
#3 = [#3+1]		(increment X counter)
#2 = 0			(reset Y offset)
#4 = 1			(reset Y counter)
O160 ENDWHILE

#1 = 0
#2 = 0
#3 = 1
#4 = 1
G0 X0Y0
G10 L20 P0 X[#5 * #7]
G0 X0Y0
(make outer contours)
O180 WHILE [#3 LE #7]
O190 WHILE [#4 LE #8]
o130 call
G0 X0 Y#6
G10 L20 P0 X0.000 Y0.000
#2 = [#2+#6]		(increment Y offset)
#4 = [#4+1]		(increment Y counter)
O190 ENDWHILE
G0 X#5 Y-#2
G10 L20 P0 X0.000 Y0.000
#1 = [#1+#5]		(increment X offset)
#3 = [#3+1]		(increment X counter)
#2 = 0			(reset Y offset)
#4 = 1			(reset Y counter)
O180 ENDWHILE

M5
M30
мож кому пригодится
Ответить

Вернуться в «CAM пакеты»