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

Как назначить материал в NX4?


Defender

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

Здравия, всем!

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

Вообще интересует задание различных параметров, а не просто выбор материала из библиотеки. Но если подскажите как назначить материал из библиотеки материалов - буду счастлив.

Изучил справку вдоль и поперек. В NXOPEN.UF.UFWEIGHT есть функции задающие weight referense set на основе ссылочного набора детали.

В NXOPEN.UF.UFsf есть LinkMaterial, но по другим членам этого класса явно видно что разговор идет о "расширенной симуляции" - о сетках, FEM-ах, SIM-ах и прочем.

В NXOPEN.UF.UGLib есть запросы к библиотекам. Но складывается впечатление, что с материалами это вообще не связано.

В моделировании, т.е. UFModl, есть установка плотности на тело. Она работает, к телу действительно приписывается плотность. Но мне нужно, чтобы создался материал в списке материалов, и чтобы можно было задать другие свойства материала.

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

Заранее благодарен!

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


Эти ф-ции (UGOpen) afaik будут работать только со старой библой материалов iso/ortho/aniso/fluid (phys_material.dat)

//Запросили все (или по типам) материалы в библиотеке

UF_SF_ask_library_materials

//прицепили/отцепили материал от body

UF_SF_link_material/UF_SF_unlink_material

//спросили назначенный материал у body

UF_SF_locate_material

//!!возможно!! отредактирует параметры материала в части (не в библиотеке)

UF_SF_update_material

//создали материал и его св-ва врукопашную

UF_SF_create_material

//!!возможно!! отыскали материал по имени в части (не в библиотеке)

UF_SF_locate_named_material

//получили свойства материала (в части)

UF_SF_ask_material

//

Для NXOpen (должно работать и со старой библой phys_material.dat и с новой (MatML)) :

NXOpen::Session * nxsess = NXOpen::Session::GetSession();

NXOpen::Part * wp = nxsess->Parts()->Work();

//материалы в части (если они есть)

NXOpen::PhysicalMaterialCollection * materials = wp->MaterialManager()->PhysicalMaterials();

//затаскиваение из "своего" xml

m_part->MaterialManager()->PhysicalMaterials()->LoadFromMatmlLibrary();

... дальше писать лень, так как вопрос о UGOpen :)

Regardzzz ...

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

Проблема осталась, увы!

У меня нет таких функций, как:

UF_SF_update_material

UF_SF_create_material

NXOpen::PhysicalMaterialCollection * materials = wp->MaterialManager()->PhysicalMaterials();

Их нет и в справке, и так же не видно во время программирования.

Непонятно, почему что-то из описываемого вами у меня в UF_SF есть, а чего-то нет.

Никаких намеков на Material Collection() тоже нету.

Как быть?

Пишу в MS Visual Studio 2003, на Vb.NET.

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

Непонятно, почему что-то из описываемого вами у меня в UF_SF есть, а чего-то нет.

Тут все просто :) Я описывал C/C++ API, а у тебя VB.NET (сорри, я проглядел это в изначальном посте).

Соответственно, в NXOpen API для С#/VB.NET есть так называемый мост на старый API (user function).

Это набор классов / методов в NXOPEN.UF.*

К сожалению, методы, предоставляемые этим мостом, есть не ко всем ф-циям из старого API.

Но ещё ничего не потеряно. Мы же можем заюзать DllImport и вызвать все C API ф-ции напрямую из managed кода.

Regardzzz ...

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

К сожалению, методы, предоставляемые этим мостом, есть не ко всем ф-циям из старого API.

Но ещё ничего не потеряно. Мы же можем заюзать DllImport и вызвать все C API ф-ции напрямую из managed кода.

Чем больше узнаю, тем сильнее ощущается то, как мало я знаю.

Звучит многообещающе, но про DllImport и С-функции я совершенно не понял.....

ps. успокаиваю себя мыслью, что по образованию конструктор, а не программист ))

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

Эти ф-ции (UGOpen) afaik будут работать только со старой библой материалов iso/ortho/aniso/fluid (phys_material.dat)

//Запросили все (или по типам) материалы в библиотеке

UF_SF_ask_library_materials

//прицепили/отцепили материал от body

UF_SF_link_material/UF_SF_unlink_material

//спросили назначенный материал у body

UF_SF_locate_material

//!!возможно!! отредактирует параметры материала в части (не в библиотеке)

UF_SF_update_material

//создали материал и его св-ва врукопашную

UF_SF_create_material

//!!возможно!! отыскали материал по имени в части (не в библиотеке)

UF_SF_locate_named_material

//получили свойства материала (в части)

UF_SF_ask_material

//

Для NXOpen (должно работать и со старой библой phys_material.dat и с новой (MatML)) :

NXOpen::Session * nxsess = NXOpen::Session::GetSession();

NXOpen::Part * wp = nxsess->Parts()->Work();

//материалы в части (если они есть)

NXOpen::PhysicalMaterialCollection * materials = wp->MaterialManager()->PhysicalMaterials();

//затаскиваение из "своего" xml

m_part->MaterialManager()->PhysicalMaterials()->LoadFromMatmlLibrary();

... дальше писать лень, так как вопрос о UGOpen :)

Regardzzz ...

а вот функцией LoadFromMatmlLibrary("name") мы загружаем материал с определенным именем. А как получить все материалы, которые есть в библиотеке?

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

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