Метод геттности в vb.net + автокад? - PullRequest
0 голосов
/ 27 апреля 2018
ACADAPP = System.Runtime.InteropServices.Marshal.GetActiveObject("AutoCAD.Application")

ACADDOC = ACADAPP.Documents.ActiveDocument
second_POINT = ACADDOC.Utility.GetEntity(select_object, , "Select Object <Enter to Exit> : ")

ACADDOC.Utility.GetEntity возвращает ошибку как

несоответствие типов

в vb.net autocad, когда я пытаюсь с vb6, он работает нормально.

Ответы [ 2 ]

0 голосов
/ 02 мая 2018

Вот простая функция, которая будет возвращать выбранный объект.

Свойство ObjectId объекта PromptEntityResult - это фактическая возвращаемая сущность, к которой вам нужно будет получить транзакцию.

Public Shared Function GetEntity() As PromptEntityResult
    Dim retVal As PromptEntityResult = Nothing
    Dim oDoc As Document = Core.Application.DocumentManager.MdiActiveDocument
    Dim oEd As Editor = oDoc.Editor
    Dim oPeo As New PromptEntityOptions(Environment.NewLine & "Please select an object")

    With oPeo
        .SetRejectMessage(Environment.NewLine & "Cannot select that object.")
        .AllowNone = False
        .AllowObjectOnLockedLayer = True
    End With

    retVal = oEd.GetEntity(oPeo)

    Return retVal
End Function
0 голосов
/ 27 апреля 2018

Что насчет второго пустого параметра - это правильно? Согласно спецификации, он ожидает объект - точку.

object.GetEntity Object, PickedPoint [, Prompt]

Например ...

ThisDrawing.Utility.GetEntity returnObj, basePnt, "Prompt, i.e. Select an object"

Кстати, это действительно VB.NET? Или Visual Basic для приложений (VBA)? Обратите внимание, что существуют значительные различия в синтаксисе и возможностях ... Общая документация AutoDesk (включая онлайн) будет для VBA, а не VB.NET.

EDIT:

Dim returnObj As AcadObject
Dim basePnt As Variant

ThisDrawing.Utility.GetEntity returnObj, basePnt, "Select an object"

Обратите внимание, что этот пример для VBA, я никогда не работал с VB.NET и ACAD, я даже не уверен, как он поддерживается. Убедитесь, что вы обрабатываете пустое выделение тоже ...

...