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

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


DJ Astro

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

А как производится пересчёт ZMIN (применительно к многоосевым операциям)? 
 

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


Кто-нибудь в курсе, как сделать что бы NC-программа после вывода открывалась в текстовом редакторе?

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

Макрос в фил

 

MRENTP=MACRO/
  T1=TEXT/'XXRENXX.BAT'
  I1=FILEF(1,7,T1)  $$ Check if file already exist
  IF(I1 .EQ. 1) THEN
    DMY=FILEF(1,2,T1)
    DMY=FILEF(1,6) $$ Close and delete
  ENDIF
  DMY=FILEF(1,3,T1) $$ Open a new file
  T1=TEXT/PART  $$ CL file name and path
  T1=TEXT/UP,T1 $$ Put in upper case
  I1=INDXF(T1,(TEXT/'.NCL'))
  T1=TEXT/RANGE,T1,1,I1  $$ extract CL file name without extension
  T1=TEXT/T1,'H'  $$ Old tape extension
$$ Create the batch file to run : new extension if .NC
  $$DMY=FILEF(1,1,(TEXT/'COPY ',T1,' *.TAP'))
  $$DMY=FILEF(1,1,(TEXT/'DEL ',T1))
  DMY=FILEF(1,1,(TEXT/'NOTEPAD ', T1))
  DMY=FILEF(1,5) $$ Close the bat file
  $$ Create command to run the bat file
  T1=TEXT/'cmd /C XXRENXX.BAT'
  $$ Run the bat file after the end of execution of GPOST
  DMY=SPWNF(T1,0)
TERMAC

 

 

Вызов макроса в

CIMFIL/ON,FINI
   DMY=POSTF(20)
   CALL/MRENTP
   DMY=POSTF(21)
   DMY=POSTF(13)
CIMFIL/OFF

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

Всем привет!
Помогите, пожалуйста, разобраться.
Сделал для фрезера пост на непрерывку 5х, работает корректно.
Решил пойти дальше, сделать пост на 3+2. Взял за основу вышеуказанный пост и включил в нем планарный режим, и тут же «привет» - неправильный расчет движения, плюс артефакт в тексте программы.
Поясню.
Тестирование корректности работы поста проводил так: Создал две операции, для «5» и для «3+2» обработки; В каждой операции по одному переходу «движение по траектории»; Траектории движения одинаковые (обработка одного и того же участка), но одна 5х, а другая 3х; Траектория для «5х» строилась в «глобальной» системе координат операции, а для «3х» в «локальной», наклоненной относительно «глобальной».
Эскиз траектории.

2017-01-14_19-39-30.png


Таков результат 5х процессирования (координаты рассчитаны верно).

2017-01-14_19-49-21.png


Таков результат 3+2 процессирования (неправильно)

2017-01-14_19-49-55.png

 

Архив с примером и постом почему-то не загружается на форум, кому интересно могу сбросить на почту.

Ссылка на сообщение
Поделиться на других сайтах
В 21.12.2016 в 20:47, Mysterious сказал:

 

Кто знает в чем проблема и что поправить в посте?

 

я решил эту проблему по другому,нужно либо в параметрах зайти в раздел установки станка и поменять CIRC_INTERPOLATION на POINTS_ONLI,ЛИБО ОТКРЫТЬ gpost,ДАЛЕЕ motion-Circular и значение максимального радиуса с 9999.9999000 заменить на 999.9999000,то есть убрать одну первую 9.возможно кому то поможет.

В 06.01.2017 в 21:11, moovi сказал:

Кто-нибудь в курсе, как сделать что бы NC-программа после вывода открывалась в текстовом редакторе?

а что мешает посмотреть программу через блокнот или посмотреть код через "настроить"?

В 22.12.2016 в 19:08, Mysterious сказал:

Проблема устранена.

ваше решение проблемы работает и меня в proE wf200

Изменено пользователем sa3m
Ссылка на сообщение
Поделиться на других сайтах
В 14.01.2017 в 20:04, Mysterious сказал:

Всем привет!
Помогите, пожалуйста, разобраться.
Сделал для фрезера пост на непрерывку 5х, работает корректно.
Решил пойти дальше, сделать пост на 3+2. Взял за основу вышеуказанный пост и включил в нем планарный режим, и тут же «привет» - неправильный расчет движения, плюс артефакт в тексте программы.

Выражаю большую благодарность Bastion'у. Благодаря ему вопрос закрыт.

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

Здравствуйте. Осваиваю по-тихоньку написание постпроцессоров. Вот столкнулся с маленькой такой проблемой. При создании полностью нового постпроцессора, в .tap файле в конце каждой строчки знак доллара $. Подскажите как его убрать?

Изменено пользователем Павел1
Ссылка на сообщение
Поделиться на других сайтах
  • 2 месяца спустя...
Павел Ишмулкин
В 28.04.2015 в 10:45, Bastion сказал:

