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

Ug/open - Create Linked Body


tALEX

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

Кто о чем, а я об xform. :bleh:

Как недавно выяснилось, xform - "умное" преобразование, которое создается функциями

UF_SO_create_xform_doubles

UF_SO_create_xform_pnt_xy_dirs

UF_SO_create_xform_extract

итд

и используется в функциях

UF_WAVE_create_linked_body

UF_WAVE_create_linked_curve

итд

Ну,про то, что этот xform реально удалось создать только функцией UF_SO_create_xform_doubles, я уже не спрашиваю(потому что никто не отвечает)

А сейчас вопрос

Если xform с масштабом = 2, то UF_WAVE_create_linked_body создает тело УМЕНЬШЕННОЕ в 2 раза

а UF_WAVE_create_linked_curve создает кривую в 2 раза УВЕЛИЧЕННУЮ.

Центр масштабирования тоже при этом разный(для кривой корректно).

Это баг или фича?

Особая надежда на квалифицированние советы от niki и nut888

С уважением

tALEX

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


2 tALEX

UF_SO_create_xform_pnt_xy_dirs на самом деле все корректно

создает, только я пока не разобрался (времени нет), где в твоем коде ошибка (а она там точно есть, судя по UG-овому отладчику). По поводу scale - пока сказать ничего не могу. Когда писАл предыдущий "этюд", тоже хотел его заюзать, но так до конца и не разобрался, к какому "месту" он прикладывается ... В выходные попробую ответить на все инетересующие вопросы.

Regardzzz ...

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

2 tALEX

    UF_SO_create_xform_pnt_xy_dirs на самом деле все корректно

создает, только я пока не разобрался (времени нет), где в твоем коде ошибка (а она там точно есть, судя по UG-овому отладчику). По поводу scale - пока сказать ничего не могу. Когда писАл предыдущий "этюд", тоже хотел его заюзать, но так до конца и не разобрался, к какому "месту" он прикладывается ... В выходные попробую ответить на все инетересующие вопросы.

Regardzzz ...

<{POST_SNAPBACK}>

Хотелось бы надеяться, что ошибки у меня а не в UG/Open

(Их исправлять легче)

А UF_SO_create_xform_pnt_xy_dirs - создает то все корректно

