在使用實體對象屬性或方法來編輯已經創建完畢的實體對象之前,必須用變量引用該對象,引用實體對象的方法有多種,可根據具體情況,選擇恰當的方法來加以引用。
在創建實體的同時引用實體對象。
在創建實體對象時,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)