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

Linked Body, подсчет масс тел (не только Linked) [NX Open C/C++ API]


mannyz

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

Всем добрый день!

Пишу плагинчик для NX 7.0/7.5. Сразу приходится пользоваться двумя APi: Open C и последним, что NX Open C++. У меня возникло... несколько проблемных вопросов:

1. почему-то для солидов от Linked Body возвращается неверный результат статуса видимости (это который hide/show, но в API зовется как blanked). Получается, что они всегда видны. Чего только не пробовал, чтобы распознать его правильно. Стандартно для получения свойств отображения использую функцию UF_OBJ_ask_display_properties или метод isBlanked(). Пробовал брать фичу, связанную с таким linked солидом и применять к ней UF_OBJ_ask_display_properties, но не прокатывает. Еще что-то...

2. Второй вопрос и, наверное, более острый. Есть проблема получения массово-инерционных характеристик некоторых солидов (на самом деле не важно, пробовал и для comp, и для part). Использую функцию UF_WEIGHT_estab_solid_props. Для некоторых солидов возвращается какой-то мусор (степени огромные, масса отрицательная). При этом если смотреть массу через GUI как Analysis->Measure Bodies. то она считается правильно. Я это почему-то связываю с тем, что компоненты, в которые входят данные солиды, в дереве зависимостей Assembly Navigator->Dependencies (это прямо под деревом сборки) в итоге начинают ссылаться на себя же. Кстати, плотность в подобных случаях (не уверен. что во всех), возвращается через APi правильная. Но объем солида при этом нулевой. Какие-то такие симптомы.

Помогите, пожалуйста

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


Пишу плагинчик для NX 7.0/7.5. Сразу приходится пользоваться двумя APi: Open C и последним, что NX Open C++. У меня возникло... несколько проблемных вопросов:

1. почему-то для солидов от Linked Body возвращается неверный результат статуса видимости (это который hide/show, но в API зовется как blanked). Получается, что они всегда видны. Чего только не пробовал, чтобы распознать его правильно. Стандартно для получения свойств отображения использую функцию UF_OBJ_ask_display_properties или метод isBlanked(). Пробовал брать фичу, связанную с таким linked солидом и применять к ней UF_OBJ_ask_display_properties, но не прокатывает. Еще что-то...

Посмотрите может вы смотрите свойства у фичера, а надо у тела. Есть команда UF_MODL_ask_feat_body, которая из фичера (например, BLOCK) возвратить таг тела
Ссылка на сообщение
Поделиться на других сайтах

Посмотрите может вы смотрите свойства у фичера, а надо у тела. Есть команда UF_MODL_ask_feat_body, которая из фичера (например, BLOCK) возвратить таг тела

Нет, изначально я и смотрю на солид. Я запрашиваю у WorkPart его солиды через метод Bodies(). Затем с помощью итератора пробегаюсь по ним и, грубо говоря, спрашиваю ->isBlanked(). С обычными (не linked) солидами все нормально. Но linked всегда возвращает, что он видимый (show).

Дальше я уже стал мудрить. Пробовал брать фичу у таких солидов и смотреть ее статус через UF_OBJ_ask_display_properties(). Но получается фигня.

Вот. И не знаю что делать. Ну, точнее больше ничего не делаю )).

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

2. Второй вопрос и, наверное, более острый. Есть проблема получения массово-инерционных характеристик некоторых солидов (на самом деле не важно, пробовал и для comp, и для part). Использую функцию UF_WEIGHT_estab_solid_props. Для некоторых солидов возвращается какой-то мусор (степени огромные, масса отрицательная). При этом если смотреть массу через GUI как Analysis->Measure Bodies. то она считается правильно. Я это почему-то связываю с тем, что компоненты, в которые входят данные солиды, в дереве зависимостей Assembly Navigator->Dependencies (это прямо под деревом сборки) в итоге начинают ссылаться на себя же. Кстати, плотность в подобных случаях (не уверен. что во всех), возвращается через APi правильная. Но объем солида при этом нулевой. Какие-то такие симптомы.

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

