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

GPOST создание цикла сверления/нарезания резьбы


Techno_Tasha

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

Привет всем. Проблема в постпоцессировании циклов для SINUMERIK 840D SL. Станок - DMG DMU 50.

При повороте стола и сверлении в наклонной плоскости детали не прописывает циклы. Проблема в координатной плоскости TRAORI. Решила ее перейдя в TOROT.

Есть математическое описание пересчета координат, так что обеспечить движение только по Z я могу. Написанная программа от руки - работает.

Как прописал ее в FIL файле?

 

Программа, написанная вручную исходя из CL data:

 

N16 T="BOOR_D8.5" M6
N17 TRAORI
N18 S1300 M3
N19 TRAFOOF
N20 G0 C315. B54.736
N21 TRAORI
N22 TOROT
N23 X39.433 Y10.566
N24 Z132.79
G0 F570
N26 X39.4335 Y10.566 
CYCLE81 (48.867,28.867,20,-8.1203) 
TOROTOF
G0 C225.
TOROT
G0 X0 Y0 
CYCLE81 (20,0,20,-36.988)
TOROTOF
G0 C135
TOROT
G0 X10.566 Y39.433 
CYCLE81 (48.867,28.867,20,-8.1203)
TOROTOF
G0 C45
TOROT
G0 X28.867 Y28.867
CYCLE81 (77.735,57.735,20,20.747)
N38 G0 Z161.6584
N39 M5
TOROTOF
N40 TRAFOOF
 
CL data:
 
GOTO/61.547,-1.547,11.547
0.57735,-0.57735,0.57735
CYCLE/DRILL,DEPTH,36.97414, MMPM, 570, CLEAR, 20
GOTO 50,0,0
....
 
Вопрос: как сохранить значения X,Y,Z перед циклом для просчета RTP, RFP и DP? 
Дальше планирую ловить цикл и замещать значения.
CIMFIL/ON,CYCLE,DRILL
  IF(MULTAC.EQ.1) THEN
  DEPTH = POSTF(7,6) $$depth record
  FREC = POSTF(7,8) $$F record
  ClearREC = POSTF(7,10)$$Clear record
      
  INSERT/'TOROT'
  POSTN/OUT,'MCALL CYCLE81 (',RTP,RFP,SDIS,DP,DPR,')'

 

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


Многие смотрят, никто не отвечает.

Может не ясно выражаюсь. Необходимо словить кадр перед циклом в CL Data. Кто знает как это можно прописать в FIL файле?

Ссылка на сообщение
Поделиться на других сайтах
Вопрос: как сохранить значения X,Y,Z перед циклом для просчета RTP, RFP и DP?  Дальше планирую ловить цикл и замещать значения.

 

Можно по разному:

например с помощью  POSTF(7,_) из GOTO

X = POSTF(7,6)      

Y = POSTF(7,7)  
Z = POSTF(7,8)
 
или из переменных после отработки  GOTO
 X = POSTF(1,1,344)
 Y = POSTF(1,1,345)
 Z = POSTF(1,1,346)
Ссылка на сообщение
Поделиться на других сайтах

Многие смотрят, никто не отвечает.

Может не ясно выражаюсь. Необходимо словить кадр перед циклом в CL Data. Кто знает как это можно прописать в FIL файле?

Можно использовать функцию POSTF(30, ...) при обработке GOTO

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

 

Привет всем. Проблема в постпоцессировании циклов для SINUMERIK 840D SL. Станок - DMG DMU 50.

При повороте стола и сверлении в наклонной плоскости детали не прописывает циклы. Проблема в координатной плоскости TRAORI. Решила ее перейдя в TOROT.

Есть математическое описание пересчета координат, так что обеспечить движение только по Z я могу. Написанная программа от руки - работает.

Как прописал ее в FIL файле?

 

Программа, написанная вручную исходя из CL data:

 

