C#ATIA

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

GetDirectionが上手く行かない2

こちらの続きです。
GetDirectionが上手く行かない - C#ATIA

imihitoさんからのアドバイスを頂き、こんな風にしてみました。
(これだけじゃ動きません)

'vba
'平面法線
Private Function GetPlaneDirection(ByVal pln As Plane) As Variant
    Dim pln_vari As Variant
    Set pln_vari = pln
    
    Dim vec1(2)
    pln_vari.GetFirstAxis vec1
    
    Dim vec2(2)
    pln_vari.GetSecondAxis vec2
    
    GetPlaneDirection = Cross(vec1, vec2)
End Function

'外積3D
Private Function Cross(ByVal v1 As Variant, ByVal v2 As Variant) As Variant
    Dim vec(2) As Double
    vec(0) = v1(1) * v2(2) - v1(2) * v2(1)
    vec(1) = v1(2) * v2(0) - v1(0) * v2(2)
    vec(2) = v1(0) * v2(1) - v1(1) * v2(0)
    Cross = vec
End Function

外積の関数、持ってました・・・。
GetPlaneDirectionにPlane型を投げると、x,y,zのVariant型(中身はDouble)の配列を
返します。

・・・そういえば、何処かで新入社員教育で ”ダブル型の変数を用意して下さい”
と指示したら

Dim W

と書かれた。 と言うネタを思い出しました。(意味は無いです)