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

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


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

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




  • Сообщения

    • Artas28
      нашли нужные параметры в разделе 5-axis par.
    • gudstartup
      Контроль положения центра инструмента. проще наклонный план(плоскость) настраиваются как правило точки пересечения осей вращения и расстояние оси z от поверности торца шпинделя до этого центра.
    • lem_on
      Особенно когда на одной партии размер стоит как кол на морозе, а на другой надо опять с бубном возле станка потанцевать.
    • maxx2000
      Логично что нужен пароль с более высоким уровнем доступа. 520 не открывает? может 521 и т.д.
    • Artas28
      Добрый день. Кто нибудь в синтеках, калибровал RTCP (не знаю как правильно это назвать)? В мануале C_CNC Parameter Manual для этого есть параметры, начиная от pr3001, но в станке такие параметры не отображаются. (или они скрыты) Сдвинули стол в более удобное положение(4-5ось), а RTCP правильно отрабатывает только в первоначальных координатах стола. Нужно забить новые координаты в параметры для нового расположения стола. Как к ним добраться.
    • Baradozzz
      Уже разобрался. Стойка сама расставляет знак ";"
    • Jesse
      Нужно построить диаграмму Кэмпбелла для вала центробежного многоступенчатого насоса, а так как я новичок в этой тематике, то нужно оживить данный топик :-) Критические частоты собираюсь считать в МКЭ. При этом моё ПО не позволяет посчитать изменённые частоты с учётом гироскопических моментов, прецессии и прочих няшностей автоматизировано как в Femap/Ansys. Времени на изучение этих программ нет, так что думаю выкрутиться следующим образом: 1) Моё ПО позволяет извлечь деформированную форму из статического анализа, так что на первом этапе считаю линейную статику, где к валу приложена сила тяжести, извлекаю деформированную модель; 2) на искривлённой модели вала считаю преднапряжённый модальник, т.е. делаю несколько расчётов СЧ с разными частотами вращения вала. 3) соединяю точки, строю диаграмму Кэмпбелла.   Вроде бы всё понятно, решил отработать на "игрушечной" модельке.. Вот такой простенький вал с одной ступенью в центре. Жёсткое защемление по всем ст. своб. на торцах.   Прогиб в статике. Извлекаю деформированную форму Преднапряженный вращением модальник искривлённой модели вала. 1-я частота ~12 Гц   Модальник без нагрузки искривлённой модели вала, Модальник без нагрузки исходной (прямой) модели вала, а также преднапряженный модальник исходной модели вала дали примерно одинаковую первую собственную частоту ~10.5 Гц. Т.е. вроде как метода работает, частота сдвинулась: если говорить языком МКЭ, то искривлённая модель внесла необходимые корректировки в матрицу масс, а преднапряжение - в матрицу жёсткости (что-то похожее давно обсуждали в топике с Графской пружиной). Но вот с этими вилками уже непонятка получается.. не удаётся получить эти самые вилки. Пробовал нагружать вращением по часовой и против часовой стрелки: по моей логике в одном случае частоты должны быть расти относительно расчёта с прямым валом, в другом - падать. Но частоты получаются ровно те же самые...    Про моменты сил вообще не понятно.. В моём скудном понимании при вращении тела с неуравновешенной массой возникают дополнительные силы инерции, которые в случае вала приводят к его колебаниям (нутация). А гироскопический момент по идее должен всегда препятствовать потере устойчивости (сильной раскачке) вала, т.е. должен стремиться возвращать в исходное положение. Буду рад если погрузите меня в физику процесса :-)   Народ, что думаете насчёт методики в целом? Имеет ли право на жизнь? Или она априори неверна?    
    • gudstartup
      посмотрите режим управления какой включен в параметрах . опишите какие сигналы идут на привод? код инструмента в него и из него на входы выходы поступает или только сигналы управления вращением? если коды инструмента не поступают тогда скорее всего plc у вашего привода  нет  как похоже нет и 8 уровневой защиты у вас просто установлен mtb пароль и он не mpara
    • maxx2000
      https://darxton.ru/catalog_item/servodvigatel-leadshine-cs-m23445b-s-tormozom/ наверняка есть и 8,5Н и 12 Н чем больше дури тем меньше оборотов, для на 12 Н всего 300 оборотов, + чем больше типоразмер тем больше вероятность поймать резонанс на низких оборотах. Я бы смотрел в сторону сервы 750Вт с редуктором 5к1 а что им тягать? Наверняка ведь ещё и винт будет и там сумарно получится грузоподъёмность около 1500кг
    • Димон 87
×
×
  • Создать...