Действительно, при использовании метода UF_WEIGHT_estab_solid_props() в некоторых случаях возвращается какой-то мусор. И это несмотря на то, что в самом NX (если запрашивать через GUI) показатели МИХ-ов выглядят вполне адекватными. Но хорошо, что разработчики NX запасливые и предусмотрели помимо методов серии UF_WEIGHT_estab_чего-то-там метод UF_MODL_ask_mass_props_3d(). Он пока не подводит и считает все верно. И что самое полезное - это то, что отрабатывает он заметно быстрее, чем его собрат UF_WEIGHT_estab_solid_props(). Ох уж мне эти программисты...

Вот еще. Только надо помнить, что UF_MODL_ask_mass_props_3d() возвращает Products of Inertia, грубо говоря, в соглашениях, принятых у инженеров, то есть как компоненты тензора без минуса. Короче, минус надо дописывать

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • hlibhlib
      Так решили?  https://disk.yandex.ru/d/ZDWZv8p_B7l6nw
    • nicomed
      Я не программист, тем более не системщик. Могу только гипотетически предполагать что разные версии NET Framework в системе... я писал под 4.7.2. Переписывать с отловом ошибок , если честно лень. Тут вообще глаза на лоб лезут. Из не стандартных Майкрософтовских библиотек использовались только библиотеки от Солид-а. Что там может хотеть автозагрузки не представляю. Обычное WPF приложение. Исходники в доступе. С похожим сталкивался к каком аспекте: Когда у себя тестировал скрытие кромок, то для того, что бы сделать все кромки опять видимыми, то переходил в режим видимости кромок в Солиде ( ) и нажимал кнопку "Сбросить все". Визуально все кромки делались видимые. Потом после использования  макроса все кромки, что до этого скрывались и проявились после нажатия кнопки - скрывались вновь.   При тестах на 2-х машинах Вин10 СВ21 - пока проблем не было.
    • maxx2000
      выдавить на экструдере и пилой шик-шик, как колбасу, а не заниматься суходрочкой. если это корпуса с интегрированным оребрением, вложиться в литье люминя под давлением.
    • Говорящий Огурец
      Во, вспомнил, где я картинки видел! :) Инструкция по эксплуатации Sandvik Coromant. Обработка титана. Техническое руководство.pdf Начиная с 91-й страницы.   Чисто интуитивно применял нечто подобное на алюминии и технических пластиках при фрезеровке ребер/стенок
    • Kelny
      Так же меню Инструменты-Параметры...-Настройки пользователя-Эскиз-Взаимосвязи/привязки
    • advocut
      @hlibhlib https://dropmefiles.com/oTuAs  Вот такая была ещё (эту разрешили). Непонятно, как вообще сказать каму, откуда заходить (надо или снаружи, или в заранее просверленные отверстия и чтобы не на бобышки), тем более тут ещё и узкое место есть, т.е. вообще два захода надо.
    • AlexKaz
      Будет только МКЭ или и аналитика + натурный эксперимент?
    • malvi.dp
      На 16 солиде (win7) работает не стабильно бывает солид крошится,  при нажатии на кнопку "закрыть" вылезает окно: Ещё почему-то попыталось добавиться в автозагрузку В 20 солиде бывает удаляет не только выделенную кромку, а и другие. При выделении силуэтной кромки на ее месте рисует около 20 линий.
    • Kelny
      Это странно, бывает, что слетают все настройки - особенно своих кнопок, но что бы панельки бегали по экрану не замечено. Хотя на первой вашей картинке похоже, что панелька с закладками не привязана к окну программы, а во втором как раз таки привязана.   Так же если откроете окно настройки панелей, то на закладке ПАНЕЛИ ИНСТРУМЕНТОВ есть галочка Заблокировать КоммандМанаджер и панели инструментов - после этого движение панелек пользователем в окне программы ограничено.
    • Борман
      Только сила А. в жидкости действует вверх до самого "конца", а вы получили действие вверх на величину деформации. Типа встали в какашку, а она сбоку вылезла выше уровня подошвы.
×
×
  • Создать...