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

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


DJ Astro

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

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

 

 

 

 

CYCL DEF 7.0 DATUM SHIFT
CYCL DEF 7.1 X
CYCL DEF 7.2 Y
CYCL DEF 7.3 Z

и CYCL DEF 19.0 WORKING PLANE A B C

или PLANE SPATIAL SPA SPB SPC.

 

В настройках G-POST есть закладка Planar Macining. Там можно выбрать что выводить: 

ABC orthogonal angles

ABC machine axis angles

Euler angles

....

Вывожу ABC orthogonal angles. В обработке у меня система координат поворачивается на +90 вокруг X, т.е. для цикла PLANE SPATIAL нужно заиметь в итоге A90 B0 C0. При этом GPOST выдаёт следующие углы - A0 B90 C270.

 

Всё-таки, что это за ортогональные углы и как их привести к нужным значениям? 

 

ps. станок HURON kx50, поворотный шпиндель (Primary rotary head - Z, Secondary rotary head - Y)

 

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


Предположу, что кинематика вашего станка настроена как В и С. Соот-но, пост может ваш угол по оси А раскладывать на повороты по В и С. Если есть доступ в станку, попробуйте в MDI сначала повернуть по А+90, а потом по В и С на +90 и +270 градусов соот-но. С большой вероятностью получите один и тот же результат.

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

Предположу, что кинематика вашего станка настроена как В и С. Соот-но, пост может ваш угол по оси А раскладывать на повороты по В и С. Если есть доступ в станку, попробуйте в MDI сначала повернуть по А+90, а потом по В и С на +90 и +270 градусов соот-но. С большой вероятностью получите один и тот же результат.

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

 

Я спрашивал про углы в окошке Output Method

 

62766c2341d287eb0f8e9cf31bf4ae78.jpg

 

по идее по первому пункту G-Post должен рассчитывать углы трансформации осей системы координат без учёта кинематики станка, т.е. чтобы перейти от одной СК к другой, нужно ее повернуть на такие-то углы относительно исходной (и не важно какой станок у нас). Но даже в этом случае поворот A90 B0 C0  не равнозначен повороту A0 B90 C270 :no:  А вот у же во втором пункте должны выводиться именно углы поворота осей станка с учетом его кинематики (это даже внизу в комментариях написано). Но, что в первом, что во втором случае - выводятся одинаковые углы - A0 B90 C270. И не знаю, что с этим делать :sad:

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

Если честно, то с G-POST не имею вообще никакого опыта. :biggrin:  Просто вы спрашивали о логике работы, вот я и пояснил разницу в программном повороте и реальном, с учетом кинематики станка. :smile:

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

Коллеги, не парьте мозговые извилины себе и окружающим. Профессиональные курсы по разработке постпроцессоров заказывают нормальные техдиректора предприятий. И реселлеры от РТС обучают и сертифицируют специалистов. Это разьве так трудно?

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

Коллеги, не парьте мозговые извилины себе и окружающим. Профессиональные курсы по разработке постпроцессоров заказывают нормальные техдиректора предприятий. И реселлеры от РТС обучают и сертифицируют специалистов. Это разьве так трудно?

Курсы заказать не трудно. Трудно заказать нормального техдиректора предприятия, который заказал бы эти курсы. :wacko: 

 

Вопросы про углы ещё в силе :worthy:

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

 

Коллеги, не парьте мозговые извилины себе и окружающим. Профессиональные курсы по разработке постпроцессоров заказывают нормальные техдиректора предприятий. И реселлеры от РТС обучают и сертифицируют специалистов. Это разьве так трудно?

Курсы заказать не трудно. Трудно заказать нормального техдиректора предприятия, который заказал бы эти курсы. :wacko:

 

Вопросы про углы ещё в силе :worthy:

 

Какой смысл директору заказывать курсы по разработке постпроцессоров .Он что , в дальнейшем будет предоставлять услуги по постпроцессорам . Разве что , у него очень много оборудования с различными стойками ЧПУ. 

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

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

 

 

 

 