да использовать в UF_WAVE_create_linked_body и в UF_WAVE_create_linked_curve не в хочет :(

tALEX

ps А UG-овый отладчик - это что ?

post-2859-1123159836_thumb.jpg

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

Кто о чем, а я об xform. :bleh:

Как недавно выяснилось, xform - "умное" преобразование, которое создается функциями

UF_SO_create_xform_doubles

UF_SO_create_xform_pnt_xy_dirs

UF_SO_create_xform_extract

итд

и используется в функциях

UF_WAVE_create_linked_body

UF_WAVE_create_linked_curve

итд

Ну,про то, что этот xform реально удалось создать только функцией UF_SO_create_xform_doubles, я уже не спрашиваю(потому что никто не отвечает)

А сейчас вопрос

Если xform с масштабом = 2, то UF_WAVE_create_linked_body создает тело УМЕНЬШЕННОЕ в 2 раза

а UF_WAVE_create_linked_curve создает кривую в 2 раза УВЕЛИЧЕННУЮ.

Центр масштабирования тоже при этом разный(для кривой корректно).

Это баг или фича?

Особая надежда на квалифицированние советы от niki и nut888

С уважением

tALEX

<{POST_SNAPBACK}>

tALEX

Если Ты всерьез хочешь заниматься подобными вещами

и быть способным решать вопросы самостоятельно я бы рекомендовал

для начала почитать ряд книг по компютерной геометрии

Например для начала

Эйнджел Эдвард Интерактивная компьютерная графика. Вводный курс на базе OpenGL., Пер. с англ.

Д.Роджерс Алгоритмические основы машинной графики.

Д.Роджерс, Дж. Адамс Математические основы машинной графики.

Там очень популярно и просто все написано

Пощи эти книги на lib.homelinux.ru

Если не гнайдешь напиши мне у меня есть

Если конечно для Тебя это представляет интерес

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

to nut888

Книг, рекомендованных Тобой я, к сожалению, не нашел.

(Надеюсь, что Ты мне поможешь, когда они мне понадобятся.)

Но, хотелось бы понять, как эти книги могут мне помочь в ответе на мой, достаточно конкретный вопрос об использовании функций из весьма конкретного пакета. Ведь сходство между Open/GL и UG/Open всего в одном слове, а книгу по UG/open почему то никто не предлагает :(.

И в продолжение разговора - вопрос.

Какими общими/специальными знаниями должен обладать человек, который хочет заняться программированием в UG/open ?

Или

Какие общие/специальные знания позволяют Тебе Легко программировать в UG/open ?

(Может быть стоит поучиться на курсах по UG/Open?)

(Может быть есть документация для внутреннего использования в UGS, которую стоит почитать?)

(То, что в скобках - риторические вопросы)

С уважением

tALEX

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

to nut888

Книг, рекомендованных Тобой я, к сожалению, не нашел.

(Надеюсь, что Ты мне поможешь, когда они мне понадобятся.)

Но, хотелось бы понять, как эти книги могут мне помочь в ответе на мой, достаточно конкретный вопрос об использовании функций из весьма конкретного пакета.  Ведь сходство между Open/GL и UG/Open всего в одном слове, а книгу по UG/open почему то никто не предлагает :(.

И в продолжение разговора - вопрос.

Какими общими/специальными знаниями должен обладать человек, который хочет заняться программированием в UG/open ?

Или

Какие общие/специальные знания  позволяют Тебе Легко программировать в UG/open ?

(Может быть стоит поучиться на курсах по UG/Open?)

(Может быть есть документация для внутреннего использования в UGS, которую стоит почитать?)

(То, что в скобках - риторические вопросы)

С уважением

tALEX

<{POST_SNAPBACK}>

Дело в том что есть общепринятые вещи касающиеся компьютерной графики

В данном случае речь идет о реализации алгоритма аффинных преобразоманий

(сдвиг вращение масштабирование)

Эти вещи давным давно расписаны и реализуются

однотипно в любых системах

В документации UGOPEN об этом подробно не пишется но подазумевается

что программист например знает что такое матрица трансформации

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

Что нужно в первую очередь для программирования в UGOPEN:

1) наличие фундаментальных знаний в области геометии математики инженерии

2) знание и опыт работы в UG как обычный пользователь

3) навыки программирания в c/c++

На счет курсов по UG/Open ни разу не слышал чтобы их читали

На счет метода обучения то на мой взгляд есть только один способ -

решать задачи, писать программы

Все другие методы вроде курсов консультаций не столь эффективны

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

Дело в том что есть общепринятые вещи касающиеся компьютерной графики

В данном случае речь идет о реализации алгоритма аффинных преобразоманий

(сдвиг вращение масштабирование)

Эти вещи давным давно расписаны и реализуются

однотипно в любых системах

В документации UGOPEN об этом подробно не пишется но подазумевается

что программист например знает что такое матрица трансформации

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

Что нужно в первую очередь для программирования в UGOPEN:

1) наличие фундаментальных знаний в области геометии  математики инженерии

2) знание и опыт работы в UG как обычный пользователь

3) навыки программирания в c/c++

На счет курсов по UG/Open ни разу не слышал чтобы их читали

На счет метода обучения то на мой взгляд есть только один способ -

решать задачи, писать программы

Все другие методы вроде курсов консультаций не столь эффективны

<{POST_SNAPBACK}>

Спасибо за быстрый и развернутый ответ.

Но,"прошу заметить", я не спрашивал про матрицу преобразований, не спрашивал, как что то преобразовать, используя матрицу преобразования, а спрашивал, почему ОДНО И ТО ЖЕ преобразование, примененное к телам и кривым дает РАЗНЫЕ результаты.

На, картинке, которую я сейчас приложу, преобразованию подвергаются блок и линии ребер этого блока

Кусок кода прилагается

При масштабе = 1 к результатам претензий нет

При масштабе = 2 смотри рисунок

