こちらの続きです。
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
と書かれた。 と言うネタを思い出しました。(意味は無いです)