C#ATIA

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

閉じた線の始点終点

こちらの続きです。
プレビューの為の行列演算 - C#ATIA

こちらの続きです。

未だに完成しない為、公開出来ていないです。
正確には点を作成するアドインは完成しているのですが、作成した点を確認するための
測定コマンドに苦戦しています。(業務と同じで、確認は大事です。)
正直な所、こんなに時間がかかると思ってませんでしたよ。


この様に楕円上に均等な長さで8か所点を作成しています。
f:id:kandennti:20210112135916p:plain
赤い矢印部分が始点であり終点です。

始点を1番目として表記します。始点から2番目と3番目を測定すると測定している
部分を示すようにマークを表示するようにしています。
f:id:kandennti:20210112135926p:plain
これ自体は問題無いです。正しく測定し表示しています。
本当はマークを表示するのではなく、太くした線を表示させる要諦ですが、色々と
問題があり(Fusion360がクラッシュ)取りあえずの仮の表現です。

次に2番目と7番目の測定です。
f:id:kandennti:20210112135941p:plain
何が言いたいかと言うと、2-7の距離は遠回りです。直感的に考えても必要となる
距離は最短距離のはずです。その為、正しくは2番目-始点と終点と7番目の合計距離を
測定しています。 ここも苦労しました・・・。

最後にお悩みがこちら。
f:id:kandennti:20210112140023p:plain
7番目と8番目(終点)の測定です。測定値は正しいのですが、表示が間違ってます。
ガッカリ・・・。

原因がやっとわかりました。
測定するための点はユーザーに選択させるのですが、終点を指定したつもりでも
内部的な関数でパラメータを取得すると始点となっていました。
(だからクラッシュしてたんだな・・・)

これを引き起こすのは、円・閉じた楕円・閉じたスプラインです。
(円と楕円は他の部分でも厄介です・・・)


どうやって判断・処理させようか? がお悩み中。
頑張れ俺。