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

уникальная идентификация объекта через Open API


mannyz

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

Здравствуйте!

Скажите, пожалуйста, есть ли способ однозначной идентификации объекта в NX посредством предоставляемого API (для C/C++)?

Получается следующее. У всех объектов NX есть tag-и. В принципе, можно к ним привязаться, но есть одно но... От сессии к сессии tag-и могут изменяться. Допустим, при первом запуске NX я сразу же открыл свой файл assy1.prt. И у его объектов какие-то значения tag-ов. При втором запуске NX я сначала открываю файл assy2.prt, а потом только assy1.prt. И получается, что для файла assy1.prt tag-и объектов уже другие нежели в первом случае запуска NX.

Вообще, задача стоит следующая. Надо уметь сопоставлять некую информацию (которая хранится, допустим в файле на диске и добывается путем запуска плагина в NX) с определенными объектами (компонентами) моделей NX. Имеются в виду конкретные объекты сборки (или там не сборки), а не объекты определенного типа. При этом требуется, чтобы при последующих запусках NX и плагина эта информация могла бы, грубо говоря, находить тот объект, к которому она привязана. Желательно, чтобы при каких-то не фатальных изменениях модели (например добавили еще один компонент или удалили) эта связь не терялась.

Ориентироваться на порядок расположения компонентов в дереве сборки нельзя. Так как NX автоматически расставляет добавляемые компоненты и не всегда в конец. или же случай удаления компонента.

кстати, есть еще такой вопрос. если мы для какого-то подкомпонента в сборке заменили файл (nx ведь ссылается на имя файла при вставке компонента), а точнее его содержимое, то, чисто гипотетически, может ли NX открыть сборку с такой подменой и подставить все с учетом измененного содержимого компонента? У меня сборка открылась, но подмененный компонент был неактивным.

Может быть, надо копать в сторону UDO? Но хотелось бы не привязываться к конкретным возможностям CAD-а, так как подобный функционал надо будет реализовать в других системах.

Скажите, вообще где можно найти какую-либо техническую документацию по внутренностям NX? например, как формируются tag-и.

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

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


Скажите, пожалуйста, есть ли способ однозначной идентификации объекта в NX посредством предоставляемого API (для C/C++)?

Этот вопрос уже обсуждался здесь воспользуйтесь поиском. Копать надо в сторону UF_TAG_ask_handle_of_tag

кстати, есть еще такой вопрос. если мы для какого-то подкомпонента в сборке заменили файл (nx ведь ссылается на имя файла при вставке компонента), а точнее его содержимое, то, чисто гипотетически, может ли NX открыть сборку с такой подменой и подставить все с учетом измененного содержимого компонента? У меня сборка открылась, но подмененный компонент был неактивным.

Ничего не понятно, что все же надо сделать, можно на кошечках?
Ссылка на сообщение
Поделиться на других сайтах

Этот вопрос уже обсуждался здесь воспользуйтесь поиском. Копать надо в сторону UF_TAG_ask_handle_of_tag

О! Спасибо большое! Это то, что надо. Видимо.

Ничего не понятно, что все же надо сделать, можно на кошечках?

меня всегда почему-то просят объяснить на кошечках - это становится подозрительным :).

значит так. у нас есть три файла part1.prt, part2.prt и assy.prt. Соответственно, assy.prt содержит в себе сборку из компонентов, которые представляют файлы part1.prt и part2.prt. Затем я вручную беру и через средства Windows операцией копирования замещаю файл part1.prt на какой-либо другой с таким же именем. После этого я открываю файл сборки assy.prt. И теперь возникает вопрос: при открытии этой сборки (assy.prt) сможет ли NX каким-либо образом нормально воспринять такую подмену и подставить новое содержимое файла part1.prt? Или такое в принципе не возможно?

У меня получилось так, что сборка то открылась, но подмененный компонент не загрузился.

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

значит так. у нас есть три файла part1.prt, part2.prt и assy.prt. Соответственно, assy.prt содержит в себе сборку из компонентов, которые представляют файлы part1.prt и part2.prt.

Затем я вручную беру и через средства Windows операцией копирования замещаю файл part1.prt на какой-либо другой с таким же именем. После этого я открываю файл сборки assy.prt. И теперь возникает вопрос: при открытии этой сборки (assy.prt) сможет ли NX каким-либо образом нормально воспринять такую подмену и подставить новое содержимое файла part1.prt? Или такое в принципе не возможно?

У меня получилось так, что сборка то открылась, но подмененный компонент не загрузился.

Есть несколько нюансов:

1. Опции загрузки

2. Как было сделано "копирования замещаю файл part1.prt на какой-либо другой с таким же именем"

Если в опциях загрузки сборки стоит разрешить замену ВКЛ, то компонент автоматически замениться тот, что на диске, если ВЫКЛ, то замены не будет

Если вы скопируете файл part1.prt в part11.prt измените его и переименуете part1.prt - part1_old.prt, а part11.prt в part1.prt, то замена произойдет без сучка. Сам файл не меняется (его ID остается темже, имя тоже)

Если создадите новый файл с именем part1.prt, а старый переименуете, то при включенной опции загрузки разрешить замену, замена произойдет, то сругается "Деталь не является правильной версией детали компонента" и при этом слетят ограничения сборки линковки и т.д.

