この様な形状セットがあります。
このPart3の深さを示すための文字列を作りたいです。
こんな感じの文字列です。
Product3\Product2\Part3
あぁ¥マークが変わっちゃう・・・。
こんな感じにしました。
'vba Option Explicit Sub CATMain() Dim pDoc As partDocument Set pDoc = CATIA.ActiveDocument Dim pt As Part Set pt = pDoc.Part Dim hBody As HybridBody Set hBody = pt.HybridBodies.Item(2).HybridBodies.Item(1) Debug.Print get_full_path(hBody, "") End Sub Private Function get_full_path( _ ByVal target As AnyObject, _ ByVal path As String) As String If is_part(target) Then Dim pt As Part Set pt = target get_full_path = pt.name & "\" & path Exit Function End If get_full_path = get_full_path( _ target.parent, _ target.name & "\" & path _ ) End Function Private Function is_part( _ ByVal target As AnyObject) As Boolean Dim tmp As Part On Error Resume Next Set tmp = target On Error GoTo 0 is_part = IIf(tmp Is Nothing, False, True) End Function
結果はこんな何時です。
Product3\Product2\Part3\
最後がちょっと余計ですね・・・。