Приветствую! Возможно ли с помощью правила организовать связь между двумя документами (деталями)? Необходимо приравнять параметр из детали А параметру из детали Б избегая прямой ссылки между деталями
Нет, документы не находятся в одной сборке. Нужно что-то вроде:
Parameter("Имя_документа", "Имя_параметра")=Parameter("Имя_документа", "Имя_параметра_2")
Насколько мне понятно, для обмена параметрами документы должны быть открыты? Если при открытии сборки, все входящие в неё компоненты открываются в "фоновом режиме", то возможно ли реализовать такой же подход для не связанных между собой деталей?
Inventor сам откроет нужный файл, вставлять его никуда не нужно, равно как и открывать
Sub Link_Param Dim oFile As String = ThisDoc.Path & "\" & "Деталь1.ipt" Dim oDoc As Document = ThisApplication.Documents.Open(oFile, False) Dim oCD As ComponentDefinition = oDoc.ComponentDefinition oCD.Parameters.Item("Параметр_1") = Parameter.Param("Параметр_1") oDoc.Update oDoc.Save oDoc.Close End Sub
Mikhailov Andrey
Mechanical & Electronics engineer
Blog
Спасибо. Есть пара вопросов:
Общая процедура Set "Item" для типа "Parameters" не найдена. Используйте функцию CallByName с CallType.Let.
Что я делаю не так? 😃
1. В этом коде это файл детали.
2. Файл, в который вы хотите забрать параметр, должен быть сохранен. Файл, из которого забираете параметры, должен лежать в той же самой папке.
3. Попробуйте переставить местами правые и левые части равенств.
Mikhailov Andrey
Mechanical & Electronics engineer
Blog
Не помогло, к сожалению.
Параметр задан неверно. (Исключение из HRESULT: 0x80070057 (E_INVALIDARG))
Через iLogic вот так работает:
Dim oFile As String = ThisDoc.Path & "\" & "Деталь1.ipt" Dim oDoc As Document = ThisApplication.Documents.Open(oFile, False) Dim oCD As ComponentDefinition = oDoc.ComponentDefinition d0 = oCD.Parameters.Item("d0").Value*10 iLogicVb.UpdateWhenDone = True
Can't find what you're looking for? Ask the community or share your knowledge.