引用对象层次结构中的对象

AutoCAD ActiveX/VBA

 
引用对象层次结构中的对象
 
 
 

用户可以直接或通过自己定义的变量来引用对象。要直接引用对象,请将对象包含在调用层次结构中。例如,下列语句在模型空间中添加一条直线。请注意,层次结构从 ThisDrawing 开始,再转到 ModelSpace 对象,然后调用 AddLine 方法:

Dim startPoint(0 To 2) As Double, endPoint(0 To 2) As Double
Dim LineObj as AcadLine
startPoint(0) = 0: startPoint(1) = 0: startPoint(2) = 0
endPoint(0) = 30: endPoint(1) = 20: endPoint(2) = 0
Set LineObj = ThisDrawing.ModelSpace.AddLine(startPoint,endPoint)

要通过用户定义的变量引用对象,请首先将变量定义为所需类型,然后设置为相应的对象。例如,以下代码定义类型为 AcadModelSpace 的变量 (moSpace) 并将其设置为等于当前的模型空间:

Dim moSpace As AcadModelSpace
Set moSpace = ThisDrawing.ModelSpace

以下语句利用该用户定义的变量将直线添加到模型空间中:

Dim startPoint(0 To 2) As Double, endPoint(0 To 2) As Double
Dim LineObj as AcadLine
startPoint(0) = 0: startPoint(1) = 0: startPoint(2) = 0
endPoint(0) = 30: endPoint(1) = 20: endPoint(2) = 0
Set LineObj = moSpace.AddLine(startPoint,endPoint)

检索模型空间中的第一个图元

本例返回模型空间中的第一个图元对象,类似的代码还可以用来检索图纸空间中的第一个图元。注意:可以将所有的图形对象定义为 AcadEntity 对象:

Sub Ch2_FindFirstEntity()
    ' 本例返回模型空间中的第一个图元
    On Error Resume Next
      
    Dim entity As AcadEntity
    If ThisDrawing.ModelSpace.count <> 0 Then
        Set entity = ThisDrawing.ModelSpace.Item(0)
        MsgBox entity.ObjectName + _
            " is the first entity in model space."
    否则
        MsgBox "There are no objects in model space."
    End If
End Sub