Можно ли перенести идентификаторы?

Автор Тема: Можно ли перенести идентификаторы?  (Прочитано 4597 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн filatАвтор темы

  • ADN Club
  • ****
  • Сообщений: 265
  • Карма: 2
Каждый элемент (вершина, ребро, круг, дуга, ...)  имеет свой идентификатор (уникальный код, который генерируется при создании данного элемента), по которому, например, в сборке привязки разпознают что и с чем должно быть совмещено...
Существует ли какой-нибудь способ переноса идентификатора от одного элемента на другой?
Поясню на примере: есть деталь из листового материала с отверстием, которая входит в сборки и привязывается за это отверстие. Мне нужно в детали заменить отверстие на овальную выштамповку. И в результате я хочу чтоб при открытии сборки привязка не вызвала ошибку, а определила дугу овала как родную...

Оффлайн Владимир Ананьев

  • ADN DevHelp
  • *
  • Сообщений: 148
  • Карма: 8
ReferenceKey является не только уникальным идентификатором, но и Read-Only.  Подменить его средствами Inventor API не удастся.  В описываемом случае надо привязываться к инвариантной геометрии, которая не исчезает при замене одного конструктивого элемента на другой.

Альтернативный вариант - привязку проверять программно и при необходимости перепривязывать, используя имена элементов, атрибуты и т.п.
Иногда используют iMate
  • в Инвенторе уже есть интерфейс для создания iMate (в отличие от атрибутов),
  • у iMate есть имя, видимостью имен можно управлять,
  • внутри iMate живет честная ссылка на геометрию B-Rep.



Оффлайн filatАвтор темы

  • ADN Club
  • ****
  • Сообщений: 265
  • Карма: 2
iMate не получается использовать в больших сборках - так как есть много разных соединение и много одинаковых деталей...
ReferenceKey остается уникальным только до тех пор, пока не начинают создаваться новые детали методом копирования старых - а это из основных методов моделирования в АИ... Разумеется нельзя допускать копирование ReferenceKey внутри одной детали, а вот копирование между деталями и перенос внутри детали - это уже нужная вещь!
Как и с любой технологией - эту можно довести до абсурда, но если ее применять правилно, то она будет чрезвычайно нужной и полезной!

Оффлайн Владимир Ананьев

  • ADN DevHelp
  • *
  • Сообщений: 148
  • Карма: 8
Если стоит задача лишь найти элемент геометрии для построения зависимости, то присмотритесь к атрибутам.  Это самое простое решение.  Копирование деталей сохраняет атрибуты.  См. объект AttributeManager.
Кстати, Inventor ETO для именования геометрических соучастников будущих сборочных зависимостей (этап "adoption") использует именно атрибуты :)

См. также http://forums.autodesk.com/t5/Inventor-Customization/Attribute-Helper-for-Inventor-2012/td-p/4769471
Adam Nagy дал там ссылку на GitHub - он залил туда утилиту AttributeHelper от Брайана Икинса.   Может быть  полезна для быстрого просмотра атрибутов в деталях.

Понятное дело, что если вы пометили атрибутом грань, а потом эту грань поделили на несколько новых, то судьба того атрибута нуждается в выяснении.  Тут ситуация мало отличается от ссылочных ключей ReferenceKeys.

Разумный выход - использование для привязок геометрии, которая локальным редактированием не затрагивается.  Эта простая идея в полное мере используется, например, в каркасном (скелетном) моделировании.