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

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


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 пользователей

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




  • Сообщения

    • MagicNight
      Да дело не в бедности, ищу оптимальный ноут, пока не могу найти.
    • Bot
      АСКОН объявляет о старте открытого бета-тестирования новой версии КОМПАС-3D и приложений. Коммерческая версия КОМПАС-3D v23 выйдет летом 2024 года, но уже сейчас испытать новинки может любой желающий. Бета-тестирование — это проверка новой функциональности в «полевых» условиях, когда пользователи знакомятся с нововведениями на собственных проектах и сценариях работы, а также проверяют совместимость со своим программно-аппаратным обеспечением. Новая версия создавалась в соответствии с дорожной картой АСКОН для задач проектирования изделий высокотехнологичных отраслей и стала еще более функциональной и производительной. При разработке учитывались предложения пользователей по темам трехмерного моделирования, подготовки чертежей и спецификаций, приложений для машиностроения, приборостроения и строительства. Бета-версия КОМПАС-3D открыта для всех. Дистрибутив предоставляется бесплатно на время проведения тестирования. *** Период проведения бета-тестирования: с 6 [...] View the full article
    • fenics555
      Уважаемые Дамы и Господа!  Есть библиотечные изделия, которые почему-то очень доооооолго грузятся в сборках. Я хочу попросить Вас потестить их и сказать в чем причина, ибо совсем невозможно работать. gost18829-73.prt.1 pin_split.prt.1 Как это всё можно ускорить?
    • gudstartup
      а вы хоть станок проверяли по программе на изделии на точность прежде чем товарищей этих выгнать? если нет то грешите на самих себя! система в наших краях еще не распространенная поэтому и тем тут нет надо в поднебесную писать
    • AlexArt
      Ну допустим, ты и на другом ресурсе это опубликовал. А не коммуниздил. Но вот продвигать воровство от государства, ворующее из Вики, это верх мерзости.
    • maxx2000
      Ах, да. Фильтры выбора добавили. Теперь можно выбрать только то что видно на первом плане, а не вместе с тем что с обратной стороны детали. В общем надо обновляться. Как раз работёнка на прессформу нарисовалась 
    • maxx2000
      Причина того - Кроилово. Кроилово всегда приводит к попадалову. Месяц простоял сколько мильонов деревянных потеряли? Вопрос риторический. И ещё будет стоять. Как памятник человеческой глупости и жадности.
    • AlexKaz
      "9 июля 1968 года на мышах был проведен самый знаменитый эксперимент американского ученого-этолога Джона Кэлхуна «Вселенная-25». Суть опыта заключалась в создании идеальных условий, где мыши могли бы жить и размножаться, не ведая никаких забот, вдали от хищников и в отсутствие эпидемий и заболеваний. Для этих целей ученый построил специальный загон, куда были помещены четыре пары белых мышей (самцов и самок). В распоряжении мышей всегда была чистая вода и еда в изобилии, специальные гнезда, где можно обустроить себе жилище ― гнезд в загоне хватало для проживания нескольких тысяч мышей. Температура в загоне в среднем составляла около 20 ℃ и была комфортной для мышей. Животные не подвергались никаким влияниям извне и жили в идеальных условиях в свое удовольствие. А дальше началось самое интересное. На первом этапе эксперимента мыши хорошо размножались, вели активный образ жизни, охотно играли. На следующей фазе эксперимента мыши стали есть меньше, перестали наедаться до отвала. На третьей фазе эксперимента, когда в загоне были уже сотни мышей, произошло распределение социальных ролей, стала ярко выраженной иерархия, клановость. Появились так называемые отверженные ― молодые особи, которых другие, взрослые мыши сгоняли в центр загона, не давали им вести нормальный образ жизни, причиняли физический вред. В природе такое, наверное, было бы невозможно, ведь эти мыши-агрессоры просто не дожили бы до старости: их бы съели хищники. Но в загоне Кэлхуна хищников не было, и взрослые мыши начали попросту издеваться над молодняком. Образовались две большие группировки: самцы-одиночки и самки-одиночки. При этом самки-одиночки отказывались спариваться <с менее статусными многочисленными молодыми самцами и с оставшимися старыми статусными> и отвергали ухаживания самцов. У мышей стал проявляться тотальный индивидуализм, мыши не стремились создать семью. На последней, четвертой стадии мышиная популяция стала сокращаться. Появились самцы, которых сам Кэлхун назвал «красивыми» (англ. beautiful ones), из-за отсутствия ран и рубцов. <В оригинале: They never engaged in sexual approaches toward females, and they never engaged in fighting, and so they had no wound or scar tissue. Thus their pelage remained in excellent condition. - Дословный перевод: Они никогда не прибегали к сексуальным подходам к самкам, и они никогда не участвовали в боях, и поэтому у них не было ран или рубцовой ткани. Таким образом, их шерсть сохранилась в отличном состоянии.> Эти мыши не вступали в борьбу за самок и территорию, не проявляли активности к размножению и только питались, спали и чистили шёрстку. У мышей стали проявляться различные формы девиантного поведения, вспышки агрессии. Самки стали проявлять агрессию, защищать себя сами, стали умерщвлять своих детенышей, а затем окончательно отказались размножаться. На пике эксперимента в загоне одновременно проживало чуть более двух тыс. мышей. Еды и гнезд было достаточно для дальнейшего роста популяции, но через четыре года после начала эксперимента Кэлхун остановил свой опыт, потому что в загоне осталось чуть более сотни мышей, и все они уже вышли из репродуктивного возраста. По итогам эксперимента Кэлхун пришел к выводу, что достижение определенной плотности населения и заполнение социальных ролей в популяции приводит к распаду общества" https://physicsoflife.pl/dict/pic/calhoun/calhoun.. https://scientificrussia.ru/articles/utopiya-dlya-mys.. https://ru.wikipedia.org/wiki/Кэлхун,_Джон_(этолог)
    • gudstartup
      @Koels вот в чем дело пока ds609 это предупреждение поэтому F может и не появится если sv601 это значит ошибка. возможно при нагреве радиатора серво определяет это как предупреждение или ваш вентилятор крутиться медленнее чем оригинальный и серва думает что он встал хотяпри этом обычно на экране в строке состояния FAN.мигает больше у меня вариантов нет....  
    • ДОБРЯК
      Решите любым алгоритмом. Тогда будет конструктивный разговор. :=)
×
×
  • Создать...