Private Sub Test() Dim objEnt As AcadEntity Dim nCount As Long Dim i As Long Dim x, y As Double Dim minPoint As Variant Dim maxPoint As Variant Dim objText As AcadMText
If x >= minPoint(0) And y >= minPoint(1) And x <= maxPoint(0) And y <= maxPoint(1) Then If objEnt.ObjectName = "AcDbMText" Then Set objText = objEnt MsgBox objText.TextString End If End If Next End Sub对于块参照等受比例因子影响,是否受限制没有测试。 对于对于1:1:1的块,可以通过递归方法进行读取
例如:
Set xlApp = New Excel.Application
xlApp.Visible = True
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets(1)
xlSheet.Cells(1, i).Value =“123”
Dim acad As Object
Set acad = CreateObject("autocad.application")
acad.Visible = True '设置属性为可见
acad.documents.Open (Dir1.Path & "\" & File1.FileName)
Private Sub Test() Dim objEnt As AcadEntity
Dim nCount As Long
Dim i As Long
Dim x, y As Double
Dim minPoint As Variant
Dim maxPoint As Variant
Dim objText As AcadMText
x = 230#: y = 542# '假设为指定点
nCount = ThisDrawing.ModelSpace.Count
For i = 1 To nCount
Set objEnt = ThisDrawing.ModelSpace.Item(i - 1)
Call objEnt.GetBoundingBox(minPoint, maxPoint)
Debug.Print "MinPoint:" & minPoint(0) & " " & minPoint(1) & " " & minPoint(2) & vbCr & "maxPoint:" & maxPoint(0) & " " & maxPoint(1)
If x >= minPoint(0) And y >= minPoint(1) And x <= maxPoint(0) And y <= maxPoint(1) Then
If objEnt.ObjectName = "AcDbMText" Then
Set objText = objEnt
MsgBox objText.TextString
End If
End If
Next
End Sub对于块参照等受比例因子影响,是否受限制没有测试。
对于对于1:1:1的块,可以通过递归方法进行读取
这个是在VBA里面吗?如果使用VB的话,是否需要添加引用?