GETENTITY方法返回实体名和鼠标点,这个鼠标点是按照PICKBOX变量设置的,因此点有可能不在实体上,如果要获得实体上的点,用GETPOINT和OSNAP,看下下面的代码:

- [FONT=courier new]
- Sub test()
- Dim obj As Object
- Dim ss As AcadSelectionSet
- Dim allSS As AcadSelectionSets
- Dim pt As Variant
- Dim Oldsnapmode As Variant
- Dim strName As String
- 'Store the current setting of Osnap.
- Oldsnapmode = ThisDrawing.GetVariable("OSMODE")
- 'Specify the Osnap you want. 512 = Nearest point.
- ThisDrawing.SetVariable "OSMODE", 512
- pt = ThisDrawing.Utility.GetPoint(, "Pick an entity: ")
- Set allSS = ThisDrawing.SelectionSets
- 'Check to see if "myset" exists, if so delete it
- For Each ss In allSS
- strName = ss.Name
- If ss.Name = "myset" Then
- ss.Delete
- Exit For
- End If
- Next
- Set ss = ThisDrawing.SelectionSets.Add("myset")
- ss.SelectAtPoint (pt)
- Set obj = ss.Item(0)
- ss.Delete
- 'The type of entity selected.
- MsgBox "Entity " & obj.EntityName & " was selected at X= " & pt(0) & " and Y= "
- & pt(1)
- 'Restore Osnap setting.
- ThisDrawing.SetVariable "OSMODE", Oldsnapmode
- End Sub[/FONT]
|