Ну как то так

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

Если создадите новый файл с именем part1.prt, а старый переименуете, то при включенной опции загрузки разрешить замену, замена произойдет, то сругается "Деталь не является правильной версией детали компонента" и при этом слетят ограничения сборки линковки и т.д.

У меня второй вариант событий. То есть, грубо говоря, берем какой-нибудь левый файл и переименовываем его в part1.prt, а оригинальный part1.prt удаляем. Кстати, у меня именно такое сообщение ("Деталь не является правильной версией детали компонента") и выскакивало. Только я не совсем понял - замена произойдет или нет? Не совсем ясна фраза

то при включенной опции загрузки разрешить замену, замена произойдет, то сругается

.

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

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

У меня второй вариант событий. То есть, грубо говоря, берем какой-нибудь левый файл и переименовываем его в part1.prt, а оригинальный part1.prt удаляем. Кстати, у меня именно такое сообщение ("Деталь не является правильной версией детали компонента") и выскакивало. Только я не совсем понял - замена произойдет или нет? Не совсем ясна фраза .

Если опция загрузки разрешить замену ВКЛ, то замена произойдет!
Ссылка на сообщение
Поделиться на других сайтах
  • 11 лет спустя...

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Артур8991
    • soldo
      @maxx2000 Спасибо за развернутый ответ, очень помогли! @ak762 Благодарю, хороший вариант.
    • ak762
      holder - держатель, и так как узел используется для закрепления инструмента, в адаптированном на русский я бы использовал резцедержатель  в конкретном случае похоже sleeve эквивалент collet т.е. цанга получается 5 spindle sleeve holder = 5-ти местный цанговый держатель/резцедержатель
    • ДОБРЯК
      А что еще остается делать. В Ансис точно частоты будут разные, даже не сомневайтесь...
    • ДОБРЯК
      Кроме собственных чисел нужно еще и собственные вектора найти. Вы даже не понимаете задачи. Надо решить квадратное уравнение, чтобы найти два собственных числа и вектора для задачи любой размерности. Такой глупости я еще не слышал. Поэтому и смеюсь над вашими знаниями, которые вы еще в детском саду получили. И этим гордитесь... :=)
    • maxx2000
      прямо по чертежу 1. инструмент 2.гайка цангового патрона типа ER 3. хвостовик цангового патрона 4 многоместный держатель 5. Фиксирующие винты   Открутите гайку цангового патрона и установите в неё цангу нужного размера, накрутите на место; Установите в цангу инструмент и затяните гайку цангового патрона; Ослабьте крепёжные винты на многоместном держателе и отрегулируйте положение инструмента; Затяните фиксирующие винты;
    • Ander
    • ak762
      я бы попросил у заказчика дать конкретную марку применяемого материала и использовать эти данные для расчета судя по данным с MatWeb https://www.matweb.com/search/DataSheet.aspx?MatGUID=08fb0f47ef7e454fbf7092517b2264b2 там разброс механических свойств материала существенный включая зависимость от наполнителя и способа изготовления    
    • Jesse
      потестил со смещённым колесом.. Если коротко, то печаль)) В модальнике прикладываю вращение в разные сторона, частота та же. Пробовал даже "гнуть в разные стороны" - извлекать деформированные модели, когда уск. своб. падения направлено вверх и вниз. В модальниках частота та же, без изменения.. @Борман@AlexKazну что ж, если выкрутиться никак, будем осваивать Ansys. Чё ещё остаётся делать?!)))) Вроде какие-то видосики есть на ютюбе. Спс за овтеты)
    • soldo
      Приветствую всех! Часто искала информацию на форуме, связанную с переводом, но кое-что не могу найти и хочу попросить о помощи. Я перевожу инструкцию для токарного автомата продольного точения и не очень хорошо понимаю все, что связано с креплением инструмента к станку. Конкретно меня интересуют следующие вопросы. Станок оснащен разными инструментальными блоками, есть суппорт с резцами, блок с инструментами для поперечного сверления и т.д.  И есть один блок, который на корявом английском называется 5 spindle sleeve holder, На этом блоке 5 шпинделей и на них можно закрепить инструмент для сверления, нарезания резьбы и растачивания. В названии этого блока фигурируют какие-то втулки (sleeve), предполагаю, что это патроны? Вот, что примерно написано в инструкции по поводу установки инструмента в этом блоке: (1) Ослабьте стопорный винт ② и установите режущий инструмент ① на втулку ③. (2) Затяните стопорный винт ② и закрепите режущий инструмент ① на втулке ③. (3) Ослабьте резьбу ⑤ и вставьте втулку ③ в блок ④ . (4) Переместите втулку ③ в направлении длины и отрегулируйте прямоугольное положение режущего инструмента ①. (5) После регулировки затяните резьбу ⑤ и зафиксируйте втулку ③. Мой вопрос: как можно назвать этот блок и что это за "втулка"?  Прикрепляю ссылку, на ней скриншоты из инструкции с общим видом инструментальной системы, 5-шпиндельного блока и соответствующих инструментов для сверления. https://imgur.com/a/fpBgmLA
×
×
  • Создать...