Делаю пост на синумерик. По вашей процедуре заполняю форму на циул 800. Все отлично работает, спасибо. Но иногда получается слишком много символов в одной строке и тогда gpost вместо сформированной строки вставляет пустую строку. Как обойти ограничение на число символов во вставляемой строке?

 

В 28.04.2015 в 11:08, Bastion сказал:

Нашел решение.

Так как же это сделать:) Натолкнулся на аналогичную проблему! Два дня считал себя идиотом, все искал ошибку в синтаксисе, бросил... А вот хотелось бы узнать, как Вы преодолели эту непонятку!

 

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

@Павел Ишмулкин - писать цикл несколькими строковыми переменными, но без символа перевода каретки в конце промежуточных переменных. 

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

@Павел Ишмулкин - писать цикл несколькими строковыми переменными, но без символа перевода каретки в конце промежуточных переменных. 

Bastion, спасибо! ...Пока сделал из двух строк без отключения нумерации... Аналогично у меня было с CYCLE95(...), там тоже примерно такая же беда была - "склеил" из трех строк.... Но вообще-то я думал, что Вы что-то "модное" придумали, какой-нибудь параметр GPOST'а активировали:smile: Но все равно спасибо за ответ! 

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

А есть ли какой-нибудь способ автоматизировать постпроцессирование большого кол-ва файлов?
 

Ссылка на сообщение
Поделиться на других сайтах
8 часов назад, DJ Astro сказал:

А есть ли какой-нибудь способ автоматизировать постпроцессирование большого кол-ва файлов?
 

Что именно вы имеете ввиду? Когда нужно целую кучу ncl-ек отпостить? А закономерность в их генерации есть какая-нибудь? Ну например, все они являются сиквенсами одной операции... 

Самый простой способ - написать макрос в Creo, который генерировал ncl, постил, а потом удалял бы его, чтобы перейти к следующему, например... Как вариант. Нужно подробнее описать задачу

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

Да, хочу всю операцию постить отдельными шагами. 

Написал макросы: 1) который сохраняет ncl выдеренного в дереве сиквенса, 2) который постит выделенный в дереве сиквенс, 3) который постит любой предварительно указанный ncl.

Когда сиквенсов много - хоть макросы и облегчают работу, но количество однообразных действий напрягает.

Как написать такой макрос - пока не знаю. Подскажите, пожалуйста.

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

Да, хочу всю операцию постить отдельными шагами. 

Написал макросы: 1) который сохраняет ncl выдеренного в дереве сиквенса, 2) который постит выделенный в дереве сиквенс, 3) который постит любой предварительно указанный ncl.

Когда сиквенсов много - хоть макросы и облегчают работу, но количество однообразных действий напрягает.

Как написать такой макрос - пока не знаю. Подскажите, пожалуйста.

Я уже для кого-то делал подобный пост, который сохраняет всю операцию по сиквенсам. 

uncx01.f87

uncx01.p87

uncx01.s87

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

LxCoder, спасибо. Думал про такой вариант, но отказался от него.
Да, с реализацией разбиения с помощью поста одной общей ncl всей операции на отдельные куски нет проблем, это просто.
Но, есть проблема с модальностью вывода некоторых параметров перед каждым следующим сиквенсом, например, FEDRAT. Т.е. отдельная программа этого сиквенса, выведенная из общего ncl операции по вашему методу, будет нерабочая на станке. Или надо ооооочень сильно дорабатывать пост, чтобы шапка каждого сиквенса заполнялась недостающей информацией из предыдущего.
 

Ссылка на сообщение
Поделиться на других сайтах
10 часов назад, DJ Astro сказал:

LxCoder, спасибо. Думал про такой вариант, но отказался от него.
Да, с реализацией разбиения с помощью поста одной общей ncl всей операции на отдельные куски нет проблем, это просто.
Но, есть проблема с модальностью вывода некоторых параметров перед каждым следующим сиквенсом, например, FEDRAT. Т.е. отдельная программа этого сиквенса, выведенная из общего ncl операции по вашему методу, будет нерабочая на станке. Или надо ооооочень сильно дорабатывать пост, чтобы шапка каждого сиквенса заполнялась недостающей информацией из предыдущего.
 

Не очень сильно, не утрируйте. :) Настроить вывод шапки перед началом сиквенса - дело относительно несложное, зато вы получаете решение вашей проблемы очень красивое и без "огорода" в Creo...

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

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

Буду рассматривать этот вариант как запасной. 

Ссылка на сообщение
Поделиться на других сайтах
  • 4 недели спустя...
Павел Ишмулкин
В 11.04.2015 в 12:50, DJ Astro сказал:

VIKT0R, Metan, пасиба!!

Победил-таки камеру и теперь имею углы для PLANE SPATIAL!!!  :lighten:

Всё-таки решил добить матрицами. На деле матрицы оказались не такими страшными, как в начале представлялось.

Умножил три матрицы поворота друг на друга в таком порядке поворотов - вокруг Z -> вокруг Y -> вокруг X. Получилась конечная матрица с формулами

 

 

674d1c4fc8b609650eada3ccb04670a0.jpg

 

