- 締切済み
楕円マクロの計算式の誤差について
- 最近作成した楕円マクロにおいて、計算式の誤差が生じています。
- 楕円マクロを使用して特定の点で角度を求める際、工具半径を考慮する必要があります。
- 工具半径Dを1として計算した結果、0.02程度の誤差が生じたのですが、これは正常な範囲内でしょうか?
- みんなの回答 (9)
- 専門家の回答
みんなの回答
回答(5)(7)を撤回します。 a=19、b=14の楕円が証明の基準となったので 明らかに不合理です。 a=20、b=15とでは焦点、離心率も変化しますしね。 当然オーバーカットも起こるでしょう。 質問者の垂線方向の移動による加工ポイントの変化をジックリ検証してマクロを考えてみます。
百聞は一見にしかず、CADで確認してみましょう。 http://mcnc.hp.infoseek.co.jp/cgi-bin/img-box/img20090509194210.jpg 1)a=20・b=15の楕円を描きます。(白) 2)a=19・b=14の楕円を描きます。(シアン) 3)a=19・b=14の楕円上を中心とするR1の円をいくつか描きます。(黄) 4)R1を拡大してみると、 http://mcnc.hp.infoseek.co.jp/cgi-bin/img-box/img20090509194248.jpg 0・90・180・270°以外でオーバーカットとなることが分かります。
お礼
回答ありがとうございます。残念ながら添付されたURLへ飛ぶことができませんでした。CADを使える環境にないので確認できませんがMCの描画で確認できるか試してみようと思います。
質問者は『設定した楕円形状を加工する』ことを目的としています。 つまり、a=20、b=15の楕円です。 工具径が絡んだ場合 どのようにしたら内周なり外周なりが a=20、b=15の楕円で加工できるかを問題としている訳です。 工具半径を 1mmとすれば、工具中心は 当然 a=19、b=14の楕円軌跡しか無いですね。 そしてこれが求める a=20、b=15の加工楕円形状なんです。 MCでは加工精度上、微細寸法で補正を掛けたくなるので工具径を加味したプログラミングが必要とされます。
---------- (1)質問者さんが微分してうんぬんと言われている、 a=20・b=15の楕円を内側に1mmオフセットした図形。(楕円ではありません) (2)a=19・b=14の楕円。 ---------- この二つは同じではありません。 マクロとCADで確認してみると、(1)と(2)では0.01mm強の誤差がありました。 φ2(R1)のツールパスとしては、 ---------- (1)質問者さんが微分してうんぬんと言われている、 a=20・b=15の楕円を内側に1mmオフセットした図形。 そのとおりです。 質問者さんの元々の考えで合っています。
お礼
回答ありがとうございます!やはりそうですよね? どれが一番正解なのか改めて考えなおしましたが、 インターネットで検索していると下記のサイトを見つけたました。 http://www.tech.sci.nagoya-u.ac.jp/databook/w1999/w5w.html サイトの内容ではやはりボールエンドミルの中心を、微分して接線、法線の角度を割り出して求めるという方法です。信憑性の高いものだと思いますが・・。mckazkazさんが <楕円上のポイントと楕円中心を結んだ線上に工具中心がなければなりません。 とお答え下さった内容は上記のサイトの内容を見るとどちらが正解なのか混乱してきました。 僕の元々の考えでは接線の傾きに直角な線=法線、その法線上にあるのが工具中心であって、楕円の中心からの工具と楕円の接点がなす角度と接線の傾きは直角でないからこそ、微分によって接線の傾き、法線の傾きを求める必要があり、それによって工具中心を割り出すことができると思っていたのですが・・・。だとすると、とくほんさんが言われているようにD=1でa=20,b=15の楕円を描いたときの工具経路はa=19,b=14の楕円と等しくないという事になり、微分して角度を求めた法線の線上にある工具経路をたどることがd=1のときにa=20b=15の楕円を幾何的に一致させることができるという事になりますよね。
工具半径D=1で誤差0.02では、D=5ならば単純に考えて誤差0.1ですから何か変ですね。 私は考え違いだと思います。 質問にある交点は接点ですね。 接点で微分により接線の角度をだし、法線の角度を求めて工具の中心を求めるという考えだと思いますが。 楕円上のポイントは あくまで x=a*cos(t) y=b*sin(t) 0<=t<360 です。 つまり、楕円上のポイントと楕円中心を結んだ線上に工具中心がなければなりません。 この条件を満足する法線は 0、90、180、270度の時だけです。 よって法線の角度は使えません。 マクロを考えた場合 角度tを変化させ、上記した式よりx、yを求めます。 xを変化させた時は指令された楕円方程式より yを計算し角度tを求めます。 答えは工具半径Dを加味して x=x+D*cos(t+180) y=y+D*sin(t+180) となります(外側を考えた時は Dは -D)。 WHILE[ ]DO1 ・・・・・・・END1 ルーチンで回せばOKです。 楕円形状の変化に関しては、離心率の問題ですのでネットでチェックして下さい。
お礼
回答ありがとうございました。ご指導いただいたやり方で確認したところ、誤差なく正常に動作しました!まだまだ楕円についての知識や計算式を理解できてないようです。これからいろいろなマクロにトライしてみようとおもうのでその際はご指導お願いします!
あなたが言っておられる、どこかのサイトで見た微分して求める方法が、包絡線を作るやり方であるならば、あなたのやっている方法が正確であるといえると思います。 少なくとも、a=20b=15の楕円を工具半径D=1で削ろうとする時に、a=19b=14の楕円で工具を動かすと当然誤差が生じます。
お礼
回答ありがとうございます!包絡線wikiにて確認しました。もう少し勉強してみようと思います!
a=20 b=15の楕円からD=1小さい形状が a=19 b=14の楕円ではないと、皆さん回答しているのだと思います。 類似しているかもしれませんが、計算値としては間違っています。 X軸、Y軸での数値は一致していますが。 どこかのサイトで見たのであれば、それは簡易的に描くための 方法なのでしょう。
>工具半径D=1としたらa=20b=15の場合実際の工具中心はa=19b=14の楕円を描いていく MCの実際の動作はわかりませんが、作図的には違います。 工具の軌跡は、必要な形状等距離オフセット図形になるはずです。 楕円のオフセット図形は楕円ではありません。 少し細眺めの楕円を描いてみて、適当な間隔で楕円の線上に円を描いてみるとわかります。 外側の円をつないだ線は一見楕円に見えますが、内側を見ると楕円でないことがわかりやすいです。 楕円に対して円を大きくしていくと、レンズ状に長径側がとがってきます。 CADに作図機能があると簡単に確認できます。 >言っていることはなんとなくわかりますが、 作図してみましたか? なんとなくではなく、作図して理解しましょう。 長径50、短径25の楕円状の軌跡でを5ミリのエンドミルを走らせると、 一見内外形とも楕円に見えますが、このエンドミルを10ミリに変えると 内側の形状が破綻しているのが容易にわかります(カムや歯車の加工の 問題と同じです)。 >工具半径D=1としたらa=20b=15の場合実際の工具中心はa=19b=14の楕円を描いていく これは、楕円形状を削り出すためには、工具の軌跡も楕円になると読みました。 ところが、円形の刃物で加工するのであれば、楕円の軌跡を描く工具の軌跡では 楕円形状のものは削り出せません・・・ということを述べました。 楕円状の刃物の包絡線と、実際の楕円とを比較すれば違いがわかります。
お礼
回答ありがとうございます。言っていることはなんとなくわかりますが、 微分して求めた角度から工具中心を求めた値と回答(1)でranzoさんが答えてくださった値ではどちらが正解なのか、それともどちらとも正解なのでしょうか?どちらとも正解ならばピッチが同じであれば精度は同じになると思うのですがどうでしょう?
場合によっては、そのくらいの、誤差が発生する可能性はあります できるだけ計算式は単純化したほうが、誤差の蓄積が少なくなります 補正量を別に計算しないで 直接的にX=COSΘ*19,Y=SINΘ*14としたほうが いいのでは?
お礼
回答ありがとうございます!確認しましたが確かにそのほうが正確ですね! でもその方法を使用するならはじめからa=20b=15の値から工具半径を引いた値で計算させた方が早いんですかね?皆さんが3次元や2.5次元で加工する時はどのようにしているんですかね。ボールエンドミルによる切削の場合微分して工具中心を求めると、あるサイトに記載してあるのを見たことあります。
お礼
やはりそうですよね!僕も色々悩みましたが正解はそうだと思います。 検証したあかつきにはまたご指導よろしくお願いします。