以下是我的code,欢迎提宝贵意见
Function test()
Dim myss As AcadSelectionSet
Dim itm As AcadEntity
Dim itm1 As AcadEntity
Dim mode As Integer
Dim r As Double
Dim pnt As Variant
Dim corner1(0 To 2) As Double
Dim corner2(0 To 2) As Double
Dim strtmp As String
Dim strpart1 As String
Dim strpart2 As String
Dim n As Integer
mode = acSelectionSetCrossing
n = 0
For Each itm In ThisDrawing.ModelSpace
If itm.ObjectName = "AcDbCircle" Then
pnt = itm.Center
Set myss = ThisDrawing.SelectionSets.Add("MYSS")
r = itm.Radius
corner1(0) = pnt(0) - 0.6 * r
corner1(1) = pnt(1) + 0.6 * r
corner1(2) = 0
corner2(0) = pnt(0) + 0.6 * r
corner2(1) = pnt(1) - 0.6 * r
corner2(2) = 0
strtmp = vbNullString
strpart1 = strtmp
strpart2 = strtmp
For Each itm1 In myss
If itm.Radius = 6 And itm1.ObjectName = "AcDbText" Then
strtmp = itm1.TextString
If Val(strtmp) > 0 Then
strpart2 = strtmp
Else
strpart1 = strtmp
End If
End If
Next
myss.Highlight True
If strtmp <> vbNullString Then
n = n + 1
Debug.Print n, itm.Radius, Int(pnt(0)), Int(pnt(1)), strpart1 & "-" & strpart2
End If
End If
myss.Clear
myss.Delete
End If
Next
ThisDrawing.SendCommand "Zoom "
ThisDrawing.SendCommand "All "
End Function