VB编程引用AutoCAD实体对象

在使用实体对象属性或方法来编辑已经创建完毕的实体对象之前,必须用变量引用该对象,引用实体对象的方法有多种,可根据具体情况,选择恰当的方法来加以引用。

在创建实体的同时引用实体对象。

在创建实体对象时,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)