 - Sub aa()
- Dim ss As AcadSelectionSet
- Dim lobj As AcadLine
- Dim lwobj As AcadLWPolyline
- Set ss = ThisDrawing.SelectionSets.Add(Rnd() & "abff8FDdffddc")
- Dim filter(0 To 3) As Integer
- Dim data(0 To 3) As Variant
- Dim pt3(0 To 2) As Double
- Dim l As Double
- Dim pt1 As Variant
- Dim pt2 As Variant
- filter(0) = -4
- data(0) = "<or"
- filter(1) = 0
- data(1) = "line"
- filter(2) = 0
- data(2) = "lwpolyline"
- filter(3) = -4
- data(3) = "or>"
- ss.SelectOnScreen filter, data
- For i = 1 To ss.Count
- If ss(i - 1).ObjectName = "AcDbLine" Then
- Set lobj = ss(i - 1)
- pt1 = lobj.StartPoint
- pt2 = lobj.EndPoint
- pt3(0) = (pt1(0) + pt2(0)) / 2
- pt3(1) = (pt1(1) + pt2(1)) / 2
- pt3(2) = 0
- l = Round(lobj.Length, 2)
- ThisDrawing.ModelSpace.AddText "a" & i & "=" & l, pt3, l / 15
- ThisDrawing.ModelSpace(ThisDrawing.ModelSpace.Count - 1).color = acRed
- ElseIf ss(i - 1).ObjectName = "AcDbPolyline" Then
- Set lwobj = ss(i - 1)
- pt1 = lwobj.Coordinate(0)
- pt2 = lwobj.Coordinate(1)
- pt3(0) = (pt1(0) + pt2(0)) / 2
- pt3(1) = (pt1(1) + pt2(1)) / 2
- pt3(2) = 0
- l = Round(lwobj.Length, 2)
- ThisDrawing.ModelSpace.AddText "a" & i & "=" & l, pt3, l / 15
- ThisDrawing.ModelSpace(ThisDrawing.ModelSpace.Count - 1).color = acRed
- End If
- Next
- End Sub
|