ADN Club > Inventor API

Из ilogic в inventor addin

<< < (2/4) > >>

Владимир Ананьев:
Да, верно. Тип надо задать Point2d.  Точки же двумерные!

Dim oPoint1 As Point2d = m_inventorApplication.TransientGeometry.CreatePoint2d(10, 20)

Sorry, не обратил внимание :(

niksasa:

--- Цитата: Владимир Ананьев от 17-12-2013, 16:31:57 ---Да, верно. Тип надо задать Point2d.  Точки же двумерные!

Dim oPoint1 As Point2d = m_inventorApplication.TransientGeometry.CreatePoint2d(10, 20)

Sorry, не обратил внимание
--- Конец цитаты ---

Ура!!!!!! Всё заработало. Большое спасибо, Владимир.

niksasa:
Добрый день. Есть правило ilogic:

--- Код: ---oView = ThisApplication.CommandManager.Pick(SelectionFilterEnum.kDrawingViewFilter, "Укажите вид")
oX = ActiveSheet.View(oView.Name).ModelDocument.ComponentDefinition.WorkAxes(1)
oY = ActiveSheet.View(oView.Name).ModelDocument.ComponentDefinition.WorkAxes(2)
oZ = ActiveSheet.View(oView.Name).ModelDocument.ComponentDefinition.WorkAxes(3)
ActiveSheet.View(oView.Name).View.SetIncludeStatus(oX, True)
ActiveSheet.View(oView.Name).View.SetIncludeStatus(oY, True)
ActiveSheet.View(oView.Name).View.SetIncludeStatus(oZ, True)

--- Конец кода ---
Хочу это правило переделать на VB.net
Пишу код:

--- Код: ---If m_inventorApplication.ActiveDocumentType = DocumentTypeEnum.kDrawingDocumentObject Then
            pDoc = m_inventorApplication.ActiveDocument
            Dim ActiveSheet As Sheet
            ActiveSheet = pDoc.ActiveSheet
            Dim oView As DrawingView
            oView = m_inventorApplication.CommandManager.Pick(SelectionFilterEnum.kDrawingViewFilter, "Укажите вид")
            Dim oRefDoc As Object
            oRefDoc = oView.ReferencedDocumentDescriptor.ReferencedDocument
            Dim oX As WorkAxis
            Dim oY As WorkAxis
            Dim oZ As WorkAxis
            oX = ActiveSheet.DrawingViews(oView.Name).ModelDocument.ComponentDefinition.WorkAxes(1)
            oY = ActiveSheet.DrawingViews(oView.Name).ModelDocument.ComponentDefinition.WorkAxes(2)
            oZ = ActiveSheet.DrawingViews(oView.Name).ModelDocument.ComponentDefinition.WorkAxes(3)
            ActiveSheet.DrawingViews(oView.Name).View.SetIncludeStatus(oX, True)
            ActiveSheet.DrawingViews(oView.Name).View.SetIncludeStatus(oY, True)
            ActiveSheet.DrawingViews(oView.Name).View.SetIncludeStatus(oZ, True)
        Else
            MessageBox.Show("Активным должен быть чертеж!")
        End If
--- Конец кода ---
Появляется сообщение: приведение строки "Вид1" к типу "Integer" является недопустимым.
Что не так?

Владимир Ананьев:
Ошибка возникает при получении ссылки на чертежный вид.
Вы пытаетесь сделать это по текстовому имени вида.
Inventor API Help по этому поводу сообщает следующее:

Syntax
DrawingViews.Item( Index As Long ) As DrawingView

Рекомендация: сделайте вспомогательную функцию, которая будет находить в списке видов чертежный вид с нужным вам именем - обычным перебором for each - next.

niksasa:

--- Цитата: Владимир Ананьев от 21-12-2013, 15:45:17 ---Рекомендация: сделайте вспомогательную функцию, которая будет находить в списке видов чертежный вид с нужным вам именем - обычным перебором for each - next.
--- Конец цитаты ---
Что то на подобие этого:

--- Код: --- For Each oDrawView In oActiveSheet.DrawingViews
        If oView.Name = "ВИД3" Then Exit For
    Next

--- Конец кода ---

Навигация

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

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

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

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