C#ATIA

↑タイトル詐欺 主にCATIA V5 の VBA(最近はPMillマクロとFusion360APIが多い)

GetDirectionが上手く行かない

平面の向きを取得したいだけなのですが、SPAWorkbenchのGetDirectionが
エラーになり上手く行かないです。 確かに使った事無いんですが・・・。

'vba これは一部なのでこれだけじゃ動かないです

'平面情報
'return 0-Distance 1-p1_Direction 2-p2_Direction
Private Function GetPlaneInfo(ByVal pt As PART, ByVal p1, ByVal p2) As Variant
    Dim meas 'As Measurable
    Set meas = GetMeasurable(pt, p1)
    
    Dim info(2) As Variant
    info(0) = meas.GetMinimumDistance(p2)
    
    Dim vec(2) 'As Variant
    meas.GetDirection vec 'ここでエラー
    info(1) = vec
    
    Set meas = GetMeasurable(pt, p2)
    meas.GetDirection vec
    info(2) = vec
    
    GetPlaneInfo = info
End Function

Private Function GetMeasurable(ByVal pt As PART, ByVal p1) 'As Measurable
    Dim wb, meas As Measurable
    Set wb = pt.Parent.GetWorkbench("SPAWorkbench")
    Set GetMeasurable = wb.GetMeasurable(p1)
End Function

この手は型指定するとエラーになるのはわかっているので、型指定無しです。

代案が無くも無いのですが、面倒なので直接平面の向きを取得したいのですが・・・。