こちらでコメント頂いた
「断面図から断面を切った位置の座標値を取得」
についてです。
図面の断面のネーミング - C#ATIA
結論から書くと、取得出来そうに有りませんでした。
念のためこんな感じのコードは作りました。
'vba using-'KCL0.0.12' by Kantoku '断面図から断面元のビューと断面数の取得 Sub CATMain() 'ドキュメントのチェック If Not CanExecute("DrawingDocument") Then Exit Sub '断面図選択 Dim msg As String msg = "DrawViewを選択して下さい : ESCキー 終了" Dim secvi As DrawingView Set secvi = SelViewSection(msg) If secvi Is Nothing Then Exit Sub '断面元取得 Dim refvi As DrawingView Set refvi = secvi.ReferenceView If refvi Is Nothing Then MsgBox "断面図の元のビューが取得出来ませんでした" Exit Sub End If '断面数取得 Dim seccnt As Long seccnt = GetSectCount(refvi) msg = "選択ビュー:" & secvi.name & vbCrLf & _ "断面元ビュー:" & refvi.name & vbCrLf & _ "断面元の断面数:" & seccnt MsgBox msg End Sub Private Function GetSectCount( _ vi As DrawingView) As Long CATIA.HSOSynchronized = False Dim sel As selection Set sel = CATIA.ActiveDocument.selection With sel .Clear .Add vi .Search "(CATDrwSearch.DrwCallout),sel" GetSectCount = .Count2 .Clear End With CATIA.HSOSynchronized = True End Function Private Function SelViewSection( _ ByVal msg) As DrawingView Set SelViewSection = Nothing Dim vi As DrawingView Continue: Set vi = SelectItem(msg, "DrawingView") If vi Is Nothing Then Exit Function If vi.ViewType = catViewSection Then Set SelViewSection = vi Exit Function End If MsgBox "断面のビューを選択してください" GoTo Continue End Function
断面元のビューの特定は可能ですが、断面のライン自体が取得出来ませんでした。
(Arrowは、本当に矢印の要素でした)
可能な事は、上記で示したとおり検索でヒットさせる方法ですが
ここからオブジェクトを取得しても、DrawingViewとなってしまい
実質マクロで扱うのは不可能だと判断しました。
「どうしても」となれば、3Dとのリンクを分断することで断面の線が
単なる線となる為、これを何かしらの方法で座標値を見つける事が
出来るかも知れませんが、リンクを切るのはリスクの方が大きいようにも
感じます。(マクロでUndoを行えば、戻るのは確かですが・・・)
安全を考慮してビュー自体を何処かにコピペして、分断出来れば
良いのですが、ビューのコピペでは断面の線はコピー出来ないようなので
お手上げです。