在使用實(shí)體對象屬性或方法來編輯已經(jīng)創(chuàng)建完畢的實(shí)體對象之前,必須用變量引用該對象,引用實(shí)體對象的方法有多種,可根據(jù)具體情況,選擇恰當(dāng)?shù)姆椒▉砑右砸谩?/p>
在創(chuàng)建實(shí)體的同時(shí)引用實(shí)體對象。
在創(chuàng)建實(shí)體對象時(shí),Set語句設(shè)置的對象變量代表和引用該實(shí)體對象,下面的語句創(chuàng)建了一個(gè)圓對象,變量circleObj即引用該圓對象,可以設(shè)置屬性,調(diào)用該方法來編輯該圓對象。語句circleObj=acRed設(shè)置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
用實(shí)體集合的Item方法引用實(shí)體對象
如果已知實(shí)體在集合中的索引位置,可以用實(shí)體集合的Item方法引用該實(shí)體對象。
下面的語句用變量Obj引用模型空間第三個(gè)實(shí)體對象,并將其顏色變?yōu)樗{(lán)色。
Dim obj As AcadEntity
Set obj = acadapp.ActiveDocument.ModelSpace.Item(2)
obj.Color = acBlue
obj.Update
用HandleToObject方法引用實(shí)體對象
實(shí)體對象的Handle屬性返回對象的句柄,若已知對象的句柄,可以用對象的HandleToObject方法引用該實(shí)體對象,HandleToObject方法只能返回當(dāng)前文檔中的實(shí)體對象。
newobj = object.HandleToObject(Handle)
下面的語句創(chuàng)建一個(gè)圓,用Handle屬性獲得其句柄,然后用HandleToObject方法引用為2B的句柄,將其設(shè)置為紅色。
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 "圓改變?yōu)榧t色"
acadapp.ActiveDocument.Regen acActiveViewport
End Sub
用ObjectIdToObject方法引用實(shí)體對象
若已知對象標(biāo)識符ObjectID,可以用對象OjbectIdToOjbect方法引用該實(shí)體對象。
newobj=object.ObjectIDToObject(ID)