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

G-POST, много вопросов. Хочется понять логику работы.


DJ Astro

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

после этого еще и проверять надо в какой квадрант этот косинус "повернуть".

Судя по экспериментам, не нужно. Даже знак поворота сохраняется.

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


Вопрос программистам...  :lamo:

Можно ли создать bat-файл, с помощью которого можно было бы скопировать две строки текста из одного текстового файла во вторую строку другого текстового файла?

Хочу попытаться немного оптимизировать создание BLK FORM. Чтобы не прогонять вначале всю программу на поиск минимальных и максимальных координат по всем осям, а в конце взять значения из переменных G-post'a, создать из них BLK FORM с выводом в отдельный файл, и из этого файла в самом конце работы G-post'a скопировать текст в основную программу во вторую строку.

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

С помощью команд FILEF формируете bat-файл и формируете строку типа

T1=TEXT/ 'RBATFILE имя.bat'

RSLT=SPWNF(T1)

 

Посмотрите в документации

SPWNF запускает подпроцесс. Текстовая строка t1 содержит командную строку, которая передается в операционную систему.

rslt = SPWNF(t1, [t2])

rslt:       переменная

t1:         Текстовая строка

t2:          0=обрабатывает  команду после FINI. Это позволит управлять выходными файлами из постпроцессора после завершения.

                1=ожидает окончания процесса для продолжения постпроцессирования. (По умолчанию)

                                                        2=не ожидает окончания запущенного процесса для продолжения постпроцессирования

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

Сделал-таки....  :smile:

шапку программы выводим в отдельный файл filename_1.h. Остальную программу выводим в filename_3.h. В конце считываем переменные 898(XMIN),899(YMIN),900(ZMIN),904(XMAX),905(YMAX),906(ZMAX) из раздела DBLCOM и формируем из них BLK FORM с выводом в файл filename_2.h.

GARRY, спасибо! Вопрос был не как создать батник, а что в него прописать  :rolleyes: ... и оказалось всё очень просто:

copy <filename_1.h>+<filename_2.h>+<filename_3.h> <filename.h>

где <filename.h> - имя конечного файла, куда будут скопированы 3 исходных части

 

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

Коллеги, натолкните на мысль.

Имеется токарно-фрезерный станок. Задача сделать так, чтобы если фрезеруем на торце, то постпроцессор выводил бы движение с помощью координат X, Z, и С (ось вращения главного шпинделя), т.е. не задействовал бы ось Y. А в случае фрезерования на боку детали - выводил бы движение с помощью координат X, Z, Y. 

 

Для реализации этого добавил в FIL следующую процедуру:

CIMFIL/ON,SPINDL
SPTYP=POSTF(7,4)$$4th word
IF (SPTYP.EQ.ICODEF(PARLEL)) THEN
  PARTYP=POSTF(7,5)
IF (PARTYP.EQ.ICODEF(ZAXIS)) THEN
DMY=POSTF(2,1,4619,0)
DMY=POSTF(2,1,2086,6)
$$DMY=POSTF(2,1,4609,0)
ELSE
DMY=POSTF(2,1,2086,4)
DMY=POSTF(2,1,4619,1)
ENDIF
ELSE
XXX=POSTF(13)
ENDIF
CIMFIL/OFF
Эта процедура читает строку SPNDL/PARLEL и в зависимости от аргумента должна изменять тип постпроцессора, т.е. вносить изменения в INTCOM 4619 и 2086, которые регулируют тип постпроцессора, но ничего не изменяется. 
Довольно путано получилось объяснить, но если кто-то работал в FIL то поймет, я думаю. Что я делаю не так? 
 
Ссылка на сообщение
Поделиться на других сайтах

Bastion, есть еще целая куча переменных 1993, 4609-4622, которые, возможно, как-то влияют на работу mill-turn поста. Надо экспериментировать...

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

Спасибо. вроде получилось, хотя еще сам не понял как )))

А полярочкой воспользоваться нет желания?

"Токарно-фрезерный станок" - это в смысле с приводным инструментом в револьвере или со фрезерным шпинделем с токарной функцией, наподобие Mazak Integrex 200 или DMG CTX Beta? Это я к тому, что если оси Y вообще на станке нет, так и не зачем ее определять в MCD таблице... Тогда у вас будет то, что вы хотите - вся программа будет в формате XZC. И никакого кода в FIL обычно не требуется...

