Перейти к публикации

параметр в подпрограмме


kopatych

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

Как передать в подпрограмму параметр? например у меня есть такая подпрограмма

%
G54 G90
T1 M6
G43 Z10 H1
#1=10.0(RADIUS)
#2=1.0(START)
#3=0.0(CENTR)
#4=0.0(CENTR)
#5=50(GLUBINA)
#6=0.5(SHAG)
G00 X#3 Y#4
Z0. M08
N100
G01 X#1.0 F100
G03 X#1.0 Z-#2 I-#1 J0
#2=#2+#6
IF[#2LE#5] GOTO 100
G03 X#1.0 I-#1 J0
G00 X#3 Y#4
Z50.0
M30
%

тут она еще не совсем подпрограмма это для примера. Так вот я хочу в эту подпрограмму передавать координаты отверстий которые хочу расфрезеровать по спирали.

в программе это будет через G66...G67

 

 

Ссылка на сообщение
Поделиться на других сайтах


Так вот я хочу в эту подпрограмму передавать координаты отверстий которые хочу расфрезеровать по спирали.

Ну и передавай по G66P... X...Y..., в подпрограмму они пойдут как #24 #25 . Или как-то хитрее надо?

Ссылка на сообщение
Поделиться на других сайтах

Локальные переменные
Локальные переменные находятся в диапазоне от #1 до #33. Набор локальных переменных доступен
в любое время. При выполнении вызова подпрограммы с помощью команды G65 локальные
переменные сохраняются, и можно использовать новый набор. Это называется вложенностью
локальных переменных. При вызове G65 все новые локальные переменные сбрасываются на
значение «не определено», а всем локальным переменным, имеющим соответствующие адресные
переменные в строке G65, присваиваются значения из строки G65. Ниже приводится таблица
локальных переменных с аргументами адресных переменных, которые изменяют их.
 

A 1, B 2, C 3, I 4, J 5, K 6  и так далее, смотрите соответствеи в свой документации

 

****************************************

Сразу вам заказ на подппрограмму которая будет измерять угол отклонения от оси для двух отверстий и соответственно

генерить строку поворота системы координат

Ссылка на сообщение
Поделиться на других сайтах
Или как-то хитрее надо?

Мне кажется или данная программа только в координате "0" будет работать? И что шаг по глубине должен быть кратный количеству проходов, иначе зарез...

Ссылка на сообщение
Поделиться на других сайтах

 

Или как-то хитрее надо?

Мне кажется или данная программа только в координате "0" будет работать? И что шаг по глубине должен быть кратный количеству проходов, иначе зарез...

 

Если вопрос мне, то не вникал в текст, автор вроде сказал, что это черновик.

Ссылка на сообщение
Поделиться на других сайтах
иначе зарез...

мне тоже так показалось, нужно не шаг прохода тогда задавать а количество проходов

а дальше просто, делим глубину на количество проходов.

 

собственно я реализовал у себя такой алгоритм (расфрезеровывание по спирали

но руки не доходят его в подпрограмму перенести

Ссылка на сообщение
Поделиться на других сайтах

мне тоже так показалось, нужно не шаг прохода тогда задавать а количество проходов

а дальше просто, делим глубину на количество проходов.

 

собственно я реализовал у себя такой алгоритм (расфрезеровывание по спирали

но руки не доходят его в подпрограмму перенести

 

Количество тоже не вариант. Нужно еще одно условие, если последний проход меньше шага, то он равен шагу. И на последней глубине проход нужен.

Если вопрос мне, то не вникал в текст, автор вроде сказал, что это черновик.

Нет, это я вашу цитату использовал. По этой причине и не смог ответ ТС дать.

Ссылка на сообщение
Поделиться на других сайтах
Количество тоже не вариант. Нужно еще одно условие, если последний проход меньше шага, то он равен шагу. И на последней глубине проход нужен.

понятно что тут несколько вариантов и все можно реализовать

можно жесткий цикл повторений (без проверки условий) и количество проходов в L  передавать

можно с проверкой условий, как угодно

 

еще счетчик на количество проходов можно поставить

в своем алгоритме я задаю сколько раз и по сколько (один проход) мне так удобнее

*********************************

к слову сказать это все от бедности системы фанук

например когда на хайдене работал там все это уже есть в стоке и наглядно

Ссылка на сообщение
Поделиться на других сайтах

 

Так вот я хочу в эту подпрограмму передавать координаты отверстий которые хочу расфрезеровать по спирали.

Ну и передавай по G66P... X...Y..., в подпрограмму они пойдут как #24 #25 . Или как-то хитрее надо?

 

Это где то описано что именно #24 #25 ? Это стандарт?

 

 

мне тоже так показалось, нужно не шаг прохода тогда задавать а количество проходов

а дальше просто, делим глубину на количество проходов.

 

собственно я реализовал у себя такой алгоритм (расфрезеровывание по спирали

но руки не доходят его в подпрограмму перенести

 

Количество тоже не вариант. Нужно еще одно условие, если последний проход меньше шага, то он равен шагу. И на последней глубине проход нужен.

 

 

Если вопрос мне, то не вникал в текст, автор вроде сказал, что это черновик.

Нет, это я вашу цитату использовал. По этой причине и не смог ответ ТС дать.

 

сделаю такую проверку

Ссылка на сообщение
Поделиться на других сайтах

держи нас в курсе

если дело пойдет много наплодим таких подпрограмм )

 

 

 

Это где то описано что именно #24 #25 ? Это стандарт?

 

я не уверен что на всех моделях такое соответствие, хотя хз

если есть руководство то смотри в сторону "Локальные переменные"

 

****************************************

только что нашел в соседней ветке файл пдф

Custom-Macro-Quick-Reference-1.pdf

Ссылка на сообщение
Поделиться на других сайтах

Код для центрования и сверления n количества отверстий

%
T01 M06
G54 G90
G00 G43 Z50.0 H01
S1500 M03
G01 Z10.0 M08 F100
#50=6.0(KOL-VO OTVERSTII)
#51=360.0/#50(UGOL)
#52=100.0(DIAMETR)
#53=1.0(SCHETCHIK)
#54=66.0(UPREGDENIE)
G00 X#52/2*COS[#54+#51*#53] Y#52/2*SIN[#54+#51*#53]
N100
G81 X#52/2*COS[#54+#51*#53] Y#52/2*SIN[#54+#51*#53] Z-2.5 F100.0
G80
#53=#53+1
IF[#53LE#50] GOTO 100
G00 Z50.0
#53=1.0
G00 X#52/2*COS[#54+#51*#53] Y#52/2*SIN[#54+#51*#53]
N200
G83 X#52/2*COS[#54+#51*#53] Y#52/2*SIN[#54+#51*#53] Z-50.0 Q5.0 R3.0 F100.0
G80
#53=#53+1
IF[#53LE#50] GOTO 200
G00 Z50.0
M30
%

post-25729-0-33142900-1413964135_thumb.png

Ссылка на сообщение
Поделиться на других сайтах
%
G91 G28 Z0
G49 H0
T1 M6 (CENTROVKA)
G55 G90
S1500 M3
G43 Z50.0 H1 M8
G01 Z10.0 M08 F100
#50=6.0(KOL-VO OTVERSTII)
#51=360.0/#50(UGOL)
#52=100.0(DIAMETR)
#53=1.0(SCHETCHIK)
#54=66.0(UPREGDENIE)
G00 X#52/2*COS[#54+#51*#53] Y#52/2*SIN[#54+#51*#53]
N100
G81 X#52/2*COS[#54+#51*#53] Y#52/2*SIN[#54+#51*#53] Z-2.5 F100.0
G80
#53=#53+1
IF[#53LE#50] GOTO 100
G00 Z50.0
M5
G91 G28 Z0
G49 H0
T5 M6 (SVERLO D__)
G55 G90
S500 M3
G43 Z50.0 H5 M8
#53=1.0
G00 X#52/2*COS[#54+#51*#53] Y#52/2*SIN[#54+#51*#53]
N200
G83 X#52/2*COS[#54+#51*#53] Y#52/2*SIN[#54+#51*#53] Z-50.0 Q5.0 R3.0 F100.0
G80
#53=#53+1
IF[#53LE#50] GOTO 200
G00 Z50.0
M5
M9
G91 G28 Z0
G91 G28 Y0
G49 H0
G90
M30
%

поправил

Ссылка на сообщение
Поделиться на других сайтах

На Фануках это называется что-то типа "цикл обработки под болты по окружности" и пример макро есть в инструкции, не надо велосипед изобретать.

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

Этот пример работает только для простого сверления. Для других циклов G82 G83 G84 и т.д. он не подходит, потому что это просто пример. Мы сейчас для обработки "под болты по окружности" хотим перейти на задание координат в полярной системе. Хочется, чтобы программа была простая и наглядная - виден был G-цикл и видны координаты всех отверстий.

Ссылка на сообщение
Поделиться на других сайтах

Fanuc-Bolt-Hole-Circle-Custom-Macro-BHC.

G65 P9100 Xx Yy Zz Rr Ff Ii Aa Bb Hh
X: X coordinate of the center of the circle (#24)
Y: Y coordinate of the center of the circle (#25)
Z: Hole depth (#26)
R: Coordinates of an approach point (#18)
F: Cutting feedrate (#9)
I: Radius of the circle (#4)
A: Drilling start angle (#1)
B: Incremental angle (Clockwise when negative value) (#2)
H: Number of holes (#11)
*/

O9100
#3=#4003
G81 Z#26 R#18 F#9 K0
IF[#3 EQ 90]GOTO 1
#24=#5001+#24
#25=#5002+#25
N1 WHILE[#11 GT 0]DO 1
#5=#24+#4*COS[#1]
#6=#25+#4*SIN[#1]
G90 X#5 Y#6
#1=#1+#2
#11=#11-1
END 1
G#3 G80
M99

/*Fanuc Bolt Hole Macro Example
Example macro call to drill 5 holes at intervals of 45 degrees
after a start angle of 0 degrees
on the circumference of a circle with radius 4”.
The absolute center of the circle is (10”, 5”).*/
O0002
G90 G92 X0 Y0 Z4.0
G65 P9100 X10.0 Y5.0 R1.0 Z-2.0 F20 I4.0 A0 B45.0 H5
M30
Ссылка на сообщение
Поделиться на других сайтах

Хм. Более лаконичный цикл. Который ответил на все мои вопросы. Кто- то тут предлагал собирать макросы в отдельной ветке?

Ссылка на сообщение
Поделиться на других сайтах

G65-Macro-for-an-Increasing-Radius.jpg

;A = #1 (Start Angle 0 degrees)
;B = #2 (Start Radius)
;C = #3 (Increment angle for accuracy calculations.)
;I = #4 (Finish Angle)
;J = #5 (Finish radius)
;K = #6 (Milling feed)

O2222
T5 M6
G0 G90 G40 G21 G17 G94 G80
G54 X35 Y0 S500 M3
G43 Z100 H?
Z5
G1 Z-0.5 F200
G65 P8999 A0 B35 C0.01 I70 J37 K500
G0 G90 Z100 M30

O8999
#7 = #4 / #3 ;1) Total no. of moves 70 / 0.01
#8 = [[#5 - #2] / #7] ;2) Increase in radius 37-35/7000
N1 #2 = #2 + #8 ;3) Next Radius i.e. 35+inc. radius.
#1 = #1 + #3 ;4) Increase in angle
#9 = #2 * COS [ #1 ] ;5) New X axis position
#10 = #2 * SIN [ #1 ] ;6) New Y axis position
G1 X#9 Y#10 F#6 ;7) Feed move to new positions
;8) If new angle is less than finish angle go to line N1.
IF [#1 LT #4] GOTO 1
G0 Z10
M99

Тогда надо накопить) и попросить модератора перенести всё в 1 тему и зафиксировать сверху ветки

Ссылка на сообщение
Поделиться на других сайтах

поддерживаю, еще нужно описание написать к каждой подпрограмме, и пополнять

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.



  • Сообщения

    • sippovich
      Добрый день. Токарный станок с барфидером,стойка Fanuc. Хотелось бы реализовать функцию"Требуемое количество деталей". При изучении темы понял ,что за это отвечает сигнал F0062.7 , нашёл его в параметрах,но при попытке изменить он сбрасывается на ноль. И в общем ладдере я не нашёл вообще этого обозначения. Может кто подскажет,как в ладдер прописать это дело?) Пробовал работать с параметрами 6700-6720,станок не понимает.
    • Ksendzz
      Для всех кому было интересно,проблема оказалась в угле пластины,чуть подточили жопку резца под больший угол и все получилось отлично.
    • Guhl
      Это не чпу. Это описание действий с Sinamics
    • Guhl
      Реклама в интернете работает. Частные фирмы - это необязательно гаражи, а вполне себе нормальные предприятия. Да и частные они в том смысле, что государство там не владеет долей или владеет небольшой долей. Северсталь, например, по-вашему частное предприятие? С госпредприятиями небольшой фирме вообще лучше не связываться. Хотя какой-нибудь ремонт можно сделать за приличные деньги.   Дело в навыках этих сотрудников. Если они умеют только ПНР делать, то могут сотрудничать с несколькими фирмами и параллельно искать собственные заказы. Если они умеют ремонтировать станки и не только, то еще проще с заказами.  Если они увольнялись в никуда без запаса денег и не имея опыта самостоятельной деятельности, то конечно сложно поначалу
    • Ветерок
      Пропала команда "Объединить элементы в новую папку" (или как-то так). Как её вернуть обратно в выпадающее меню? СВ2020
    • Ninja
      Вопиющее преступление! Эти американцы не перед чем не остановятся, лишь бы нанести России ещё больше урона. Никого не пощадят, пойдут на самое гнусное преступление...   Вот откуда Он это знал? ШпиЁн!? Есть подозрение, что таких преступлений уже было несколько! Похоже травят Турту как клопа! Я бы и племяшку проверил бы, побеседовал бы с ней тет-а-тет с пристрастием... Что-то она скрывает, тварь... Не иначе агент западной разведки, предательница родины! Пытать её надо, утюгом! Напишите Григоричу на почту, пусть проследит за её поведением!
    • Metal_Cutter
      Работает из под windows,  такого имитатора нет, но есть USB-ный порт, в который вставляется мышь.  Спасибо за совет, попробую нажать ей.
    • Viktor2004
      ну и где будет брать заказы эта ООО? Кто ей даст жирный кусок госзаказа? Фирме с упрощенным налогообложением. Остается ремонтировать у частников в гаражах их станки купленные по цене металлолома Все наши сотрудники которые увольнялись и пытались работать на себя, только в первый месяц ходили зачарованные на эйфории. А потом все равно приткнулись к другим конторам. Потому что заказы никто не дает.
    • Guhl
      Как я написал выше, создавайте ООО с уставным фондом 10тр и весь ваш риск и будет 10тр + имущество фирмы
    • Viktor2004
      а где она, эта экспертиза? Суды обычно обращаются в лицензионные конторы по ремонту станков и просят назначить эксперта. Так что экспертом может оказаться любой олень, которые первый месяц работает со станками. И он на серьезных щах с вероятностью 50/50 сделает вывод.
×
×
  • Создать...