Перейти к содержанию
Авторизация  
Knopochnik-nub

Многозаходная резьба (зиги) на fanuc

Рекомендуемые сообщения

Доброго времени суток товарищи! Возникла необходимость написать программу многозаходной резьбы на токарном fanuc oi-tf. Вопрос вот в чем, дано число заходов-56, ход-132мм, резьба наружная, на диаметре 200мм, высота профиля резьбы 1+-0.15мм. Подскажите пожалуйста, как лучше написать программу и какие циклы использовать?

Поделиться сообщением


Ссылка на сообщение

Предположим, что есть подпрограмма, которая делает один проход на заданной глубине X для заданного числа заходов T до конечной точки Z.

%
O0017(multithread cut)
(G65 P17 X Z T F S)
(X - daim. prohoda)
(Z - konechnaya tochka)
(T - skolko zahodov)

S#19
#1=#5001
#2=#5002
IF[#20 LT #0] THEN #20=0
#3=#20
WHILE[#3 GT 0]DO1
#3=#3-1
G0 X#24
G32 Z#26 F#9 Q[360000/#20*#3]
G0 X#1
Z#2
END1
M99
%

Тогда ваша программа может выглядеть так

G0 X205. Z10.
G97 S12 M3
G65 P17 X199.4 Z-300. T56 F132.
G65 P17 X199.0 Z-300. T56
G65 P17 X198.7 Z-300. T56
G65 P17 X198.54 Z-300. T56
G65 P17 X198.4 Z-300. T56
G65 P17 X198.3 Z-300. T56
G65 P17 X198.2 Z-300. T56
G65 P17 X198.1 Z-300. T56
G65 P17 X198.0 Z-300. T56

Я не на работе и не могу проверить подпрограмму, поэтому пробный запуск лучше делать вдали от детали. Идеально, если есть деревяшка подходящих размеров для тестирования. Так же обратите внимание, что в приведенных примерах резьба режется двумя кромками резца равномерно, это может быть плохо при большой высоте профиля. Что бы избежать этого, можно понемногу смещать резец по оси Z перед каждым вызовом подпрограммы.

Поделиться сообщением


Ссылка на сообщение
15.12.2018 в 17:19, u235 сказал:

Предположим, что есть подпрограмма, которая делает один проход на заданной глубине X для заданного числа заходов T до конечной точки Z.

 


%
O0017(multithread cut)
(G65 P17 X Z T F S)
(X - daim. prohoda)
(Z - konechnaya tochka)
(T - skolko zahodov)

S#19
#1=#5001
#2=#5002
IF[#20 LT #0] THEN #20=0
#3=#20
WHILE[#3 GT 0]DO1
#3=#3-1
G0 X#24
G32 Z#26 F#9 Q[360000/#20*#3]
G0 X#1
Z#2
END1
M99
%
 

 

Тогда ваша программа может выглядеть так

 


G0 X205. Z10.
G97 S12 M3
G65 P17 X199.4 Z-300. T56 F132.
G65 P17 X199.0 Z-300. T56
G65 P17 X198.7 Z-300. T56
G65 P17 X198.54 Z-300. T56
G65 P17 X198.4 Z-300. T56
G65 P17 X198.3 Z-300. T56
G65 P17 X198.2 Z-300. T56
G65 P17 X198.1 Z-300. T56
G65 P17 X198.0 Z-300. T56
 

 

Я не на работе и не могу проверить подпрограмму, поэтому пробный запуск лучше делать вдали от детали. Идеально, если есть деревяшка подходящих размеров для тестирования. Так же обратите внимание, что в приведенных примерах резьба режется двумя кромками резца равномерно, это может быть плохо при большой высоте профиля. Что бы избежать этого, можно понемногу смещать резец по оси Z перед каждым вызовом подпрограммы.

У меня ошибка выскакивает. Ошибка формата оператора PS1138

Только взялся за эти зиги), у меня по G92 только получается многозаходная резьба. Именно с заданной точки по Z

Поделиться сообщением


Ссылка на сообщение
Дата: (изменено)
15.12.2018 в 17:19, u235 сказал:

Предположим, что есть подпрограмма, которая делает один проход на заданной глубине X для заданного числа заходов T до конечной точки Z.

 


%
O0017(multithread cut)
(G65 P17 X Z T F S)
(X - daim. prohoda)
(Z - konechnaya tochka)
(T - skolko zahodov)

S#19
#1=#5001
#2=#5002
IF[#20 LT #0] THEN #20=0
#3=#20
WHILE[#3 GT 0]DO1
#3=#3-1
G0 X#24
G32 Z#26 F#9 Q[360000/#20*#3]
G0 X#1
Z#2
END1
M99
%
 

 

Тогда ваша программа может выглядеть так

 


G0 X205. Z10.
G97 S12 M3
G65 P17 X199.4 Z-300. T56 F132.
G65 P17 X199.0 Z-300. T56
G65 P17 X198.7 Z-300. T56
G65 P17 X198.54 Z-300. T56
G65 P17 X198.4 Z-300. T56
G65 P17 X198.3 Z-300. T56
G65 P17 X198.2 Z-300. T56
G65 P17 X198.1 Z-300. T56
G65 P17 X198.0 Z-300. T56
 

 

Я не на работе и не могу проверить подпрограмму, поэтому пробный запуск лучше делать вдали от детали. Идеально, если есть деревяшка подходящих размеров для тестирования. Так же обратите внимание, что в приведенных примерах резьба режется двумя кромками резца равномерно, это может быть плохо при большой высоте профиля. Что бы избежать этого, можно понемногу смещать резец по оси Z перед каждым https://b.radikal.ru/b05/1901/f9/82e3ee312d73.jpg

https://b.radikal.ru/b05/1901/f9/82e3ee312d73.jpg

Изменено пользователем Knopochnik-nub
Нерабочая ссылка

Поделиться сообщением


Ссылка на сообщение
3 часа назад, Knopochnik-nub сказал:

У меня ошибка выскакивает. Ошибка формата оператора PS1138

Могу предположить, что при вводе в строке

WHILE[#3 GT 0]DO1

вы сделали ошибку

WHILE[#3 GT 0]D01

То есть вместо буквы O в DO1 написали цифру 0.

Поделиться сообщением


Ссылка на сообщение
3 часа назад, u235 сказал:

Могу предположить, что при вводе в строке


WHILE[#3 GT 0]DO1

вы сделали ошибку


WHILE[#3 GT 0]D01

То есть вместо буквы O в DO1 написали цифру 0.

Благодарю, скорее всего из-за этого. Вообще не волоку в параметрическом программировании. Буду учиться)

Можно, если не сложно, в кратце расшифровку подпрограммы?

#5001  и  #5002 как я понял- системные переменные (абсолютные значения) .

Мне что бы представление иметь хотя бы,для будущего

Поделиться сообщением


Ссылка на сообщение
5 часов назад, Knopochnik-nub сказал:

#5001  и  #5002 как я понял- системные переменные (абсолютные значения) .

Это положение по X и Z в системе координат заготовки в моменту выполнения предыдущего кадра.

Когда подпрограмма вызывается при помощи G65, то некоторым переменным диапазона #1-#33 присваивается начальное значение. Упрощенно - каждой букве параметров G65 соответствует своя переменная. Например, X - #24, Z -#26, T- #20. В данной подпрограмме это используется что бы задать диаметр нарезки, конечную точку по Z и количество ниток.

Поделиться сообщением


Ссылка на сообщение
Дата: (изменено)
26.01.2019 в 15:43, u235 сказал:

Могу предположить, что при вводе в строке


WHILE[#3 GT 0]DO1

вы сделали ошибку


WHILE[#3 GT 0]D01

То есть вместо буквы O в DO1 написали цифру 0.

Благодарю, скорее всего из-за этого. Вообще не волоку в параметрическом программировании. Буду учиться)

Можно, если не сложно, в кратце расшифровку подпрограммы?

#5001  и  #5002 как я понял- системные переменные (абсолютные значения) .

Мне что бы представление иметь хотя бы,для будущего

27.01.2019 в 01:46, u235 сказал:

Это положение по X и Z в системе координат заготовки в моменту выполнения предыдущего кадра.

Когда подпрограмма вызывается при помощи G65, то некоторым переменным диапазона #1-#33 присваивается начальное значение. Упрощенно - каждой букве параметров G65 соответствует своя переменная. Например, X - #24, Z -#26, T- #20. В данной подпрограмме это используется что бы задать диаметр нарезки, конечную точку по Z и количество ниток.

Программка пошла) Только теперь возвращается резец по тем же координатам, что проходит. И по Z на 3мм глубже идёт, чем задано. Начинает резать с Z 3. 

Изменено пользователем Knopochnik-nub

Поделиться сообщением


Ссылка на сообщение

Вобщем не вышло ничего путного. У меня там ходы по z ограничены очень сильно, нету места для разгона и торможения. Из-за этого заходы неравномерные получаются(

https://d.radikal.ru/d27/1901/58/c4ee88e505c3.jpg

Поделиться сообщением


Ссылка на сообщение

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу


×
×
  • Создать...

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.