CYCL DEF 7.0 DATUM SHIFT

CYCL DEF 7.1 X

CYCL DEF 7.2 Y

CYCL DEF 7.3 Z

и CYCL DEF 19.0 WORKING PLANE A B C

или PLANE SPATIAL SPA SPB SPC.

 

В настройках G-POST есть закладка Planar Macining. Там можно выбрать что выводить: 

ABC orthogonal angles

ABC machine axis angles

Euler angles

....

Вывожу ABC orthogonal angles. В обработке у меня система координат поворачивается на +90 вокруг X, т.е. для цикла PLANE SPATIAL нужно заиметь в итоге A90 B0 C0. При этом GPOST выдаёт следующие углы - A0 B90 C270.

 

Всё-таки, что это за ортогональные углы и как их привести к нужным значениям? 

 

ps. станок HURON kx50, поворотный шпиндель (Primary rotary head - Z, Secondary rotary head - Y)

 

 

Смотрите, вы создали в Gpost 5ax станок с осями B и С. Но при этом хотите на выходе получить угол А, как вы себе это представляете? Какой станок и с какими осями вы изначально создали, в тех осях он и будет выводить результат.

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

привет всем.

очень интересный вопрос разложений 5 на 3+2

я пытался заниматся им но бросил потому как

команда CAMERA не всегда корректно выдавала вектора углов ну по крайней мере в версии 5

сейчас пользуюсь Creo и не проверял больше этот момент

 

если не получится через стандартные настройки то можно попробывать

все это обработать через фил

там любую команду можно обработать

 

******************************************************

сам я в дальнейшем не буду заниматся постпроцессорами поскольку

в данный момент больше административную работу выполняю чем инженерную

но могу поделится небольшими наработками на тему 5 координатного станка со стойкой хайден

если кто собирается эту тему развивать

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

привет всем.

очень интересный вопрос разложений 5 на 3+2

я пытался заниматся им но бросил потому как

команда CAMERA не всегда корректно выдавала вектора углов ну по крайней мере в версии 5

сейчас пользуюсь Creo и не проверял больше этот момент

 

если не получится через стандартные настройки то можно попробывать

все это обработать через фил

там любую команду можно обработать

 

******************************************************

сам я в дальнейшем не буду заниматся постпроцессорами поскольку

в данный момент больше административную работу выполняю чем инженерную

но могу поделится небольшими наработками на тему 5 координатного станка со стойкой хайден

если кто собирается эту тему развивать

Поделитесь, конечно. Как раз сейчас собираюсь с силами, чтобы начать писать постпроцессор для DMU 70. Любая информация будет очень полезна. 

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

Смотрите, вы создали в Gpost 5ax станок с осями B и С. Но при этом хотите на выходе получить угол А, как вы себе это представляете? Какой станок и с какими осями вы изначально создали, в тех осях он и будет выводить результат.

 

Я уже писал выше, что судя по описаниям закладки Planar Machining, при таких настройках пост должен выдавать углы поворота математических осей координат (т.е. в какую сторону и на сколько нужно крутить исходную систему координат(СК) вокруг каждой из осей, чтобы СК заняла новое положение), а не углов поворота кинематических осей станка. И эти углы никак не должны быть связаны с тем, какие оси физически есть у станка. Ведь в цикл PLANE SPATIAL можно (и нужно!) вводить сразу три угла A B C, не смотря на то, что у станка только две поворотные оси. Потом стойка эти углы пересчитает в углы физических осей станка и повернет оси станка в нужную сторону (при этом значения вычисленных углов сохраняются в параметрах стойки Q120=A, Q121=B, Q122=C). 

 

если не получится через стандартные настройки то можно попробывать все это обработать через фил там любую команду можно обработать

Это всё понятно. Вопрос стоит - КАК это правильно обработать, если КАМЕРА действительно работает не так, как хочется (ну или не так, как написано в мануале). 

Сам уже много чего раскопал в G-post'е, но вот упёрся в эту КАМЕРУ и всё :(

 

Metan, любая информация по этому вопросу была бы очень полезной!

