ComponentOccurrence.NameСпасибо, Михаил! Но, либо я не понял вашего ответа, либо вы моего вопроса. С помощью ComponentOccurrence.Name я могу переименовать вхождение, но имя все равно останется "стабилизированным", т.е. не будет связи между именем в дереве конструирования и фактическим именем файла детали/сборки. Мне нужно найти, как вернуть "оригинальное" имя, то есть чтобы оно не считалось "переписанным". Что означает, что при изменении имя файла детали/сборки, менялось бы и его имя в дереве конструирования.
ComponentOccurrence.Definition.Document.DisplayNameOverridden = FalseСпасибо, Алексей, но что-то у меня это не работает. Быть может подскажете, где я ошибся?
В вашем коде идет считывание свойства DisplayName (проверив, что свойство не было переписано), и присваивание его значения имени вхождения. Но по факту оригинальной ссылки на имя документа не создается. Поясню, что я имею ввиду: при вставки любой детали в сборку,изначально имя вхождения ссылается на имя документа, если "Деталь 1.ipt" в сборке командой "замена" поменять на "Деталь 2.ipt", то имя в дереве конструирования также поменяется. После исправления вашим кодом и последующей заменой детали, имя в дереве конструирования останется неизменным.Код - Visual Basic [Выбрать]
If oDoc_2.DisplayName <> oOcc.name Then oOcc.name = oDoc_2.DisplayName
если "Деталь 1.ipt" в сборке командой "замена" поменять на "Деталь 2.ipt", то имя в дереве конструирования также поменяется.Это только если пользователь не менял это имя в дереве сборки.)
Это только если пользователь не менял это имя в дереве сборки.)В этом то и суть задачи: Пользователь трогал, а я должен вернуть как было! )) Не знаю только как.
А если после замены детали еще раз запустить макрос?Да, если каждый раз запускать, он будет переименовывать, но это не является нужным решением по определенным причинам. Ищу чтобы работало, как я описал выше.
Пользователь трогал, а я должен вернуть как было! ))Для этого я и привел пример кода, после замены детали нужно запустить макрос...
Для этого я и привел пример кода, после замены детали нужно запустить макрос...
Да, если каждый раз запускать, он будет переименовывать, но это не является нужным решением по определенным причинам.