N16 T="BOOR_D8.5" M6
N17 TRAORI
N18 S1300 M3
N19 TRAFOOF
N20 G0 C315. B54.736
N21 TRAORI
N22 TOROT
N23 X39.433 Y10.566
N24 Z132.79
G0 F570
N26 X39.4335 Y10.566 
CYCLE81 (48.867,28.867,20,-8.1203) 
TOROTOF
G0 C225.
TOROT
G0 X0 Y0 
CYCLE81 (20,0,20,-36.988)
TOROTOF
G0 C135
TOROT
G0 X10.566 Y39.433 
CYCLE81 (48.867,28.867,20,-8.1203)
TOROTOF
G0 C45
TOROT
G0 X28.867 Y28.867
CYCLE81 (77.735,57.735,20,20.747)
N38 G0 Z161.6584
N39 M5
TOROTOF
N40 TRAFOOF
 
CL data:
 
GOTO/61.547,-1.547,11.547
0.57735,-0.57735,0.57735
CYCLE/DRILL,DEPTH,36.97414, MMPM, 570, CLEAR, 20
GOTO 50,0,0
....
 
Вопрос: как сохранить значения X,Y,Z перед циклом для просчета RTP, RFP и DP? 
Дальше планирую ловить цикл и замещать значения.
CIMFIL/ON,CYCLE,DRILL
  IF(MULTAC.EQ.1) THEN
  DEPTH = POSTF(7,6) $$depth record
  FREC = POSTF(7,8) $$F record
  ClearREC = POSTF(7,10)$$Clear record
      
  INSERT/'TOROT'
  POSTN/OUT,'MCALL CYCLE81 (',RTP,RFP,SDIS,DP,DPR,')'

 

В нормальных постпроцессорах нет такой проблемы. Все это на Sinumerik'е делается через команду ROT. Проверьте выбранное количество осей в вашем постпроцессоре и почитайте инструкцию на Сименс. Ваш подход и вопрос более чем непонятны.

Ссылка на сообщение
Поделиться на других сайтах
О мудрейшие, подскажите пожалуйста как вывести DCYC?

Через INSERT/DCYC не получается, в list файле пишет слишком много знаков. Подскажите, что делать :worthy: .

 

 WHEN/84

DCYC=TEXT/'CYCLE84','(',RTP,',',RFP,',',SDIS,',',DP,',',DPR,', ,'SDAC,', ,',FD,', ,',SST,','SST,')$'

 ENDCAS

    ELSE

    NUL = POSTF(13)              $$ PROCESS THE GOTO RECORD...

   ENDIF

   

   POSTN/OUT,G,0,C,GD1,B,BD1

   INSERT/'TOROT$'

   POSTN/OUT,G,0,X,XGT,Y,YGT

   INSERT/DCYC

   INSERT/'TOROTOF$' 

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

В нормальных постпроцессорах нет такой проблемы. Все это на Sinumerik'е делается через команду ROT. Проверьте выбранное количество осей в вашем постпроцессоре и почитайте инструкцию на Сименс. Ваш подход и вопрос более чем непонятны.

Вот именно, в нормальных. Универ решил сделать из нас первоклассных специалистов и повесил на студентов задачу разрабатывать постпроцессор. Поэтому костылей там меряно не меряно :biggrin: .

ROT для меня не так удобна как TOROT в плане постпроцессирования. В ROT необходимо еще и углы X Y Z указывать, а по сути результат будет тот же. Инструкций на Сименс у меня гора,не переживайте. Опыт работы на 5-координатном станке тоже есть.

 

Проблему, о которой писала в начале, я решила. С циклом сверления все четенько. На станке протестировала, работает!

Теперь бы вот вывести цикл нарезания резьбы  :g:

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

Для вывода длинных строк используется вывод нескольких команд INSERT. В генератор забиваете символ сцепления и у вас несколько текстовых переменных выведутся в одну строку:

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

INSERT/MYMY1,'\$'

INSERT/MYMY2,'$'

выведется строка содержащая MYMY+MYMY2

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

Проблему, о которой писала в начале, я решила. С циклом сверления все четенько. На станке протестировала, работает!

Теперь бы вот вывести цикл нарезания резьбы  :g:

Поздравляю с успехами. Хорошо, что государство наконец-то озаботилось воспитанием кадров, соответсвующих требованиям времени.