Ссылка на сообщение
Поделиться на других сайтах
Сам уже много чего раскопал в G-post'е, но вот упёрся в эту КАМЕРУ и всё :(

А в самом файле NCL  что пишет? там цифры позиционирования должны быть теми же. Может Вы что не так делаете в УП?

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

В самом файле NCL пишет всё правильно, только цифр позиционирования там нету, там матрица векторов осей повернутой СК.

По поводу обработки CAMERA у меня есть два варианта - простой и сложный. 

Простой: в цикле PLANE SPATIAL есть ещё вариант задания плоскости обработки кроме ортогональных углов и углов Эйлера ещё и через векторы осей X и Z. А они в явном виде прописаны в матрице CAMERA. Остаётся их только извлечь и вписать в цикл PLANE VECTOR BX BY BZ NX NY NZ. Решение очень простое, рабочее, но совсем не наглядное для программиста и оператора, т.к. из кода программы не поймёшь, правильно ли поворачиваются оси. 

Сложный: каким-то образом решить адскую сисему уравнений. CAMERA - это матрица, которая является результатом перемножения трёх матриц, отвечающих за поворот вокруг каждой оси (+ учитывая последовательность поворотов). 

Есть три матрицы MX, MY, MZ известного вида, в каждой - одна неизвестная (угол повороа вокруг данной оси СК). Есть известная конечная матрица M = MX * MY * MZ, в которой углы фигурируют в немыслимых выражениях математических действий. И из этого всего надо как-то извлечь искомые углы.

 

В FIL есть команда DATA/CAM,n...с разными опциями, так же как и Planar Machining, которая должна вычислять углы поворота.

Беру матрицу из CAMERA, прогоняю со всеми возможными опциями двух вариантов - результаты разные. :(

Самое интересное, что углы осей станка выводит правильно. 

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

Да, с углами там интересно получается. Прилагаю файл с функциями (язык C) поворота стола. Сделано банально через ж$%$ прямоугольные треугольники (на большее моих математических знаний не хватило) :smile:. Но, вообще-то интересно было бы узнать, как на самом деле правильно математически вычислять, вроде через матрицу как-то надо :g:.

plane_func.txt

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

VIKT0R, поясните, пожалуйста, цепочку рассуждений при расчётах? а то я в "С" полный дуб, чтобы по коду понять что там происходит... :blush:

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

По сути логика рассуждений простая - последовательный перебор всех возможных положений координатной системы стола, с выделением каких-то случаев, типа поворота только вокруг оси X, или поворотов, кратных 90 град. В коде можете ориентироваться по комментариям на русском языке, да и по именам функций и переменных - они, как правило, "говорящие". Я просто на бумажке нарисовал все возможные положения - какой вектор в какой четверти, их проекции, а там дело техники - синус, косинус... ну и логики. Смысл такой, чтобы выяснить, поворотами вокруг каких осей и насколько градусов можно достичь указанного положения координатной системы стола.

 

По коду - например new_matrix[3][3] - это массив, представляющий матрицу CAMERA CSYS из *.ncl, поскольку в языке C счет у массивов начинается с нуля, то массив 4х4:

 

0 1 2 3

1

2

3

 

Дальше, например  (если проекция единичного вектора оси X на абсолютную систему координат равна единице - значит вокруг других осей вращения не было):

if(new_matrix[0][0] == 1.0) {      // если поворот только вокруг оси X
  UserAngleEval(new_matrix[1][1], new_matrix[2][1], &a_rad);
 }

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

 

Ну как-то так. Кстати, функция UserQuorterDefine не используется (осталась, кажется от черновика), а также есть закомментированные участки типа  /* это комментарий  */.


Вот я тогда скачал инфу по матрицам - думаю, если по науке, то где-то в этом направлении надо копать.

post-1614-0-22416500-1428605966_thumb.jpg

Матрицы (Matrix)- матрицы в С++, типы матриц, использование матриц.zip

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

все верно, только в G-post это все проще. там есть функции работающие с векторами.

матрицы решать не нужно ))

