检索所有DBText的所有dxf值

时间:2016-06-06 00:49:50

标签: vb.net autocad-plugin

我正在尝试获取当前打开图形中每个DBText值的图层,位置,值,高度,宽度和样式。到目前为止,我只能得到objectID s。

Function SelectAllText(dbIn As Database) As ObjectIdCollection
    Using doclock = Application.DocumentManager.MdiActiveDocument.LockDocument
        Dim retIDs As New ObjectIdCollection
        Using tr As Transaction = dbIn.TransactionManager.StartTransaction
            Dim bt As BlockTable = dbIn.BlockTableId.GetObject(OpenMode.ForRead)
            For Each btrID As ObjectId In bt
                Dim btr As BlockTableRecord = TryCast(tr.GetObject(bt(BlockTableRecord.ModelSpace), OpenMode.ForRead), BlockTableRecord)
                For Each TRefID As ObjectId In btr
                    Dim te = TryCast(tr.GetObject(TRefID, OpenMode.ForRead), DBText),
                        tid = te.ObjectId
                    retIDs.Add(tid)
                Next
            Next
        End Using
        Return retIDs
    End Using
End Function

1 个答案:

答案 0 :(得分:1)

您建议的方法应该工作,基本上以相同的方式:迭代数据库> BlockTable> BlockTableRecord(ModelSpace)>所有实体。

使用每个DBText的ObjectId,您可以:

Dim acText as DBText = tr.GetObject(dbTextId, OpenMode.ForRead)
Dim positionPoint as Point3d = acText.Position
Dim height as Double = acText.Height
Dim content as String = acText.TextString
相关问题