VB编程引用AutoCAD实体对象
2011-06-12 22:34 精诚所至 金石为开 阅读(1004) 评论(0) 编辑 收藏 举报在使用实体对象属性或方法来编辑已经创建完毕的实体对象之前,必须用变量引用该对象,引用实体对象的方法有多种,可根据具体情况,选择恰当的方法来加以引用。
在创建实体的同时引用实体对象。
在创建实体对象时,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)