http://files.webfile.ru/file/2be4d842d759585549b965862b57a9a6

тут архив с ппостом

расчитан на XYZAC

перед использованием прочитайте коментарии в разделе фил

на выходе будет код найден. не исо !

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

Вспомнил подробности: шёл, что называется "от обратного". Повернутую уже систему координат последовательно доворачивал до исходного положения, запоминая углы поворотов. То есть, определяем сначала простые случаи - повороты под 90 град, а сложные пространственные положения последовательно сводим к простым.

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

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

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • streamdown
      Коллеги приветствую! IPS 8. Подскажите пожалуйста, кто какое серверное железо использует? Интересуют параметры при одновременной работе, ну например, 400 пользователей онлайн
    • gudstartup
      так он так и позиционируется по m19 pmc выдает g70.6 а чпу отвечает f45.7 но ориентацию и смещение в 4077 он отрабатывает нормально шпиндель встает ровно и смена происходит хорошо. вопрос почему после ввода команды управления скоростью он все еще продолжает контролировать число импульсов между нуль метками хотя в принципе уже должен отменить позиционный контроль и просто считать обороты по 0 метке как он это делает без М19? это все понятно но почему оно продолжает проверять это после завершения ориентации мне непонятно
    • Александр1979
      SP9047 SSPA:47 ILLEGAL SIGNAL OF POSITION CODER "The relationship between the A/B phase and 1-rotation signal is incorrect (Pulse interval mismatch)." "Неправильное значение счетчика импульсов сигнала на энкодере ALPHAi. На фазах A и B энкодера за один оборот шпинделя насчитывается 4096 импульсов обратной связи. Программное обеспечение по управлению шпинделем проверяет количество импульсов на фазах A и B, соответствующее энкодеру, при каждой генерации сигнала одного оборота. Данный аварийный сигнал срабатывает, если регистрируется число импульсов, нарушающее заданный диапазон."
    • vs3dpro
      Добрый день! У нас на есть SLA принтер 600х600х400мм. Можно напечатать мастер- модели, и можно приехать посмотреть. mail@iges.space
    • gudstartup
      после ввода 789 в edit mod надо перейти в режим ручное упр. нажать mod а потом помощь и откроется wzw.hlp  с возможностью выполнения команд управления atc. если не появляется содержимое wzw.hlp то возможно что у вас другой код хотя 789 'это стандарт для dmg в этом случае надо смотреть ваш plc раздел у меня пароль прописан в файле wzw_rett.mod
    • Anat2015
      SERVO TURRET AMP ALARM - переводить не пробовали, учитывая, что AMP - это и есть сервопривод? Что тут не ясного, язык не знаком?
    • Viktor2004
      я бы попробовал позиционировать шпиндель сигналом G70.6 Ответный сигнал, шпиндель сориентирован F45.7
    • gudstartup
      Здравствуйте уважаемые участники форума попрошу вас поделится мнениями. Имеется фрезерный шпиндель с позиционным кодером (зубчатое колесо и считывающая головка). Ошибку 9047 выдает после того отрабатывает M19 c последующим включением оборотов Sxxx M3 причем обороты могут быть любыми от 100-макс. Если задавать обороты без предварительной ориентации то 9047 не возникает и шпиндель нормально вращается на любой скорости при этом обороты не гуляют точность поддержания +-1 об\мин. Кабель заменен заменить сам датчик нет возможности. Мой вопрос в следующем почему шпиндель после M19 и включении управления скоростью Sxxx M3 остается в режиме позиционирования а не сразу переходит врежим управления скоростью и даже явная отмена ориентации кодом M20 ничего не меняет ведь режим позиционного управления должен быть отменен или он остается и отменяется не сразу после подачи команды M3 и кода скорости? Станок достаточно старый 2009 года плату управления шпинделем меняли на соседний ничего не изменилось. Это может быть логика PMC или скорее всего это датчик?   PMC-SB.001
    • Killerchik
      А мы-то думали, что пропорциональный гидравлический.....
    • Grig75
×
×
  • Создать...