Сообщество программистов Autodesk в СНГ
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
1 час
1 день
1 неделя
1 месяц
Навсегда
Новости:
Звонок в техподдержку Autodesk Forge
Начало
Сайт
Правила
Помощь
Поиск
Непрочитанные
Календарь
Вход
Регистрация
Сообщество программистов Autodesk в СНГ
»
ADN Club
»
Inventor API
»
Изоляция сборок и деталей
« предыдущая тема
следующая тема »
Печать
Страницы: [
1
]
Вниз
Автор
Тема: Изоляция сборок и деталей (Прочитано 4711 раз)
0 Пользователей и 1 Гость просматривают эту тему.
Vladislav
ADN OPEN
Сообщений: 210
Карма: 0
Изоляция сборок и деталей
«
:
04-06-2019, 14:04:16 »
Добрый день.
Подскажите пожалуйста, как средствами Inventor API изолировать деталь или сборку.
То есть нужно получить результат, аналогичный использованию команды "Изолировать" контекстного меню.
Спасибо за информацию.
Записан
Отмечено как Решение
Vladislav
04-06-2019, 17:30:12
xzenter
ADN OPEN
Сообщений: 29
Карма: 1
Skype:
Re: Изоляция сборок и деталей
«
Ответ #1 :
04-06-2019, 14:27:30 »
Правило iLogic, которое необходимо запустить в сборке:
Код - vb.net
[Выбрать]
Dim
oAsmDoc
As
AssemblyDocument
oAsmDoc
=
ThisApplication.
ActiveDocument
Dim
oAsmDef
As
AssemblyComponentDefinition
oAsmDef
=
oAsmDoc.
ComponentDefinition
Dim
oLeafOccs
As
ComponentOccurrencesEnumerator
oLeafOccs
=
oAsmDef.
Occurrences
.
AllLeafOccurrences
Dim
oOcc
As
ComponentOccurrence
For
Each
oOcc In oLeafOccs
If
oOcc.
Visible
=
True
Then
oOcc.
Visible
=
False
End
If
Next
Записан
xzenter
ADN OPEN
Сообщений: 29
Карма: 1
Skype:
Re: Изоляция сборок и деталей
«
Ответ #2 :
04-06-2019, 15:11:31 »
Вот решение. Необходимо выделить компонент в сборке и выполнить правило:
Код - vb.net
[Выбрать]
Dim
oAsmDoc
As
AssemblyDocument
oAsmDoc
=
ThisApplication.
ActiveDocument
' Должен быть выделен компонент или помещен в коллекцию SelectSet
Dim
selSet
As
SelectSet
selSet
=
oAsmDoc.
SelectSet
' Получаем кнопку, которая отвечает за изоляцию компонента
Dim
oCtrlDef
As
ControlDefinition
oCtrlDef
=
ThisApplication.
CommandManager
.
ControlDefinitions
.
Item
(
"AssemblyIsolateCmd"
)
' Нажимаем кнопку
oCtrlDef.
Execute
(
)
Записан
Vladislav
ADN OPEN
Сообщений: 210
Карма: 0
Re: Изоляция сборок и деталей
«
Ответ #3 :
04-06-2019, 15:36:31 »
Благодарю
Записан
Александр Ривилис
Administrator
Сообщений: 13886
Карма: 1788
Рыцарь ObjectARX
Skype:
Re: Изоляция сборок и деталей
«
Ответ #4 :
04-06-2019, 17:08:04 »
Цитата: Vladislav от 04-06-2019, 15:36:31
Благодарю
Если код устраивает, то отметьте решение.
Записан
Не забывайте про правильное
Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился
правильный ответ
, то не забудьте про кнопку
Решение
mikazakov
ADN
Сообщений: 752
Карма: 195
Skype:
Re: Изоляция сборок и деталей
«
Ответ #5 :
05-06-2019, 06:32:28 »
Vladislav
,
Я думаю есть путь покороче для изоляции. Можно воспользоваться командным менеджером и вызвать команду изоляции
Да и не забудьте выделить изолируемые модели перед запуском макроса
Код - Visual Basic
[Выбрать]
Public
Sub
RunLineCommand()
' Get the CommandManager object.
Dim
oCommandMgr
As
CommandManager
Set
oCommandMgr = ThisApplication.CommandManager
' Изоляция
Dim
oControlDef
As
ControlDefinition
Set
oControlDef = oCommandMgr.ControlDefinitions.Item(
"AssemblyIsolateCmd"
)
' Execute the command.
Call
oControlDef.Execute
'Отмена изоляции
Set
oControlDef = oCommandMgr.ControlDefinitions.Item(
"AssemblyIsolateUndoCmd"
)
' Execute the command.
Call
oControlDef.Execute
End
Sub
Записан
Печать
Страницы: [
1
]
Вверх
« предыдущая тема
следующая тема »
Сообщество программистов Autodesk в СНГ
»
ADN Club
»
Inventor API
»
Изоляция сборок и деталей