Циклы в программах для XNC

Ответить
Аватара пользователя
polivkos
Сообщения: 58
Зарегистрирован: 12 окт 2016 20:43

Циклы в программах для XNC

#1

Сообщение polivkos »

Добрый день!
Подскажите, пожалуйста, есть ли возможность в программах для XNC использовать циклы?
Например: мне нужно фрезой (именно шпинделем, а не сверлильной группой) сделать квадратную выборку размером (к примеру) 20х40мм на глубину 50мм.
Программу пишу прямо на станке. Так вот, первый проход указываю глубину 2мм и проходим по траектории 20х40, потом второй проход ZI+2 и снова повторяю программу(проход 20х40), потом ZI+2 и снова переписываю программу.
Возможно ли сделать типа:
пока 0<Z<[требуемая глубина, в нашем случае: 50]
выполняем фрезерование по траектории 20х40мм.

То есть в будущем мне может понадобиться сделать глубину не 50, а 70 к примеру и я тогда в программе меняю только 50 на 70, а траектории не трогаю.
А то простейшая программа превращается в огромного монстра на сотни строк.

Может не совсем внятно описал чего хочу, поэтому задавайте наводящие вопросы.
Аватара пользователя
111
Опытный
Опытный
Сообщения: 825
Зарегистрирован: 13 дек 2010 14:21
Благодарил (а): 25 раз
Поблагодарили: 21 раз

Re: Циклы в программах для XNC

#2

Сообщение 111 »

Аккурат над вашей темой есть тема с документацией.
Есть там и по программированию пдфка, может подсобит чем-то?
Rover B4.35 WRT2001 BW2.2 -> BW3.2.1
Rover 20 WRT2001 BW2.2 -> BW3.2.1
Rover 20 NC500
Аватара пользователя
polivkos
Сообщения: 58
Зарегистрирован: 12 окт 2016 20:43

Re: Циклы в программах для XNC

#3

Сообщение polivkos »

111 писал(а): 12 сен 2017 11:15 Аккурат над вашей темой есть тема с документацией.
Есть там и по программированию пдфка, может подсобит чем-то?
Спасибо за совет. НАсколько я разобрался, там содержится информация по циклам, которые зашиты в станок, то есть по макросам, которые можно вызывать из программы. С ними я уже сталкивался. Я хотел бы выяснить, может есть какой-то простой вариант написания циклов прямо в исполняемом файле программы, чтобы не залезать в недра станка. Что-то типа повторения части кода программы пока не достигнется условие. Пробую сейчас связать как-то те самые "системные" циклы с данными (читай - переменными) из программы, но пока не выходит.
Может есть еще варианты?
Аватара пользователя
Igor336
Сообщения: 45
Зарегистрирован: 15 сен 2016 11:17

Re: Циклы в программах для XNC

#4

Сообщение Igor336 »

Можно попробовать как то так - счетчик проходов нужен для того, что количество переходов ограничено, если это не учитывать будет выдаваться ошибка. И в фрагмент программы что то нужно подумать, если остается остаток глубины - к примеру припуск на проход 2 мм, а окончательная глубина 57 мм.
.....
N300 PF2=0 ;СЧЕТЧИК ГЛУБИНЫ
N310 PN1=0 ;СЧЕТЧИК ПРОХОДОВ
N320 PN2=50 ; глубина фрезеровки
:1
N330 G1 ZI2
N340 X40
N350 Y20
N370 X0
N380 Y0
N390 PF2=PF2+2 PN1=PN1+1
N440 JM!(PN1<=25):4
N450 JM!(PF2>=PN2):1
N460 JM:7
:4
N530 G1 ZI2
N540 X40
N550 Y20
N570 X0
N580 Y0
N590 PF2=PF2+2 PN1=PN1+1
N600 JM!(PF2>=PN2):4
:7
N700 .....
Аватара пользователя
polivkos
Сообщения: 58
Зарегистрирован: 12 окт 2016 20:43

Re: Циклы в программах для XNC

#5

Сообщение polivkos »

О! Уже пища для ума! Спасибо, буду пробовать и отпишусь о результате.
Аватара пользователя
Igor336
Сообщения: 45
Зарегистрирован: 15 сен 2016 11:17

Re: Циклы в программах для XNC

#6

Сообщение Igor336 »

заметил там косячок - если количество 25, и правильная глубина он все равно еще на 2 мм углубится. там еще нужно добавить проверку глубины, вообще цикл рабочий, только он шел по пласти, я быстренько выдернул фрагмент, ну и как всегда, быстро, значит мало думая... так что довести уже до ума Вам самим придется, а тот фрагмент - только как пример.
Аватара пользователя
polivkos
Сообщения: 58
Зарегистрирован: 12 окт 2016 20:43

