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

Обсуждение аспектов работы с CAМ программами, подготовка моделей, настройка постпроцессоров, настройка параметров инструментов, обсуждение стратегий обработки, симуляция обработки. Вопросы по G-коду.

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

Сообщение atomichammer » 25 апр 2019, 10:24

Добрый день
Использую 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 принимает машинные координаты и поэтому вся обработка начинается от машинного нуля. А мне иногда хотелось бы начинать ее с произвольного места, т.е. где я обнулился.
Ну и вопрос: как это сделать?
atomichammer
Опытный
 
Сообщения: 136
Зарегистрирован: 20 янв 2017, 13:10
Откуда: Алматы
Репутация: 7
Настоящее имя: Anton

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

Сообщение Сергей Саныч » 25 апр 2019, 11:06

atomichammer писал(а):G10 принимает машинные координаты
G10 L2 - да. А G10 L20 - из текущей СК.
Например,
Код: Выделить всёРазвернуть
G10 L20 P0 X0. Y0.
обнулит X и Y.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Сергей Саныч
Мастер
 
Сообщения: 8497
Зарегистрирован: 30 май 2012, 14:20
Откуда: Тюмень
Репутация: 2663
Медальки:

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

Сообщение atomichammer » 25 апр 2019, 12:00

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

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

Сообщение atomichammer » 25 апр 2019, 12:14

Ну вышло как-то так:
Код: Выделить всёРазвернуть
#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

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


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

Кто сейчас на конференции

Зарегистрированные пользователи: Alka, Atom42, Bing [Bot], binom81, Google [Bot], Hamster13, Igor_Z, john1987887, Lavev, Mikhgen, MSN [Bot], NickSon, NikolayUa24, Ramunga, selenur, sergey65, shalek, sidor094, Taganrog, Teddi, Topman, UAVpilot, vala, vmarkiv, vtorkalo, Yandex [bot]

Reputation System ©'