こちらに記載したお悩みが解決しました。
コンポーネントの座標系のベクトルの取得が面倒 - C#ATIA
こんな条件です。
ルートコンポーネントと原点が一致しない、”コンポーネント1:1” 内の
XY平面以外の平面をサポートとしたスケッチ内にある
曲線上に点を作りたい と言う事です。
・・・言葉と画像を使っても表現しにくいです。
作っているアドインで画像のように、点を作ることは案外すんなり出来ました。
が、お悩みはコマンドを確定する前のプレビューの表示が作られる
点の位置と一致しない と言う何とも悩ましい状況に陥っていました。
左が望んでいる状態で、右が悩まされていた状態。
悩まされていたのは、この位置だけではなくいたるところで・・・。
結果的に原因は、
・コマンドで作成される点:スケッチのマトリックスで作成される(だからOK)
・プレビューで表示される点:オカレンスのマトリックスで作成される
この違いだと先日やっと気が付きました。
原因が分かったものの、この違いを修正する為の行列の演算が分からない・・・。
数学知らないと損しますね。
で、半分寝ながら解決したのがこちら。
コメントにしている部分の多さは、僕の努力の痕跡と受け止めてもらって大丈夫です。
結局、オカレンスのマトリックスを逆にして、スケッチのマトリックスに
トランスフォーム!
その後、目的の点に
トランスフォーム!
でOKです。
解決して良かった良かった と思ったのもつかの間、1個のコマンドを実行しただけで
Undo歴が3つになってしまう と言う迷惑な現象。
プレビューの実行と削除なのですが、明らかに不自然。
解決策があるのかな?