1
我目前使用VB在AutoCAD中添加功能。從AutoCAD獲取ObjectId
我試圖讓我的文本對象的ObjectId一個手柄,我想知道是否有辦法讓我查看的ObjectId直接從AutoCAD(也許在某種類型的屬性觀衆的?)
任何關於如何做到這一點的幫助或建議都會有所幫助,請提前致謝。
我目前使用VB在AutoCAD中添加功能。從AutoCAD獲取ObjectId
我試圖讓我的文本對象的ObjectId一個手柄,我想知道是否有辦法讓我查看的ObjectId直接從AutoCAD(也許在某種類型的屬性觀衆的?)
任何關於如何做到這一點的幫助或建議都會有所幫助,請提前致謝。
任何AutoCAD實體的ObjectId僅供編程使用,沒有UI功能可以看到它(除非您開發插件)。
此外,實際ID號會從一個會話改變到另一個會話。這只是一個用於更快打開和操縱內存中實體的數字。 ObjectId不保存到.dwg文件中。如果您關閉並打開圖紙,所有ID將會不同。
現在句柄是持久的(保存到.dwg文件中)並且不會在會話之間改變。
注意:有一些情況下,句柄也會發生變化,就像BEDIT命令期間塊內的實體一樣。
這是通過使用VBA/ActiveX技術
Public Sub LoopMText()
For i = 0 To ThisDrawing.ModelSpace.Count - 1
If TypeOf ThisDrawing.ModelSpace.Item(i) Is AcadMText Then
Dim t As AcadMText
Set t = ThisDrawing.ModelSpace.Item(i)
If t.TextString = "something here" Then
' do something...
End If
End If
Next
End Sub
我看到實體的快速樣品循環,我之所以這樣問,是因爲我想從我的VB我在AutoCAD中獲取特定的文本對象的句柄(對於編輯),我認爲objectId是這樣做的方式,但顯然不是,你知道我可以做到這一點嗎? –
你可以選擇它(ThisDrawing.Utility.GetEntity)或者在所有實體上做一個循環來選擇你需要的東西(ThisDrawing.ModelSpace.Item collection) –
我明白了,你認爲你可以用一些語法來幫助我循環遍歷整個圖紙(紙張空間佈局),可以捕捉具有特定文本值的任何對象? –