ADN Club > Inventor API

Из ilogic в inventor addin

<< < (3/4) > >>

Александр Ривилис:
Думаю, что Владимир имел в виду следующее. После того как вы уже знаете имя вид (т.е. oView.Name) вы перебираете все виды (ActiveSheet.DrawingViews) и находите под каким номером oView.Name у вас в ActiveSheet.DrawingViews. После этого этот номер вы уже можете использовать в следующих вычислениях в виде:

--- Код - Visual Basic [Выбрать] ---oX = ActiveSheet.DrawingViews(iView).ModelDocument.ComponentDefinition.WorkAxes(1)где iView это номер вида в массиве видов.
Могу ошибаться, так как Inventor видел издалека.  ;)

Александр Ривилис:

--- Цитата: niksasa от 13-01-2014, 21:59:09 ---Что то на подобие этого:
Код:
 
 For Each oDrawView In oActiveSheet.DrawingViews
        If oView.Name = "ВИД3" Then Exit For
    Next
--- Конец цитаты ---
Почти. Номер нужно подсчитать, т.е. должно быть что-то типа:

--- Код - Visual Basic [Выбрать] ---iView = 0For Each oDrawView In oActiveSheet.DrawingViews        iView = iView + 1        If oView.Name = oDrawView.Name Then Exit ForNextТолько нужно проверить нумерация видов с 0 или с 1.

Алексей Романов:
Не знаю, правильно или нет, я иногда так делаю:
--- Код: ---Dim i As Integer
For i = 1 To oActiveSheet.DrawingViews.Count
If oView.Name = oActiveSheet.DrawingViews(i).Name Then Exit For
Next
--- Конец кода ---
В i порядковый номер вида...

Алексей Романов:

--- Цитата: niksasa от 18-12-2013, 10:34:21 ---Хочу это правило переделать на VB.net
Пишу код:
--- Конец цитаты ---
Александр, у тебя уже есть нужный вид! Должно быть типа этого:
--- Код: ---oRefDoc = oView.ReferencedDocumentDescriptor.ReferencedDocument
Dim oX As WorkAxis
Dim oY As WorkAxis
Dim oZ As WorkAxis
oX = oRefDoc.ComponentDefinition.WorkAxes(1)
oY = oRefDoc.ComponentDefinition.WorkAxes(2)
oZ = oRefDoc.ComponentDefinition.WorkAxes(3)
oView.SetIncludeStatus(oX, True)
oView.SetIncludeStatus(oY, True)
oView.SetIncludeStatus(oZ, True)
--- Конец кода ---

niksasa:

--- Цитата: Алексей Романов от 14-01-2014, 11:02:37 ---Dim i As Integer
For i = 1 To oActiveSheet.DrawingViews.Count
   If oView.Name = oActiveSheet.DrawingViews(i).Name Then Exit For
Next
--- Конец цитаты ---
Спасибо, Алексей, именно то, что нужно было.

Навигация

[0] Главная страница сообщений

[#] Следующая страница

[*] Предыдущая страница

Перейти к полной версии