for(j=0;j<num_OBJ;j++){

//UF_CALL(UF_SO_is_assy_ctxt_xform (xform_id[i],&is_assy_xform ));

//if(!is_assy_xform) continue;

	UF_OBJ_ask_type_and_subtype (selOBJ[j],&type,&subtype );

switch(type){

	case UF_solid_type :

        UF_CALL(

  	UF_WAVE_create_linked_body (

  	selOBJ[j],xform_id[i], current_part,order_creating,&linked_feature ));

    break;

	case	UF_line_type:

	case	UF_circle_type:

	case	UF_conic_type:

	case	UF_spline_type:

        UF_CALL(

  	UF_WAVE_create_linked_curve (

  	selOBJ[j],xform_id[i],current_part, order_creating,&linked_feature));

    break;

	default:

    break;

}//switch



}//for(j=0;j<num_OBJ;j++)

post-2859-1123238644_thumb.jpg

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

Спасибо за быстрый и развернутый ответ.

Но,"прошу заметить", я не спрашивал про матрицу преобразований, не спрашивал, как что то преобразовать, используя матрицу преобразования, а спрашивал, почему ОДНО И ТО ЖЕ преобразование, примененное к телам и кривым дает РАЗНЫЕ результаты.

На, картинке, которую я сейчас приложу, преобразованию подвергаются блок и линии ребер этого блока

Кусок кода прилагается

При масштабе = 1 к результатам претензий нет

При масштабе = 2 смотри рисунок

for(j=0;j<num_OBJ;j++){

//UF_CALL(UF_SO_is_assy_ctxt_xform (xform_id[i],&is_assy_xform ));

//if(!is_assy_xform) continue;

	UF_OBJ_ask_type_and_subtype (selOBJ[j],&type,&subtype );

switch(type){

	case UF_solid_type :

        UF_CALL(

  	UF_WAVE_create_linked_body (

  	selOBJ[j],xform_id[i], current_part,order_creating,&linked_feature ));

    break;

	case	UF_line_type:

	case	UF_circle_type:

	case	UF_conic_type:

	case	UF_spline_type:

        UF_CALL(

  	UF_WAVE_create_linked_curve (

  	selOBJ[j],xform_id[i],current_part, order_creating,&linked_feature));

    break;

	default:

    break;

}//switch



}//for(j=0;j<num_OBJ;j++)

<{POST_SNAPBACK}>

А оттрасировать по xform_id с распечаткой всей информации по smart

объекту у Тебя не возникло желание ?

UF_SO_ask_matrix_of_xform (

tag_t xform,

double matrix[ 16 ] );

Тогда можно будет делать какие то выводы

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

А оттрасировать по xform_id с распечаткой всей информации по smart

объекту у Тебя не возникло желание  ?

UF_SO_ask_matrix_of_xform (

tag_t xform,

double matrix[ 16 ] );

Тогда можно будет делать какие то выводы

<{POST_SNAPBACK}>

То есть предлагается надергать из xform тех самых матриц преобразования, распечатать и сравнить их ?

xform не меняется, матрица та же самая.

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

То есть предлагается надергать из xform тех самых матриц преобразования, распечатать и сравнить их ?

xform не меняется, матрица та же самая.

<{POST_SNAPBACK}>

Тогда видимо одна из функций UF_WAVE_create_linked_body или

UF_WAVE_create_linked_curve

работает некорректно

(либо неправильно считает либо модифицирует матрицу)

А может не стоит на один смарт вешать несколько преобразований

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

Hallo everybody.

I'm a new user from Italy.

Can someone help me?

I'm attempting to copy a solidbody as a "Position Independent Linked Body" form an assembly to its component via UGOPEN.