Если же все таки ось Y присутсвует - можно тупо отключить регистр Y при SPINDL/PARLEL,ZAXIS (естественно табл. соответствия символов кодам должна быть определена в начале, например - А=1; B=2; ..)

 

Что-то типа: 

CIMFIL/ON,MACHIN

   DMY=POSTF(13)

   ...

   YST=POSTF(1,1,Y) $$ считываем данные об оси Y из MCD таблицы

CIMFIL/OFF

 

CIMFIL/AT,SPINDL,PARLEL,ZAXIS

  DMY=POSTF(2,1,Y,53)  $$ выкл. ось Y 

CIMFIL/OFF

 

CIMFIL/AT,SPINDL,PARLEL,XAXIS

  DMY=POSTF(2,1,Y,YST)  $$ вкл. ось Y обратно

CIMFIL/OFF

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

А полярочкой воспользоваться нет желания?

"Токарно-фрезерный станок" - это в смысле с приводным инструментом в револьвере или со фрезерным шпинделем с токарной функцией, наподобие Mazak Integrex 200 или DMG CTX Beta? Это я к тому, что если оси Y вообще на станке нет, так и не зачем ее определять в MCD таблице... Тогда у вас будет то, что вы хотите - вся программа будет в формате XZC. И никакого кода в FIL обычно не требуется...

Если же все таки ось Y присутсвует - можно тупо отключить регистр Y при SPINDL/PARLEL,ZAXIS (естественно табл. соответствия символов кодам должна быть определена в начале, например - А=1; B=2; ..)

 

Что-то типа: 

CIMFIL/ON,MACHIN

   DMY=POSTF(13)

   ...

   YST=POSTF(1,1,Y) $$ считываем данные об оси Y из MCD таблицы

CIMFIL/OFF

 

CIMFIL/AT,SPINDL,PARLEL,ZAXIS

  DMY=POSTF(2,1,Y,53)  $$ выкл. ось Y 

CIMFIL/OFF

 

CIMFIL/AT,SPINDL,PARLEL,XAXIS

  DMY=POSTF(2,1,Y,YST)  $$ вкл. ось Y обратно

CIMFIL/OFF

Спасибо за интересное предложение, но реализовать его не так просто. Дело в том, что когда я отключил вывод регистра у , программа не пересчиталась в формат хzc , а просто перестала печатать у. Т.е. было х21.у18.5 , стало х21. И все

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

Так я ж и спрашиваю, какой станок-то? Токарный с револьвером и приводными инструментами или же с поворотным токарно-фрезерным шпинделем в котором устанавливается 1 инструмент? Посмотрите предыдущее сообщение. В зависимости от этого и нужно выбирать тип станка и в посте - либо просто Live Tooling, либо писать замерженый пост из двух (токарного и фрезерного) модулей. Это важно.

Для последнего типа я включаю режим ХС следующим образом (опять же если есть полярная обработка нужно забыть про тип XZC):

DMY=POSTF(2,1,2089,6) $$ меняем тип станка на Live Tooling

DMY=POSTF(2,1,2456,1) $$ включаем радиальную ось X

DMY=POSTF(2,1,2457,6) $$ ось С - основная ось поворота

Станок выводит все в ZXC координатах.

Отключение режима - восстановление прежних значений для этих переменных. Естессно, их перед этим лучше куда-то запомнить :)

Но лучше полярки эта приблуда "ZXC" все равно не будет - в полярке и корректора работают, и циклы, и круговая интерполяция на кучу сегментных перемещений не раскладывается - вощем один кайф, но далеко не на всех станках она есть.

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

Так я ж и спрашиваю, какой станок-то? Токарный с револьвером и приводными инструментами или же с поворотным токарно-фрезерным шпинделем в котором устанавливается 1 инструмент? Посмотрите предыдущее сообщение. В зависимости от этого и нужно выбирать тип станка и в посте - либо просто Live Tooling, либо писать замерженый пост из двух (токарного и фрезерного) модулей. Это важно.

