Inventor и промышленное производство – Русский – только для чтения
Делитесь знаниями, задавайте вопросы, читайте самые популярные темы по Inventor.
отмена
Отображаются результаты для 
Показать  только  | Вместо этого искать 
Вы имели в виду: 
Ответить
Сообщение 1 из 8
mikoyan985
782 просмотров, 7 ответов

iLogic и VBA

Приветствую! Возможно ли с помощью правила организовать связь между двумя документами (деталями)? Необходимо приравнять параметр из детали А параметру из детали Б избегая прямой ссылки между деталями

7 ОТВЕТ 7
Сообщение 2 из 8
MikhailovAndrey
в ответ: mikoyan985

Добрый день! 

 

Детали находятся в одной сборке?

 

Тогда 

 

Parameter("Имя_компонента_1:1", "Имя_параметра")=Parameter("Имя_компонента_2:1", "Имя_параметра_2")=

Mikhailov Andrey
Mechanical & Electronics engineer
Blog

Сообщение 3 из 8
mikoyan985
в ответ: MikhailovAndrey

Нет, документы не находятся в одной сборке. Нужно что-то вроде:

Parameter("Имя_документа", "Имя_параметра")=Parameter("Имя_документа", "Имя_параметра_2")
Насколько мне понятно, для обмена параметрами документы должны быть открыты? Если при открытии сборки, все входящие в неё компоненты открываются в "фоновом режиме", то возможно ли реализовать такой же подход для не связанных между собой деталей?

 

Сообщение 4 из 8
MikhailovAndrey
в ответ: mikoyan985

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

Сообщение 5 из 8
mikoyan985
в ответ: MikhailovAndrey

Спасибо. Есть пара вопросов:

  1. Деталь_1 это сборка/деталь?
  2. В строке oCD.Parameters.Item("d1") = Parameter.Param ("A1") выдаёт ошибку :

Общая процедура Set "Item" для типа "Parameters" не найдена.  Используйте функцию CallByName с CallType.Let.

 

 Что я делаю не так? 😃

Сообщение 6 из 8
MikhailovAndrey
в ответ: mikoyan985

1. В этом коде это файл детали.

2. Файл, в который вы хотите забрать параметр, должен быть сохранен. Файл, из которого забираете параметры, должен лежать в той же самой папке.

3. Попробуйте переставить местами правые и левые части равенств.

 

 

Mikhailov Andrey
Mechanical & Electronics engineer
Blog

Сообщение 7 из 8
mikoyan985
в ответ: MikhailovAndrey

Не помогло, к сожалению.

Параметр задан неверно. (Исключение из HRESULT: 0x80070057 (E_INVALIDARG))

Сообщение 8 из 8
nikita.kapustin
в ответ: mikoyan985

Через 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

 

Не нашли то, что искали? Задайте вопросы в сообществе или поделитесь своими знаниями.

Новая тема  

Autodesk Design & Make Report