По поводу циклов - чем вас не устраивают автоматически сформированные циклы Gpost'ом?(ну за исключением, может быть мелких каких-то доработок, например, растачивания)

Там и выдумывать ничего не нужно - этож не хейденхайн... Там никаких супер процедур писать не требуется, просто на вкладке настроек формата цикла нужно указать Siemens, и тип модальный-не модальный. Для 99% стандартных осевых циклов этого достаточно.

Ссылка на сообщение
Поделиться на других сайтах
В 29.11.2016 в 21:32, LxCoder сказал:

 

Поздравляю с успехами. Хорошо, что государство наконец-то озаботилось воспитанием кадров, соответсвующих требованиям времени.

По поводу циклов - чем вас не устраивают автоматически сформированные циклы Gpost'ом?(ну за исключением, может быть мелких каких-то доработок, например, растачивания)

Там и выдумывать ничего не нужно - этож не хейденхайн... Там никаких супер процедур писать не требуется, просто на вкладке настроек формата цикла нужно указать Siemens, и тип модальный-не модальный. Для 99% стандартных осевых циклов этого достаточно.

 

Запарились, потому что при пяти координатном ( вернее 3+2 координатном) нарезании резьбы или сверлении для прямого перемещения шпинделя вниз необходимо изменить все три координаты (так как наша система координат повернута и наклонена вместе с деталью). Постпроцессор понятное дело цикл вывести не может.  Он его формирует через G1 и G0.

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

Ссылка на сообщение
Поделиться на других сайтах
В 28.11.2016 в 09:50, GARRY сказал:

Для вывода длинных строк используется вывод нескольких команд INSERT. В генератор забиваете символ сцепления и у вас несколько текстовых переменных выведутся в одну строку:

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

INSERT/MYMY1,'\$'

INSERT/MYMY2,'$'

выведется строка содержащая MYMY+MYMY2

Спасибо. Я так и сделала. Только вот без очищения пробелов он не хотел нормально выводить, посему OMIT,3.

Короче решила поделиться одним из циклов для примера :

 

WHEN/83                        $$DEEP HOLE DRILLING
    IF(MULTAC.EQ.1) THEN   
   DCYC=TEXT/'CYCLE83 '
   DCY1=TEXT/'(',RTP,',',RFP,',',SDIS,',',DP,',', DPR,',,',FDPR,','
   DCY1=TEXT/OMIT,DCY1,3
   DCY2=TEXT/'0,0,0,1,1,)$'
   DCY2=TEXT/OMIT,DCY2,3
   POSTN/OUT,G,0,X,XD1,Y,YD1,Z,ZD1
   POSTN/OUT,G,0,C,GD1,B,BD1
   INSERT/'TOROT$'
   INSERT/DCYC,DCY1,DCY2
   INSERT/'TOROTOF$'
   ELSE
   POSTN/OUT,X,XD1,Y,YD1
  ENDIF
 

Ссылка на сообщение
Поделиться на других сайтах
  • 3 недели спустя...
В 07.12.2016 в 20:57, Techno_Tasha сказал:

 

Запарились, потому что при пяти координатном ( вернее 3+2 координатном) нарезании резьбы или сверлении для прямого перемещения шпинделя вниз необходимо изменить все три координаты (так как наша система координат повернута и наклонена вместе с деталью)

А через наклонный план работать не пробовали? (Типа CYCLE800 и проч. фигня?) Просто я никак не могу понять, чего же вы там такого делаете с бедным DMU 50 с синумериком, что вам не хватает стандартного функционала и приходится прописывать свои процедуры для осевых циклов... Как мне кажется, просто ваш подход не совсем верен, либо на станке отсутствует процедура пересчета наклонного плана (перенос СК при 3+2 обработке). Но даже при вашем подходе, через TRAORI и TOROT ось Z должна параллельной оси инструмента...

Ссылка на сообщение
Поделиться на других сайтах
  • 5 недель спустя...
В 22.12.2016 в 22:28, LxCoder сказал:

