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

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

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




  • Сообщения

    • Nalad4eG
      Как этот "свист" сказывается на тех характеристиках? Если не существенно, то мой вас совет не трогайте будет только хуже.
    • lem_on
      Поздравляю. Но замена подшипников на таком шпинделе тот ещё квест. Нужно название шпинделя, там наклейка на борту и по нему искать чертеж. Подшипники скорее всего керамические. Сначала найти чертеж, а потом разбирать. А если нет опыта то лучше отдать тем кто умеет. Балансировку обязательно и стразу пакет тарельчатых пружин со всеми уплотнениями перетрясти. 
    • Ветерок
      Зачем это нажимать? Лучше нажать проецировать кривую. Как выяснилось :) такая функция есть. @mannul даже файл выложил - бери и смотри/повторяй.
    • Stanislav
      Относительно POP and PUP в фале постпроцессора вот такое нашел для POP прослеживается возростающая закономерность, а вот для  PUP не ясно почему прыгает значение. # POP and PUP functions for initialization. H parameters are used to  # # get the correct POP and PUP values. If the thickness of the sheet   # # is between the minimum and maximum thickness, the postprocessor     # # will use POP and PUP parameters to write them in the PS file.       # # Example: H000 0.0 1.0 30000 25000                                   # #                                                                     # #     Minimum      Maximum       POP        PUP                       # #    Thickness    Thickness     Value      Value                      # #---------------------------------------------------------------------# H001    0.0          0.5        14000      9000 H002    0.51         1.0        14500      9000 H003    1.01         1.5        15000      9000 H004    1.51         2.0        15500      9000 H005    2.01         2.5        16000      8500 H006    2.51         3.0        16500      8000 H007    3.01         3.5        17000      8000 H008    3.51         4.0        17500      8000 H009    4.01         4.5        18000      9000 H010    4.51         5.0        18500      8000 H011    5.01         5.5        19000      9000 H012    5.51         6.0        19500      8000
    • Krusnik
      Да там же ничего сложного.   Делаете вашу спираль.   Потом делаете эскиз. В эскизе нажимаете Преобразование объектов и тыкаете на созданную спираль.   Нажимаете поверхность вытянуть и выбираете только что созданный эскиз. В опциях вытягивание ставите "До поверхности". И вытягиваете спиральку до вашего купола.   И последний шаг - вырез по траектории. Думаю с этим вы без моих советов справитесь.   Лишнее скрываете и вуаля.  
    • IgP
      Это, конечно, да, не хорошо ... Но и конструктор не бог чтобы всё знать ... Для этого есть и д.б. этап "технологическая проработка", со всеми вытекающими.
    • arsenev
      Спасибо за ответ. Нет, в видео он говорит, что это такая стратегия. Пробовал использовать шаблон и обрабатывать его со смещением, получается не то (именно, когда нужно обработать цилиндрическое отверстие). Лучше отводится стружка и не мешает резанию. (см. видео, где-то с 18 минуты).
    • scrimline
      Если ещё нужна информация, fanuc oi-tf станок akira-seiki, М14 на опускание руки, для привязки и М15 для поднятия
    • Богоманшин Игорь
      Эта проблема от незнания некоторыми конструкторами технологических особенностей порошковой окраски. Максимум на чертеже научатся указывать РАЛ и толщину слоя. А необходимо предусмотреть места подвеса, можно туда шпильки или гайки запрессовать в нужных местах.
    • MagicNight
      Добрый день! Обратил внимание, что стал шуметь (свистеть) шпиндель станка, причём на всех режимах. Я так понимаю, что полетели подшипники. Хотим найти их, но не знаем как они называются, может у кого-то было подобное? Ну и отремонтировать своими силами. Станок швейцарский Mikron UCP-710 пятиосевой.  
×
×
  • Создать...