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) –
我明白了,你认为你可以用一些语法来帮助我循环遍历整个图纸(纸张空间布局),可以捕捉具有特定文本值的任何对象? –