А через наклонный план работать не пробовали? (Типа CYCLE800 и проч. фигня?) Просто я никак не могу понять, чего же вы там такого делаете с бедным DMU 50 с синумериком, что вам не хватает стандартного функционала и приходится прописывать свои процедуры для осевых циклов... Как мне кажется, просто ваш подход не совсем верен, либо на станке отсутствует процедура пересчета наклонного плана (перенос СК при 3+2 обработке). Но даже при вашем подходе, через TRAORI и TOROT ось Z должна параллельной оси инструмента...

Мне было легче прописать перерасчет координат в постпроцессоре. В 800 цикле на мой взгляд намного больше параметров и он сложней в определении. По факту, TOROT делает то же самое. Он просто создает систему координат, ось Z которой совпадает с текущей осью инструмента, без изменения нуля детали. Все остальное дело математики.  

Ссылка на сообщение
Поделиться на других сайтах
В ‎21‎.‎01‎.‎2017 в 22:02, Techno_Tasha сказал:

Мне было легче прописать перерасчет координат в постпроцессоре. В 800 цикле на мой взгляд намного больше параметров и он сложней в определении. По факту, TOROT делает то же самое. Он просто создает систему координат, ось Z которой совпадает с текущей осью инструмента, без изменения нуля детали. Все остальное дело математики.  

Я не сомневаюсь в том, что в итоге у вас все получится, но, на мой взгляд, этот подход очень похож на "удаление гланд через прямую кишку". Поверьте, GPost в состоянии обработать стандартные циклы для 3+2 обработки (тем более для такой распространенной стойки как S840D) без всяких доп. пересчетов, процедур и т.п. Единственное, что нужно сделать - это научить его формировать строку с циклом наклонного плана, а для 99% случаев для него реально нужны только два параметра - это значения углов вращения и наклона. И все.

Ну хотя, это дело каждого - чего и как добиваться. Я лишь говорю о том, что все можно сделать гораздо проще.

Ссылка на сообщение
Поделиться на других сайтах
  • 1 месяц спустя...

@LxCoder 

В САМ программе у нас все перемещения относительно одной системы координат. Если мы ее как-либо изменяем в постпроцессоре (будь то 800 цикл или TOROT) нам все равно нужен пересчет координат точек из старой системы координат в новую трансформированную систему координат. Так что без этого не обойтись. 

 

800 цикл по факту вращает/перемещает систему координат и координаты точки все равно станок воспринимает уже относительно новой системы координат.  

Ссылка на сообщение
Поделиться на других сайтах
В 11.03.2017 в 23:45, Techno_Tasha сказал:

 

В САМ программе у нас все перемещения относительно одной системы координат.

В САМ программе все перемещения строятся относительно СК, заданной в качестве основной в операции - это правильно. Все вспомогательные СК(ну кроме непрерывных 4-х и 5-ти осевых обработок) строятся таким образом, чтобы ось Z была направлена коллинеарно оси инструмента (конечно и тут есть свои моменты, но для 99% 3+2 обработки это так)

В 11.03.2017 в 23:45, Techno_Tasha сказал:

... Если мы ее как-либо изменяем в постпроцессоре (будь то 800 цикл или TOROT) нам все равно нужен пересчет координат точек из старой системы координат в новую трансформированную систему координат. Так что без этого не обойтись. 

Обойтись, поверьте. Не думайте так плохо об американцах, что они, такие неумехи, и не смогли зашить в математический аппарат постпроцессора собственные процедуры пересчета. Все что вам нужно - сформировать строку поворота осей по В,С, повернуть соответствующим образом СК в управляющей программе через план (через ROT, TOROT или CYLE800 - а именно сформировать строку с ранее считанными углами поворота осей В,С, а не пересчитывать все координаты через формулы поворота!), а затем пост сам(!) сформирует вам осевой цикл.

Вот кусок получаемой программы из-под поста:

 

