ADN Club > Inventor API
Включение видимости осей координат вида чертежа
niksasa:
Добрый день. Появилась необходимость автоматизировать процесс включения осей координат на видах чертежа с помощью API. Я так понимаю нужно идти в этом направлении: DetailDrawingView.GetIncludeStatus Method. Кто-нибудь решал данную задачу? В справке примера кода не нашел.
Алексей Романов:
--- Цитата: niksasa от 16-10-2013, 14:41:18 ---В справке примера кода не нашел.
--- Конец цитаты ---
Не на все случаи есть примеры, разбейте задачу на этапы, в данном случае: работа с видами, получение ссылки на модель, получение объекта для отображения...
Вот рабочий пример, на виде "ВИД3" отобразим рабочую ось Y модели:
--- Код: ---Public Sub IncludeObject()
If ThisApplication.ActiveDocumentType <> kDrawingDocumentObject Then
MsgBox "Работаем только с чертежами!"
Exit Sub
End If
' Set a reference to the drawing document.
' This assumes a drawing document is active.
Dim oDrawDoc As DrawingDocument
Set oDrawDoc = ThisApplication.ActiveDocument
' Set a reference to the active sheet.
Dim oActiveSheet As Sheet
Set oActiveSheet = oDrawDoc.ActiveSheet
' Set a reference to the drawing view on the active sheet.
Dim oDrawView As DrawingView
For Each oDrawView In oActiveSheet.DrawingViews
If oDrawView.Name = "ВИД3" Then Exit For
Next
'Получаем документ модели
Dim oRefDoc As Object
Set oRefDoc = oDrawView.ReferencedDocumentDescriptor.ReferencedDocument
'Получаем объект для отображения на виде
Dim oY As WorkAxis
Set oY = oRefDoc.ComponentDefinition.WorkAxes(2)
'Отображаем объект на виде
Call oDrawView.SetIncludeStatus(oY, True)
End Sub
--- Конец кода ---
Это рабочий пример на VBA, в реальном коде (при необходимости) нужны дополнительные проверки...)
niksasa:
Алексей, приветствую Вас. Спасибо огромное за помощь. Попробую адаптировать код под ilogic.
PS: хочу к Вам на курсы программирования записаться. :)
Алексей Романов:
--- Цитата: niksasa от 17-10-2013, 09:21:24 ---Попробую адаптировать код под ilogic.
--- Конец цитаты ---
Приветствую Вас, Александр! Как упехи? В простейшем случае у меня вот что получилось:
--- Код: ---oY = ActiveSheet.View("ВИД3").ModelDocument.ComponentDefinition.WorkAxes(2)
ActiveSheet.View("ВИД3").View.SetIncludeStatus(oY, True)
--- Конец кода ---
niksasa:
Добрый день, Алексей. Пока никак, не было времени. Впринципе и код VBA работает в ilogic, если убрать Sub и Set.
Но в данном случае вообще всё просто. Спасибо за помощь.
У меня другой вопрос возник, возможно бредовый: могу ли я указывать нужный мне вид чертежа для отображения осей?
Навигация
Перейти к полной версии