Re: Циклы в программах для XNC

#7

Сообщение polivkos »

В общем, по прошествию полугода, нашел время затестить предложенный вариант. Долго бодался, но удалось достичь желаемого. Создал новый цикл G700, в который передаю значение переменных (параметры врезаемой фурнитуры в двери), и уже в самом цикле подхватываются нужные размеры и выполняется программа фрезерования. Вот выдержки из программ:
Программа фрезерования:
N10 CENT=1000.00 ; CENTER RUCHKI - положение ручки двери относительно оси Х (высота от пола)
N11 DP=57.50 ; DLINA PLANKI - длина декоративной части защелки
N12 SP=25.50 ; SHIRINA PLANKI - ширина декоративной части защелки
N13 TP=2.50 ; TOLSCHINA PLANKI - толщина декоративной части защелки
N14 DK=73.00 ; DLINA KORPUSA - глубина, на которую нужно утопить защелку (ее корпус, механизм)
N14 SK=27.00 ; SHIRINA KORPUSA +3 - ширина механизма+3мм, т.к. корпус имеет в сечении прямоугольник, а фреза оставляет углы закругленными
N14 TK=22.00 ; TOLSCHINA KORPUSA +3 - ширина механизма+3мм по тем же причинам
N14 OTR=43.00 ; OTSTUP 4-GRAN - расстояние от края полотна до центра четырехгранника ручки
N14 DF=10.00 ; DIAM FREZY - диаметр фрезы для автоматической перестройки программы при смене диаметра фрезы


=======



Теперь выдержка из цикла:
:1
N90 JM(VF<>0~VF<MVF):2
N100 VF=9
:2
N110 ANG=RDM("MANDRINO",ST1,"ANGZ")
N120 JM(ANG<>0):10
;
; -- FORO ORIZZ. NON INCLINATO
N130 Y=QY-SIC X=CENT
G0
N140 JM(QZ>0):3
;N140 QZ=LPZ/2
N150 QZ=PLPZ/2 ; PER CONTROSAGOMA DIM. Z ORA E' PLPZ E NON PIU' PLZ
:3
N160 Z=QZ-LPZ M1
N161 X=CENT M1
N170 Y=QY+0.2 FY=VF
N170 Y=TTP/5 FY=VF
N171 ZI=-(STP/2-DTF/2) G1
N172 XI=DTP/2-DTF/2 G1
N172 ZI=STP-DTF G1
N172 XI=-(DTP-DTF) G1
N172 ZI=-(STP-DTF) G1
N172 XI=DTP/2-DTF/2 G1
N172 ZI=STP/2-DTF/2 G1
;
N170 Y=TTP G1
N171 ZI=-(STP/2-DTF/2) G1
N172 XI=DTP/2-DTF/2 G1
N172 ZI=STP-DTF G1
N172 XI=-(DTP-DTF) G1
N172 ZI=-(STP-DTF) G1
N172 XI=DTP/2-DTF/2 G1
N172 ZI=STP/2-DTF/2 G1
;N180 Y=QY-SIC FY35
; OBRABOTKLA KORPUSA
N180 YI=1.00 FY=VF
N180 ZI=-(TTK/2-DTF/2) G1
N180 XI=-(STK/2-DTF/2) G1
N180 ZI=TTK-DTF G1
N180 XI=STK-DTF G1
N180 ZI=-(TTK-DTF) G1
N180 XI=-(STK/2-DTF/2) G1
N180 Y=0 G1
N300 PF2=0
N310 PN1=0
N320 PN2=DTK
:14
N180 YI=+1 G1
N180 XI=-(STK/2-DTF/2) G1
N180 ZI=TTK-DTF G1
N180 XI=STK-DTF G1
N180 ZI=-(TTK-DTF) G1
N180 XI=-(STK/2-DTF/2) G1
N180 PF2=PF2+1 PN1=PN1+1
;N180 JM!(PN1<=5):14
N180 JM(PF2<=PN2):14
N180 JM:141
:141
N190 Y=QY-SIC FY35
N190 FY60 VF=6 QZ=0
N200 JM(PUNS=1):11
N210 Z=-(LPZ+SUZ) M0
N220 TH0


=====
Правда, при сохранении изменений в программе ругается на бесконечный цикл, но работает исправно.
Буду рад, если кому-то пригодится, а если кто-то подскажет как эту канитель оптимизировать - так и еще больше рад. Спасибо всем откликнувшимся
Ответить

Вернуться в «XNC»