在使用实体对象属性或方法来编辑已经创建完毕的实体对象之前,必须用变量引用该对象,引用实体对象的方法有多种,可根据具体情况,选择恰当的方法来加以引用。
在创建实体的同时引用实体对象。
在创建实体对象时,Set语句设置的对象变量代表和引用该实体对象,下面的语句创建了一个圆对象,变量circleObj即引用该圆对象,可以设置属性,调用该方法来编辑该圆对象。语句circleObj=acRed设置Color属性,使该圆变红色。
Dim circleobj As AcadCircle
Dim centerpoint(0 To 2) As Double
centerpoint(0) = 0#: centerpoint(1) = 0#: centerpoint(2) = 0#
Set circleobj = acadapp.ActiveDocument.ModelSpace.AddCircle(centerpoint, 5)
circleobj.Color = acRed
用实体集合的Item方法引用实体对象
如果已知实体在集合中的索引位置,可以用实体集合的Item方法引用该实体对象。
下面的语句用变量Obj引用模型空间第三个实体对象,并将其颜色变为蓝色。
Dim obj As AcadEntity
Set obj = acadapp.ActiveDocument.ModelSpace.Item(2)
obj.Color = acBlue
obj.Update
用HandleToObject方法引用实体对象
实体对象的Handle属性返回对象的句柄,若已知对象的句柄,可以用对象的HandleToObject方法引用该实体对象,HandleToObject方法只能返回当前文档中的实体对象。
newobj = object.HandleToObject(Handle)
下面的语句创建一个圆,用Handle属性获得其句柄,然后用HandleToObject方法引用为2B的句柄,将其设置为红色。
Private Sub Command1_Click()
Dim circleobj As AcadCircle
Dim centerpoint(0 To 2) As Double
centerpoint(0) = 0#: centerpoint(1) = 0#: centerpoint(2) = 0#
Set circleobj = acadapp.ActiveDocument.ModelSpace.AddCircle(centerpoint, 5)
ZoomExtents
circleobj.Update
Dim handle As Variant
handle = circleobj.handle
MsgBox "圆的句柄是:" & circleobj.handle
Dim tempobj As AcadObject
Set tempobj = acadapp.ActiveDocument.HandleToObject(handle)
tempobj.Color = acRed
MsgBox "圆改变为红色"
acadapp.ActiveDocument.Regen acActiveViewport
End Sub
用ObjectIdToObject方法引用实体对象
若已知对象标识符ObjectID,可以用对象OjbectIdToOjbect方法引用该实体对象。
newobj=object.ObjectIDToObject(ID)