Помогите. Циклы IF, ENDIF
Доброго времени суток, господа ЧПУшники. Работал на Mazak бед не знал, решил попробовать китайский станок TimeWay, с непонятной стойкой, больше закос под Сименс. Пока ждём оснастку, решили сделать кубики, и прочее. И вот возник вопрос. Как с циклами IF, ENDIF и соответственно с двумя переменными пишутся программы чтобы по плоскости прошло, потом опустился по Z, и повторил. Буду премного благодарен.
.
.
.
P.S. Всем спасибо . Вопрос решил. Методом подбора но пришел к верному решению. Скину в коммент. Если кто сможет привести к более красивому и упрощенному виду, будет замечательно.
Я у себя всегда вот так пишу:
G90G21
S2000M3
#1=0 (СТАРТ Z - ШАГ)
#2=5 (ШАГ)
#3=-17. (КОНЕЧНЫЙ Z)
WHILE[#1GT#3]DO1 (ЦИКЛ. ПОКА #1 СТРОГО БОЛЬШЕ #3 ДЕЛАЕМ ТЕЛО ПРОГРАММЫ ДО EDN1)
#1=#1-#2 (УМЕНЬШАЕМ Z КАЖДЫЙ РАЗ НА ШАГ)
IF[#1LT#3]THEN#1=#3
(ЕСЛИ Z(#1) МЕНЬШЕ НАШЕГО КОНЕЧНОГО Z ТО СТАВИМ КОНЕЧНЫЙ)
(ЭТО НУЖНО ДЛЯ ТОГО, ЧТОБЫ ГАРАНТИРОВАННО ПРОХОДИТЬ ПРОХОД НА КОНЕЧНОМ Z. к ПРИМЕРУ, ЕСЛИ ЭТО УБРАТЬ, ТО КОНЕЧНЫЙ ПРОХОД У НАС БУДЕТ -15, А ДАЛЬШЕ ВЫХОД ИЗ ЦИКЛА. и НАМ НУЖНО БУДЕТ ЛИБО ПИСАТЬ wHILE[#1GE#3] И ПОДБИРАТЬ ШАГ, КРАТНЫЙ КОНЕЧНОМУ Z(#3) ИЛИ ДЕЛАТЬ КАК ТУТ С IF )
G0X100.Y0
G0Z50.
G0Z#1
G1X-100.F100
G0Z50
END1
M30
Можно гораздо проще с If, но опять же, нужно заморачиваться с кратностью или добавлять еще какие то проверки. Как то не универсально, еще и с goto
G90G21
S2000M3
#1=0 (СТАРТ Z - ШАГ)
#2=5 (ШАГ)
#3=-17. (КОНЕЧНЫЙ Z)
N999G0X100.Y0
G0Z50.
G0Z#1
G1X-100.F100
G0Z50
#1=#1-#2
IF[#1GE#3]THENGOTO999
M30