在VB.NET中,可以使用以下代码将AutoCAD中的Entity.ObjectId保存到数组中:

Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.DatabaseServices
Imports Autodesk.AutoCAD.EditorInput

Public Sub SaveObjectIdsToArray()
    ' 获取当前文档和数据库
    Dim doc As Document = Application.DocumentManager.MdiActiveDocument
    Dim db As Database = doc.Database

    ' 获取当前编辑器
    Dim ed As Editor = doc.Editor

    ' 创建一个空的ObjectId数组
    Dim objectIdArray As ObjectId() = New ObjectId() {}

    ' 开始事务
    Using trans As Transaction = db.TransactionManager.StartTransaction()
        Try
            ' 提示用户选择实体
            Dim selectionOpts As New PromptSelectionOptions()
            selectionOpts.MessageForAdding = '请选择实体: '
            Dim selectionResult As PromptSelectionResult = ed.GetSelection(selectionOpts)

            If selectionResult.Status = PromptStatus.OK Then
                ' 获取用户选择的实体集合
                Dim selectionSet As SelectionSet = selectionResult.Value

                ' 遍历选择集中的每个实体
                For Each objectId As ObjectId In selectionSet.GetObjectIds()
                    ' 将ObjectId添加到数组中
                    Array.Resize(objectIdArray, objectIdArray.Length + 1)
                    objectIdArray(objectIdArray.Length - 1) = objectId
                Next
            End If

            ' 提交事务
            trans.Commit()
        Catch ex As Exception
            ' 发生错误时回滚事务
            trans.Rollback()
            ed.WriteMessage('保存ObjectId到数组时发生错误:{0}', ex.Message)
        End Try
    End Using

    ' 输出保存的ObjectId数组长度
    ed.WriteMessage('保存的ObjectId数组长度:{0}', objectIdArray.Length)
End Sub

你可以在需要的地方调用SaveObjectIdsToArray方法,它会提示用户选择实体,并将选择的实体的ObjectId保存到数组objectIdArray中。最后,你可以根据需要处理保存的ObjectId数组。

VB.NET 在AutoCAD中保存实体ObjectId到数组

原文地址: https://www.cveoy.top/t/topic/nY1J 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录