从 AutoCAD 获取 ObjectId
Get ObjectId from AutoCAD
我目前正在使用 VB 向 AutoCAD 添加功能。
我正在尝试获取我的文本对象的 ObjectId 的句柄,我想知道是否有一种方法可以让我直接从 Autocad 查看 ObjectId(也许在某种类型的属性查看器中?)
任何关于我如何做到这一点的帮助或建议都会有所帮助,提前谢谢你。
任何 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 的句柄,我想知道是否有一种方法可以让我直接从 Autocad 查看 ObjectId(也许在某种类型的属性查看器中?)
任何关于我如何做到这一点的帮助或建议都会有所帮助,提前谢谢你。
任何 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