CYCLE800() ; выкл. накл. план перед сменой угла
B60 C=DC(45) ; поворачиваем реальные оси станка
CYCLE800(0,"DMG",200000,192,0,0,0,60,45,0,0,0,0,1,,1) ; повторяем углы в 800 цикле и поворачиваем СК, чтобы ось Z была коллинеарна оси инструмента
X23.404 Y0 ; позиционируем в новой СК - тут тоже не нужны пересчеты
Z67.619
G0 F200
MCALL CYCLE83 (27.619,17.619,10,,18.502,,4,100,0,0,100,1,0,0,0,0,0,0,0,11211111) ; сверлим отверстие
X23.404 Y0
MCALL
 

Нет у меня в посте ни пересчета координат в "повернутую" СК, ни процедур для формирования строк осевых циклов для Siemens Sinumerik 840d. Этот постпроцессор отработан на реальном станке и работает по сей день. Так что вы все усложняете.

 

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • maxx2000
      @fenics555, я никогда не задавался таким вопросом, а можно ли отключить авторегенрацию компонентов или заморозить? Если прям опции нет, может через Тулкит или Апи?
    • fenics555
      штифты разрезные- понятно, что примонтаже изменяют размер по отверстию.  Резиновое кольцо уплотнительное- оно меняет не только диаметр наружный и внутренний, но и толщину. именно долго открываются сборки, содержащие эти изделия.  можно конечно и без нее обходиться, но мы уже привыкли. Только грузятся сборки очень долго, но это врятли из-за гибкости.
    • Viktor2004
    • UkulyAlex
      Добрый день. Работаю в t-flex 16. Имеется приспособление в котором более 150 позиций деталей, спецификация сделана по структуре изделия. Возникла необходимость изменения конструкции, некоторые детали из середины списка пришлось удалить. После обновления отчёта позиции сдвигаются, как сделать чтобы оставались на месте, т.е. был пропуск позиций в середине раздела "Детали"? 
    • статист
      Спасибо за цитату, полезная для меня   Я знал до этого способ использовать атрибуты LATT для задания направления, но они применялись только к построенным линиям. Если например рассматривать созданный элемент E, 1, 2, где для задания применяются только два узла, то тут уже никак не поменяешь положение третьего узла, так как его нет. Нужно тогда создавать отдельно направляющий узел  и задавать его через EMODIF,EID, 3, NID.   Но получается без создания узла, задать направление нельзя. В настране по крайней мере так можно. А в ансисе нужно плодить лишние узлы. Грустно)
    • FROST_R6
      Есть монорельса размером 12м. Хочу проверить перемещение при нагрузке на середину в 2 тонны. Саму монорельсу фиксировать не нужно, поэтому я поставил ее на 2 призмы и зафиксировал их. Расчет не получается провести - сначала программа пишет, что "деформация в данном исследовании слишком значительная и нереалистичная, хотите остановить программу и перезапустить исследование с меньшими нагрузками или с более жесткой моделью?". Я выбираю "нет". После долгого процесса расчета появляется сообщение о том, что "Состояние равновесия не было достигнута" и "Анализ больших смещений был остановлен до сохранения результата", появляется надпись о сбое расчета. 
    • maxx2000
      подгружаются при повторном открытии сборки или при первой вставке? Ну и гибкость сначала вызвала вопрос, но я не заметил существенной задержки при выборе способа вставки с ней или без неё.
    • Ветерок
      Я не понял зачем в этих деталях задана гибкость. При том, что новые значения размеров определяются не измерением, а вводом вручную.
    • BOJIOD9I
      Добрый день! Подскажите куда внести изменения на стойке fanuc 0i, чтобы когда вводишь коррекцию в графу износа она не отображалась на координатах. Пример: Резец точит размер 100 мм, по факту получается 101мм. В графе износ вносишь -1.0 мм. В итоге по координатам будет показано что резец точит 99мм, а по факту станет 100мм как нужно было.
    • ДОБРЯК
      Это есть в документации. Может быть эта информация будет полезна не только вам. https://www.mm.bme.hu/~gyebro/files/ans_help_v182/ans_elem/Hlp_E_BEAM188.html В этом разделе подробно написано Очень подробное описание этого элемента. Это элемент Тимошенко. Это надо учитывать используя этот элемент в расчетах. Остается только один вопрос зачем менять номер узла, если сразу можно задать нужный номер и менять его координаты?  
×
×
  • Создать...