Сообщество программистов Autodesk в СНГ

ADN Club => Inventor API => Тема начата: R.I.Chernov от 23-07-2016, 14:27:03

Название: Управление именем вхождений в дереве конструирования.
Отправлено: R.I.Chernov от 23-07-2016, 14:27:03
Доброго времени суток, уважаемые форумчане. Прошу вашей помощи в решении такой вот задачи:
Я программно строю силовой каркас стены, т.е. вставляю большое количество проката (уголки, швеллеры и т.п.). Алгоритм вставки всегда один и тот же, зависит лишь от вводимых геометрических параметров. Т.е. когда пользователь перестраивает каркас по новым данным, удаляются старые вхождения и повторно вставляются новые. Проблема заключается в том, что при повторной вставке идет сквозной подсчет деталей в сборке, т.е. к имени вставляемой детали добавляется все больший и больший индекс. Например "Уголок_1:1188". "Швеллер:771". Я понимаю что эти индексы будут стремиться к бесконечности, и с этим надо что-то делать. Не подскажете, как можно программно обнулять вот этот подсчет внутри сборки, или быть может какое-то другое решение можете посоветовать?
Название: Re: Управление именем вхождений в дереве конструирования.
Отправлено: mikazakov от 24-07-2016, 06:54:22
и с этим надо что-то делать.
А зачем если в конце разработки все и так будет переименовано в Дизайн Асистенте или Ваульте?

Там видимо встроенный генератор индексов, но если уж шибко нужно можно самому переименовывать через ComponentOccurrence.Name
Название: Re: Управление именем вхождений в дереве конструирования.
Отправлено: R.I.Chernov от 24-07-2016, 15:13:14
и с этим надо что-то делать.
А зачем если в конце разработки все и так будет переименовано в Дизайн Асистенте или Ваульте?
Ну будут переименованы имена деталей в папках, а не их имена в браузере.

Там видимо встроенный генератор индексов, но если уж шибко нужно можно самому переименовывать через ComponentOccurrence.Name
Я уже пытался так делать, только через раз вылетает ошибка, и я не могу понять почему. Чтобы избавиться от нее я пробовал использовать "try catch" и выходит, что имена вхождений то переименовываются, то нет. :( Не могу найти причину.

Название: Re: Управление именем вхождений в дереве конструирования.
Отправлено: Александр Ривилис от 24-07-2016, 18:13:17
только через раз вылетает ошибка
Какая? Не совпадает новое имя с уже существующим именем?
Название: Re: Управление именем вхождений в дереве конструирования.
Отправлено: filat от 25-07-2016, 08:10:17
только через раз вылетает ошибка
Какая? Не совпадает новое имя с уже существующим именем?
Кстати, я тоже сталкивлся с этой фигней... Процедура присвоения нового имени, в некоторых случаях, завершается ошибкой - не знаю почему...
P.S. Но мне в этой ситуации легче - у меня наименование и обозначение генерируются при создании элемента...
Название: Re: Управление именем вхождений в дереве конструирования.
Отправлено: R.I.Chernov от 27-07-2016, 11:45:03
Какая? Не совпадает новое имя с уже существующим именем?

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