ADN Club > Inventor API
Из ilogic в inventor addin
Владимир Ананьев:
Да, верно. Тип надо задать 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
--- Конец кода ---
Навигация
Перейти к полной версии