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时,它运行正常。
答案 0 :(得分:0)
第二个空参数怎么样 - 这是正确的吗?根据规范,它期望一个对象 - 一个点。
object.GetEntity Object, PickedPoint [, Prompt]
比如......
ThisDrawing.Utility.GetEntity returnObj, basePnt, "Prompt, i.e. Select an object"
顺便说一下 - 这真的是一个VB.NET吗?或Visual Basic for Application(VBA)?请注意,语法和功能存在显着差异... AutoDesk通用文档(包括在线)适用于VBA,而不是VB.NET。
编辑:
Dim returnObj As AcadObject
Dim basePnt As Variant
ThisDrawing.Utility.GetEntity returnObj, basePnt, "Select an object"
请注意,此示例适用于VBA,我从未使用过VB.NET和ACAD,我甚至不确定它是如何受支持的。 确保您也处理空选择 ...
答案 1 :(得分:0)
这是一个返回所选对象的简单函数。
PromptEntityResult的ObjectId属性是实际返回的实体,您必须通过该事务获得该实体。
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