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

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

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




  • Сообщения

    • 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.мигает больше у меня вариантов нет....  
    • ДОБРЯК
      Решите любым алгоритмом. Тогда будет конструктивный разговор. :=)
    • Fedor
      https://en.wikipedia.org/wiki/List_of_numerical_analysis_topics#Eigenvalue_algorithms     :) 
    • Юрий К.Ф.
      Добрый день. Не нашёл тут тему по стойке Китайско Китайской)) Lynuc N3ME. Видать мне так повезло с её наличием)) Приобрели 5-ти осевой Китаец. В б/у состоянии после удара по оси Z. Отремонтировали по механике, заменили батареи на драйверах, выставили лимиты. Всё Ок. Пригласили со стороны людей которые бы разобрались по операторской части. Те два выходных ковырялись, после сказали покажут расскажут, но за огромные деньги. Не сошлись. После месяц станок простоял, когда включили перестал реагировать на регулировку скорости шпинделя. То есть в режиме Jog, включаем обороты, которые стандартно 2140-2149 об/мин. При регулировке процетности не меняются (сама процентность показывает на мониторе). Так же при включении оборотов через команду M03S300 или другое значение, скорость так же показывает 2140-2149 об/мин. Грешить на тех товарищей с которыми не сошлись по деньгам для обучения, как то не хочется. Поковырялся в настройках шпинделя, вроде всё в норме. Проводку на шпинделе прозвонил, целая. В чём причина, не понятна. Кто нибудь сталкивался с подобным, или с подобной стойкой? Может подсказать варианты причины подобного?
×
×
  • Создать...