(вообще камера - это матрица 3х4, где 4й столбец - это координаты смещения нуля. при рассмотрении поворотов их можно не учитывать, поэтому имеем дело с матрицей 3х3)

значение каждой формулы известно из матрицы камеры. Остаётся только выразить углы из самых простых формул  - и всё!! 

Только потом для правильной трансформации координат нужно из матрицы камеры сделать обратную матрицу и пустить ее на вход в G-post с помощью команды TRANS, т.к. если использовать снова команду CAMERA, то после нее как-то неправильно пересчитываются координаты в повёрнутой СК.

 

Вроде бы всё правильно считает, но как-то подозрительно просто :biggrin:

 

Код FIL:

 

 

 

CIMFIL/ON,CAMERA
XI=POSTF(7,4)      $$ =cos©*cos(B)
YI=POSTF(7,5)
ZI=POSTF(7,6)
DI=POSTF(7,7)     $$ X datum shift
XJ=POSTF(7,8)     $$ =sin©*cos(B)
YJ=POSTF(7,9)
ZJ=POSTF(7,10)
DJ=POSTF(7,11)      $$ Y datum shift
XK=POSTF(7,12)      $$ =-sin(B)
YK=POSTF(7,13)     $$ =cos(B)*sin(A)
ZK=POSTF(7,14)      $$ =cos(B)*cos(A)       
DK=POSTF(7,15)     $$ Z datum shift
XVAL=TEXT/DI         $$ convert to text
YVAL=TEXT/DJ
ZVAL=TEXT/DK
XVAL=TEXT/OMIT,XVAL,3 $$ remove blanks
YVAL=TEXT/OMIT,YVAL,3
ZVAL=TEXT/OMIT,ZVAL,3

AVAL=ATAN2F(YK,ZK)      $$ plane spatial A
BVAL=ASINF(-XK)       $$ plane spatial B
CVAL=ATAN2F(XJ,XI)       $$ plane spatial C

AVAL=TEXT/CONVF,AVAL,10,5,1,0,5     $$ convert to text
BVAL=TEXT/CONVF,BVAL,10,5,1,0,5
CVAL=TEXT/CONVF,CVAL,10,5,1,0,5

INSERT/'; $'
INSERT/'CYCL DEF 7.0 DATUM SHIFT $'
INSERT/'CYCL DEF 7.1 X',XVAL,' $'
INSERT/'CYCL DEF 7.2 Y',YVAL,' $'
INSERT/'CYCL DEF 7.3 Z',ZVAL,' $'
INSERT/'; $'
INSERT/'PLANE SPATIAL SPA',AVAL,$
' SPB',BVAL,' SPC',CVAL,' MOVE F5000 $'
INSERT/'; $'
INSERT/'L1 Z+50 F10000 $'
INSERT/'; $'

M1=MATRIX/XI,YI,ZI,DI,XJ,YJ,ZJ,DJ,XK,YK,ZK,DK      $$ create matrix from CAMERA
M1=MATRIX/INVERS,M1       $$ inverse matrix
M1=DATA/M1        $$ convert matrix to scalar data
TRANS/M1        $$ translate all coords from CL with M1 matrix

CIMFIL/OFF

Здравствуйте DJ_ASTRO!

Воспользовался Вашей CIMFIL CAMERA процедурой! Все замечательно! Но у меня проблема (она обсуждалась в параллельной ветке) - в одной операции применяется несколько станочных нулей из-за того, что деталь "лежит" на столе и при этом ось вращения детали не совпадает с осью вращения станка. Поэтому на каждый поворот стола приходится добавлять станочный ноль - G54, G55, G56 и т.д. А так как в CREO в операции можно задать только одну систему координат (СК), то для использования нескольких нулей с трансформациями, мне приходится создавать несколько "фантомных" операций. И здесь проблема в том, что порядок переходов, который необходимо вывести в УП, отличный от порядка расположения в MFG, так как переходы одним инструментом или головой принадлежат разным операциям. Я тут попробовал выполнить двойную трансформацию через механизм подпрограмм CREO. Ну то есть в шаблоне размножения подпрограмм указал "размножение" по системам координат. И вот какие трансформации у меня получаются. В тексте op010.ncl.1 есть две CAMERA ($$CSYS). Первая указывает трансформацию G54->G55_trans, вторая G54->G55. А вот хотелось бы иметь трансформацию G55->G55_trans (результирующая УП находится в файле Траектория_1.mpf). Но эта УП получена в операции 020, а она является "фантомной". Так вот вопрос - возможно ли получить третью CAMERA  из первых двух, а затем уже применять трансформацию к перемещениям. Иметь в сессии MFG только одну операцию OP010, но УП получать, как из OP020, но не имея самой этой операции? Сама сессия MFG и результаты постпроцессирования находятся в приложении. Станок PAMA SPEEDRAM 3000 СЧПУ Sinumerik 840D/

to_DJ_ASTRO.zip

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

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

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

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

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

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

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

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

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

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

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




×
×
  • Создать...