質問
AutoCADの.net APIで雲マーク(REVCLOUD)を取得する方法はありますか。
回答
AutoCADの雲マーク(RevCloudコマンドで作成される図形)は、拡張データ領域にアプリケーション名”RevcloudProps”のデータを持つLWPolylineとなっております。
このため、net APIで図形を選択する際のフィルタ条件に、図形がLWPolylineでかつアプリケーション名が”RevcloudProps”の拡張データを持つ図形指定することで雲マーク図形を取得することが可能です。
Dim dc As Document = Application.DocumentManager.MdiActiveDocument
Dim db As Database = dc.Database
Dim ed As Editor = dc.Editor
Dim tvs(1) As TypedValue
tvs.SetValue(New TypedValue(DxfCode.Start, "LWPOLYLINE"), 0)
tvs.SetValue(New TypedValue(DxfCode.ExtendedDataRegAppName,
"RevcloudProps"), 1)
Dim sf As SelectionFilter = New SelectionFilter(tvs)
Dim psr As PromptSelectionResult
psr = ed.SelectAll(sf)
If psr.Status<> PromptStatus.OK Then
Exit Sub
End If
Using tx As Transaction = db.TransactionManager.StartTransaction()
Try
For Each id As ObjectId In psr.Value.GetObjectIds()
Dim lwp As Polyline = tx.GetObject(id, OpenMode.ForWrite)
Next
tx.Commit()
Catch e As System.Exception
tx.Abort()
ed.WriteMessage(e.Message)
End Try
End Using
記事全体を表示