Для последнего типа я включаю режим ХС следующим образом (опять же если есть полярная обработка нужно забыть про тип XZC):

DMY=POSTF(2,1,2089,6) $$ меняем тип станка на Live Tooling

DMY=POSTF(2,1,2456,1) $$ включаем радиальную ось X

DMY=POSTF(2,1,2457,6) $$ ось С - основная ось поворота

Станок выводит все в ZXC координатах.

Отключение режима - восстановление прежних значений для этих переменных. Естессно, их перед этим лучше куда-то запомнить :)

Но лучше полярки эта приблуда "ZXC" все равно не будет - в полярке и корректора работают, и циклы, и круговая интерполяция на кучу сегментных перемещений не раскладывается - вощем один кайф, но далеко не на всех станках она есть.

Станок  DMG CTX Beta TC с токарно-фрезерным шпинделем. Оси Y присутствует.В постпроцессоре выбираю 5-Axis Rotary Table/Rotary Head. Ставлю галку Mill-Turn Mode is available. Далее в FIL по вашему совету просто отключал ось Y (если фрезеруем на торце). 

CIMFIL/ON,MACHIN

   DMY=POSTF(13)

   ...

   YST=POSTF(1,1,Y) $$ считываем данные об оси Y из MCD таблицы

CIMFIL/OFF

 

CIMFIL/AT,SPINDL,PARLEL,ZAXIS

  DMY=POSTF(2,1,Y,53)  $$ выкл. ось Y 

CIMFIL/OFF

 

CIMFIL/AT,SPINDL,PARLEL,XAXIS

  DMY=POSTF(2,1,Y,YST)  $$ вкл. ось Y обратно

CIMFIL/OFF

 

И как я уже говорил - просто перестает выводить Y, а не переключался в XZC.

 

Настроил режим XZC так:

CIMFIL/ON,SPINDL
SPTYP=POSTF(7,4)$$4th word
IF (SPTYP.EQ.ICODEF(OFF)) THEN
X1=TEXT/'M5';X2=TEXT/'M1=5';REPLAC/X1,X2
  XX=POSTF(13) $$ Process now
ELSE
IF (SPTYP.EQ.ICODEF(PARLEL)) THEN
  $$XX=POSTF(13) $$ Process now
PARTYP=POSTF(7,5)
IF (PARTYP.EQ.ICODEF(ZAXIS)) THEN
INSERT/';ZAXIS$'
DMY=POSTF(2,1,2089,6) 
DMY=POSTF(2,1,2053,6) 
DMY=POSTF(2,1,2052,1) 
ELSE
INSERT/';XAXIS$'
DMY=POSTF(2,1,2089,4)
ENDIF
ELSE
IF (SPTYP.EQ.ICODEF(RPM)) THEN
X1=TEXT/'M3';X2=TEXT/'M1=3';REPLAC/X1,X2
DMY=POSTF(13)
 
ELSE
DMY=POSTF(13)
ENDIF
ENDIF
ENDIF

 

CIMFIL/OFF

 

Остальные параметры переключать не обязательно, поскольку они по умолчанию выставляются правильные.

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

LxCoder, заметьте, что моем варианте G-POST (V64 в CREO 2, по-моему) за включение радиальной оси X и ось С - основная ось поворота, отвечают переменные 2052 и 2053

 

По поводу полярной обработки не поясните подробнее что Вы имеете ввиду. Как ее включить в G-Post? 

 

И, если не секрет, то как же нужно настроить пост, чтобы отключение оси Y приводило к пересчету программы в XZC? 

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

Здравствуйте.

А не поделятся ли уважаемые профессионалы постом под sinumerik 810d на ма-а-а-аленький станочек Emcomill E600. Или наVMC 300. Или вообще хоть на что то четырёх координатное с поворотной осью А :)

А то программы нужно делать. ))

Мне бы хоть что то похоже - дальше я уж подправлю )

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

Снова накопился один вопрос... :)

Как можно оптимизировать распознавание 5-тиосевой обработки? 

Сейчас сделано так: сканирование вперёд и сравнение IJK текущего кадра c IJK из первого кадра каждого перехода. Если меняется - значит 5х обработка. Но столкнулся с такой проблемой - не всегда в пределах ограниченной области сканирования удается определить изменения вектора инструмента, а при увеличении области, например до 500 кадров (что вроде бы не так уж и много?) - начинаются довольно ощутимые тормоза при работе поста. 

