円すい上の2点の最短距離

kandennti
Mentor
Mentor

円すい上の2点の最短距離

kandennti
Mentor
Mentor

底面半径30mm、傾斜面90mmの円すいがあります。

頂点から底面に向けて、傾斜面上に直線を描き、頂点から30mmの位置にA点

頂点から60mmの位置にB点を作成します。

1.png

では、問題です。

円すい上をグルッと回るように、A点からB点までを線を描けるでしょうか?

もちろん単純に結ぶのではなく、あくまでグルッと一周する必要があります。

2.png

線の長さを求めるのは比較的簡単です。(展開図を描けば良いですね)

これを3DCAD上の線として描くのは難解です。

 

さぁかかってこい!

 

元ネタはこちら

http://mmy.zyns.com/v5bbs/index.cgi?page=749 

返信
解決済み
2,291件の閲覧回数
13件の返信
返信 (13)

es0807
Advisor
Advisor

kandenntiさん、こんにちは!

 

言わんとすることはこれで合ってますかね?後の方のために方法は書きません(データは添付します)

スクリーンショット 2020-06-17 13.44.53.png

あ、最短距離か!w

Isao SATOU

この投稿が参考になりましたら、「いいね」を押してください。
この投稿で問題を解決できましたら、「解決策として承認」ボタンを押してください。

EESignature

kandennti
Mentor
Mentor

@es0807 さん ありがとうございます。

 

もっと短い線が正解なんです。

展開図を描き、2点間に直線を引いた距離が最短距離になります。

1.png

 

以前、シートメタルが実装された際、これが作れるのではないのかな?

と思い挑戦したのですが、うまく行きませんでした・・・。

(でも、そのお陰でK係数の意味は理解出来るようになりました)

es0807
Advisor
Advisor

投稿したあとで直線、最短ってのに気が付きましたw
その後少し考えましたが今のところ考えが及びませんね〜算数も苦手だし(;_;)

Isao SATOU

この投稿が参考になりましたら、「いいね」を押してください。
この投稿で問題を解決できましたら、「解決策として承認」ボタンを押してください。

EESignature

gymnyan-man
Mentor
Mentor

AとBを通る螺旋でカット!

しただけだと98.799mmでした。問題にするくらいだからこんな単純な話じゃないって予想はできてましたけどねーーー!!思ったより最短との差があってびっくらポンでした。 

 

1.jpg

2.jpg

EESignature


ryoji01
Advocate
Advocate
解決済み

 

シートメタルで無理やり作ってみましたが、やはり誤差が大きいようです。

 

test.jpg

adachitech7
Consultant
Consultant

@kandennti さん、こんにちは。

 

こういうモデルを作ってみました。

扇形のフラット面と円錐面は必ず1本の直線を介して接するような関係になっています。

上から見ると最短距離を通る軌跡がぼんやり見えてくると思います。

ここから扇形上面のエッジを円錐面に転写できたらいいのですが、まだ上手いやり方を見つけられていません。

ひとまず途中経過ということで。。。

kandennti
Mentor
Mentor

@gymnyan-man さん

 @es0807 さんとほぼ同じですね。

 確かに一見これが最短に見えるのですけどね。傾斜の問題とは言え、

 登山道とかかなり遠回りさせられている印象が・・・。

 

@ryoji.jp さん

 これ、正解だと思います。誤差0.01~0.02mmなら十分正解ですよ。

 自分が以前挑戦した時は、半周で考えたのですが・・・無理でした。

 当時「シートメタルに変換」コマンドも無かったので。

 勉強になりました。解決してますが、もうちょっと時間をください。

 

@adachitech7 さん

 お待ちしております。

 

まさか、1日かからないとは。

ChaosComb
Advisor
Advisor

こんばんは.

誤差は0.3mmくらいです.

 

スクリーンショット (966).png

 

色々試してみたんですが,
①三角錐を四分割して,各エッジで通るべきところを点で取る(写真の黒い点です.)合計5点

それぞれのあるべき位置は作図で求めました.

スクリーンショット (967).png
②それをxy平面にプロジェクトして,それぞれをスプラインでつなぐ

③スプライン線を面へ投影
が一番近い値で出ました.

①の点数を増やせばより値が近づく気はします()
個人的に最後でスプラインに甘えるのがやるせないところではありますが...


adachitech7
Consultant
Consultant
解決済み

モーションスタディで断面を切り出し、フィット点スプラインで結んで円錐面に投影しました。

これで1000分台まで合っていますね。かなり無理やりですが。。。

kandennti
Mentor
Mentor

皆様ありがとうございます

@ChaosComb さん

 シートメタルが無かったらこれが正攻法のような気がしますね。

 確かに点を増やすと精度が上がりそうな気がします。

 個人的には、

1.png

 頂点から目的の直線に向かって垂線を作ると、一番頂点に近い位置が求まるので

 この位置は確保したいところです。

 

@adachitech7 さん

 お疲れ様です。 既に僕の理解の範囲を超えてます・・。

 確かに巻き付けてますね。このような類似した操作を繰り返す楽な方法が

 Fusion360にも有れば良いのですが、恐らく今のところ無さそうです。

 

三次元的に見ると、A点からB点には下がって行く方向が最短ルートのように

感じるのですが、円すい上を駆け回ってみると一度頂点方向に向かっていくのが、

最短ルートになりました。この結果に当時も不思議に感じました。

 

2.png

 

皆さん本当にありがとうございました。しかし早すぎです。

kandennti
Mentor
Mentor

他人にやらせてばかりで申し訳ないため、自分らしくAPIを

使用して取り組んでみました。

 

@ChaosComb さんのように展開図で頂点からの距離を測定し

@adachitech7 のように円錐状に点を作成して曲線を描いてみました。

添付ファイルにこのデータとスクリプトが入っておりますが、

このデータを使用しないとスクリプトはエラーになります。

 

最終的な線は、5度毎に点を調べましたが79.37252645 mmとなりました。

 

adachitech7
Consultant
Consultant

@kandennti さん、これは凄いです。

私が数時間悩んで作ったものがほぼ一瞬に近い時間でできてしまっています。

やはり繰り返し動作はAPIを使って自動化しないとだめですね。

参考になりました。

kandennti
Mentor
Mentor

@adachitech7 さんの作ったデータの方がすごいですよ。

未だに理解しきれていないので・・。

 

@TerukiObara さんであれば理解してもらえると思うのですが、

普段業務で使用しているCADにパワーコピーと言う機能があるのですが、

類似した操作を行う場合は、それを多用しています。

APIではコードを書かなければならないのですが、パワーコピーは

GUI(手動)で過去に作った類似した操作を再現出来ます。

 

言葉では難しいのですが、複数のコマンドを記録して一つのコマンドの

ように呼び出せるので、個人的には自作のコマンドを作るイメージなんです。

 

それであれば、コードを書く必要はないですし履歴も残るため修正も出来ます。

 

アイデアに書けばよいのかなぁ・・・。