C#ATIA

↑タイトル詐欺 主にFusion360API 偶にCATIA V5 VBA(絶賛ネタ切れ中)

AngleValueCommandInputの初期値を設定する

最近はあまりFusion360を触っている暇が無かったのですが、
質問の意味が何となく分かったので、久々にAPIフォーラムの
こちらを答えてみました。(現時点で質問者さんの反応なし)
Moving Manipulator on selected input line - Autodesk Community

恐らく、スケッチの直線を選択すると、直線の中間点に平面を作成しつつ
マニピュレーターが表示され平面の向きを変更出来るようにするための
機能を作ろうとしているのだろう と解釈しました。

(画像ではちょっとマニピュレーターの位置がずれています・・・)

その際マニピュレーターの向きが思うように出来ないようです。
要は記載されていたコードのdirection_xとdirection_yのベクトルを
どの様にすれば良いのかが分からないと言う事です。


オレンジの矢印がスケッチ直線方向のベクトルです。・・・逆向きかも
知れないのですが、まぁイメージです。
但し、これが分かっていてもどうしようもありません。
作成したいマニピュレーターを設定する際に、緑と青のXとY方向となる
ベクトル(正しくはUとVだとは思うけど・・・)が必要であり、
直線方向はZ方向です。

そこで、スケッチのZ方向(緑)をdirection_yとし、この2個のベクトルの
外積で求まったベクトルをdirection_xとして見ました。


試すところまで作るのが面倒だった為、動作保証がありません。
但しよく考えると、

  • ダイレクトモードだとエラーになると思う。
  • 直線がスケッチ平面に乗っている、又はスケッチ平面と平行な状態で描かれている必要がある。(言葉で表現するのが難しい・・・)

の注意が必要です。(と、向こうでは書き忘れました)