円を青色に変更、Excelに座標を書き出す。
Option Explicit
Private AcadDoc As AutoCAD.AcadDocument 'モジュール定義
Private AcadApp As AutoCAD.AcadApplication ' AutoCAD アプリケーション変数
Public Sub AutocadSelectionSET()
Set AcadApp = GetObject(, "AutoCAD.Application") ' xls追加
Set AcadDoc = AcadApp.ActiveDocument()
Dim objSelSet As AcadSelectionSet
Dim objEntity As AcadEntity
Dim objCircle As AcadCircle
Dim Str As String
Dim N
Set objSelSet = AcadDoc.SelectionSets.Add("Sample") 'いったん選択セットを設定する。
Call objSelSet.SelectOnScreen ' autocad 画面上で、円を選択する。マクロ起動後にAUTOCAD画面で選択する。
N = ActiveCell.Row
Cells(N, ActiveCell.Column + 0) = "objCircle.center(0)"
Cells(N, ActiveCell.Column + 1) = "objCircle.center(1)"
Cells(N, ActiveCell.Column + 2) = "objCircle.center(2)"
N = ActiveCell.Row + 1
For Each objEntity In objSelSet
If objEntity.ObjectName = "AcDbCircle" Then
Set objCircle = objEntity
'Str = "OBJ name" & objEntity.ObjectName & "半径" & objCircle.Area & vbCrLf & "中心座標" & objCircle.center(0) & "," & objCircle.center(1) & "," & objCircle.center(2)
' MsgBox Str
' MsgBox "ECXEL 現在のセルの左に入力します。"
Cells(N, ActiveCell.Column + 0) = objCircle.center(0)
Cells(N, ActiveCell.Column + 1) = objCircle.center(1)
Cells(N, ActiveCell.Column + 2) = objCircle.center(2)
objEntity.Color = acBlue ' 選択した円を青くする。不要の場合は削除する。
N = N + 1
End If
Next
AcadDoc.SelectionSets("Sample").Delete '使用後 選択セット削除する。
End Sub
コメント
コメントを投稿