Using UF_WAVE_create_linked_body function I cannot obtain te "Position Independency"

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

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

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

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

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

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

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

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

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

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

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



  • Сообщения

    • zerganalizer
      Так зачем кого-то ещё принимать/обучать, если удастся заставить обойтись "собственными силами"? Общепринятый тренд...
    • zerganalizer
    • maxx2000
      @zerganalizer тогда непонятно как твоя фраза соотносится с моей. Моя чётко содержит посыл что нужно обучить , а не стричь с них бабло. 
    • zerganalizer
      Вы не поняли - меня хотят заставить прогать станки. Так, в дополнение к проектированию, а не учить кого-то. Хотя кто их хотелки-то знает...
    • Poot
      Также находил на форуме Сименс, подобный пост. _______________________________________________________________________________________________________________________ "Любопытно, что если я вхожу в систему под другой учетной записью пользователя, TeamCenter запускается успешно, но под моей учетной записью он не запускается и появляется сообщение об ошибке. в обоих случаях я вхожу с одного и того же компьютера. кто-нибудь знает, что происходит?? Спасибо" Шринивасан Р. 2 года назад Привет, Попробуйте перезапустить pool manager в командной строке с опцией DcleanDB. т.е. mgrstart -DCleanDB Если вышеперечисленное не решило проблему, в качестве обходного пути можно попробовать раскомментировать и установить «shareSession=false» в файле %%TC_ROOT%portal plugins configuration_13000.2.0lsite_specific.properties. Это будет запускать новый сеанс клиента каждый раз. _____________________________________________________________________________ вот последнее еще не пробовал «shareSession=false» А запустить pool manager в командной строке У меня две службы Pool на сервере. Teamcenter Process Manager Teamcenter Server Manager TC_ROOT_PoolA Правильно я понимаю, что я отключаю именно последнюю и в командной строке TC перехожу по пути "TC_ROOT\pool_manager\confs\TC_ROOT\mgrstart.bat" и запускаю команду mgrstart -u=infodba -p=пароль -g=dba -DCleanDB что привет к запуску службы с очищенными сеансами?   
    • Марсель
      ТФ17. 1. Проекции. Параметры/Основные/Угол...  Уважаемый SaprOnOff, скажите там, чтобы "поворота" добавили. 2. Вид/Проекция. Если с клавиатуры, то всё чётко: "слева" Ctrl+4, А почему при создании проекции (вид слева и др.) пиктограммы расположены не по ГОСТ 2.305 рис. 2?
    • Poot
      Добрый день. Впервые столкнулся с такой ошибкой. TC12.4 под Oracle12. Пользователь не может подключиться со своего аккаунта TC со своего PC к серверу.  Причем с других PC его учетная запись подключается, а так же другие учетные записи запускаются с его PC. Казалось бы ну просто сессия зависла. Но в консоли когда ее сбрасываешь, у пользователя ничего не меняется.  После перезагрузки сервера ничего не меняется. Чистка кэша не помогает.  лог когда пользователь пробует зайти на сервер из: \TC_ROOT\pool_manager\confs\TC_ROOT\logs\ServerManager\process\ServerManager.log INFO  - 2024/10/28-10:30:17,956 UTC - TC12 - "hostname-пользователя".13800.01.Anonymous.00001              - "пользователь"~"hostname-пользователя".SharedSession already has a TcServer assignment. Из консоли описание сессии: Server                                                PID      Lifecycle      User   Mode    Duration(sec) tcserver66@PoolA@9424@TC12     8100    Provisional  "user" Status    739 Обычно у сессий Lifecycle вместо временный, назначенный  Assigned:  false                        Assigned User: "user" Active: false Ready: true Abandoned: false Provisional: true Remove: false State: Stateless Last Message Number: 1 Last Message Time: Mon Oct 28 13:30:15 MSK 2024 Request Pipe Name: tcserver66@PoolA@9424@SERVERHOST Management Pipe Name: tcserver66@PoolA@9424@SERVERHOST Server ID: tcserver66@PoolA@9424@SERVERHOST Process ID: 8100 Refresh State    Shutdown Server Пробовал на сервере сбрасывать процесс по номеру PID. в tc_profilevars.bat set TC_USE_PREFS_SHARED_MEMORY=FALSE Если заново перезалить винду на PC, то никаких ошибок со входом появляться не будет... Подскажите, кто сталкивался с такой проблемой? Как удалось ее решить?
    • Error in data cross check
      Добрый день! Есть 3х осевой фрезерный станок, стойка Fanuc 0i-md. Подскажите какой параметр задает максимальную скорость вращения шпинделя в любых режимах? Хотим снизить, чтобы продлить срок службы неоригинальных подшипников.
    • maxx2000
      просто ищут дешёвый зергозаменитель коорый им приготовит сам зерг. Это звоночек что уже не тянут тебя и твои хотелки. Мой сын недавно уволился вместе со всей своей группой проектировщиков, так никому из них даже прибавку к зарплате не предложили, сказали наймут 5-6 бестолочей которые за зарплату одного всё будут делать.
    • maxx2000
      @Ninja тут и думать не о чем
×
×
  • Создать...