Можно, конечно, руками дописывать в CL перед нужным переходом определенные команды, по которым будет распознаваться тот или иной вид обработки, но хочется исключить "человеческий фактор" (по-любому ведь забудешь прописывать всё это...).

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

Bastion, я про полярку: прочитайте в руководстве на Вашу стойку (я так подозреваю, что у вас Sinumerik 840d или что-то вроде того)  - про режим TRANSMIT_S4 - это гораздо лучше любых ZXC


DJ_Astro - про 5-ти осевую.

Распознать 5-ти осевую без спец команд - это великий геморрой (и стоит ли он того?). Я например, в своих постах различаю название сиквенсов. Если в названии сиквенсов есть какая-либо сттрока, например, "_5AXIS" - значит, обрабатывать как 5-ти осевую. Нет - обычная 3+2. Это у меня непреложное правило - и на всем предприятии еще ни разу никто его не забыл. Так что - это дело привычки. Да и сами программы в дереве Creo становятся "читабельнее". Сразу видно, где есть 5-ти оска, а где ее нет. В вашем случае - весьма сомнительное удобство оборачивается еще и тем, что при переводе деталей 3+2 со станка, на котором есть непрерывка, на станок, на котором только 3+2, вам придется "залезать" в каждый шаг и смотреть, где, что и как обрабатывается, потому что, действительно, вспомнить порой способ обработки при большой номенклатуре деталей нереально.

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

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

Если сохранить переход как шаблон в формате xml, то внутри можно найти вот такую строчку (для 5-осевой обработки):

 

<PRO_E_MFG_SEQ_NUM_AXES_OPT type="int">5</PRO_E_MFG_SEQ_NUM_AXES_OPT>. Т.е. по этому параметру ProE определяет, какой тип у данного перехода (3, 4, 5 осей).
Но как его вытащить в CL (и можно ли вообще?). Может как-то через уравнения?
 
Ссылка на сообщение
Поделиться на других сайтах

 

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

Если сохранить переход как шаблон в формате xml, то внутри можно найти вот такую строчку (для 5-осевой обработки):

 

<PRO_E_MFG_SEQ_NUM_AXES_OPT type="int">5</PRO_E_MFG_SEQ_NUM_AXES_OPT>. Т.е. по этому параметру ProE определяет, какой тип у данного перехода (3, 4, 5 осей).
Но как его вытащить в CL (и можно ли вообще?). Может как-то через уравнения?
 

 

Завидую вашему упорству!... Нет такого способа. Если бы он был, о нем было бы известно. А пока, судя по моему опыту общения с другими разработчиками постов - люди либо используют 2 постпроцессора - один 3+2, другой чисто 5-ти осевой (что на мой взгляд вообще не красиво), либо же используют собственные команды распознавания. По другому определить количество используемых осей для отдельного сиквенса в Cl-файле если не невозможно, то ооочень геморно... Почему разработчики Creo не озаботились этой проблемой до сих пор - также не понятно, хотя вопрос, казалось бы на поверхности...

Я лично склоняюсь к PPRINT-командам и особым названиям сиквенсов, т.к. помимо простоты они несут в себе еще одну возможность - расширять функционал ProЕ/Creo (в некотором смысле он достаточно убогий - нет полноценной работы со щупами, нет нормальной работы на два канала, человеческой синхронизации и ожидания окончания обработке в одном из каналов, каких-то сервисных команд (типа скинуть заготовку, зажать заготовку, подать пруток - либо эти команды задаются посредством достаточно корявого меню CL-commands в AUXILIARY или в Trajectory). А ведь под них можно сочинить макрос с визуализацией и пользоваться вполне полноценно, если забыть про Creo-стандарты, что все должно быть через параметры, меню и выводиться в Cl-файл в виде стройной команды в кадре... Много чего можно выжать из Creo при таком подходе (если не все что угодно, то очень многое). 

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • gudstartup
      а вот тут все уже расписано  
    • 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.мигает больше у меня вариантов нет....  
×
×
  • Создать...