楕円マクロの計算式の誤差について

このQ&Aのポイント
  • 最近作成した楕円マクロにおいて、計算式の誤差が生じています。
  • 楕円マクロを使用して特定の点で角度を求める際、工具半径を考慮する必要があります。
  • 工具半径Dを1として計算した結果、0.02程度の誤差が生じたのですが、これは正常な範囲内でしょうか?
回答を見る
  • 締切済み

計算式の誤差(楕円マクロ)

最近楕円のマクロ(ファナック)を作成してみました。内容は楕円公式にのっとって作ったもので、a>b>0、ピッチをx=0.1としa=20b=15の楕円で中心x0y0からy頂点(b)までG01で進み設定した角度j(x-z平面角度)の角度でx頂点(a)まで進み、yマイナス頂点→xマイナス頂点→y頂点といった具合に楕円上に一周まわるといった内容です。何とか動作できたのですが次にこれを 工具半径=Dを考慮したマクロを作成しようとしているのですがこの場合 工具中心をX,Y楕円と工具の交点Xp,Ypとの角度を微分して求め任意の点で角度を求めるマクロを作りたいと思ったのですが、この場合工具半径D=1としたらa=20b=15の場合実際の工具中心はa=19b=14の楕円を描いていくということですよね?なので、微分して求めた傾きを工具半径D=1にSIN,COSで補正量を計算し求めた値Xを楕円公式にあてはめYの値を計算したところ0.02ほどの誤差(a=19,b=14の楕円と比較して)が生じました!このくらいの誤差はでるものなのでしょうか?それとも僕の計算間違いでしょうか?どなたか教えていただければ幸いです。

noname#230358
noname#230358

みんなの回答

noname#230359
noname#230359
回答No.9

回答(5)(7)を撤回します。 a=19、b=14の楕円が証明の基準となったので 明らかに不合理です。 a=20、b=15とでは焦点、離心率も変化しますしね。 当然オーバーカットも起こるでしょう。 質問者の垂線方向の移動による加工ポイントの変化をジックリ検証してマクロを考えてみます。

noname#230358
質問者

お礼

やはりそうですよね!僕も色々悩みましたが正解はそうだと思います。 検証したあかつきにはまたご指導よろしくお願いします。

noname#230359
noname#230359
回答No.8

百聞は一見にしかず、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°以外でオーバーカットとなることが分かります。

noname#230358
質問者

お礼

回答ありがとうございます。残念ながら添付されたURLへ飛ぶことができませんでした。CADを使える環境にないので確認できませんがMCの描画で確認できるか試してみようと思います。

noname#230359
noname#230359
回答No.7

質問者は『設定した楕円形状を加工する』ことを目的としています。 つまり、a=20、b=15の楕円です。 工具径が絡んだ場合 どのようにしたら内周なり外周なりが a=20、b=15の楕円で加工できるかを問題としている訳です。 工具半径を 1mmとすれば、工具中心は 当然 a=19、b=14の楕円軌跡しか無いですね。 そしてこれが求める a=20、b=15の加工楕円形状なんです。 MCでは加工精度上、微細寸法で補正を掛けたくなるので工具径を加味したプログラミングが必要とされます。

noname#230359
noname#230359
回答No.6

---------- (1)質問者さんが微分してうんぬんと言われている、   a=20・b=15の楕円を内側に1mmオフセットした図形。(楕円ではありません) (2)a=19・b=14の楕円。 ---------- この二つは同じではありません。 マクロとCADで確認してみると、(1)と(2)では0.01mm強の誤差がありました。 φ2(R1)のツールパスとしては、 ---------- (1)質問者さんが微分してうんぬんと言われている、   a=20・b=15の楕円を内側に1mmオフセットした図形。 そのとおりです。 質問者さんの元々の考えで合っています。

noname#230358
質問者

お礼

回答ありがとうございます!やはりそうですよね? どれが一番正解なのか改めて考えなおしましたが、 インターネットで検索していると下記のサイトを見つけたました。 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の楕円を幾何的に一致させることができるという事になりますよね。

noname#230359
noname#230359
回答No.5

工具半径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です。 楕円形状の変化に関しては、離心率の問題ですのでネットでチェックして下さい。

noname#230358
質問者

お礼

回答ありがとうございました。ご指導いただいたやり方で確認したところ、誤差なく正常に動作しました!まだまだ楕円についての知識や計算式を理解できてないようです。これからいろいろなマクロにトライしてみようとおもうのでその際はご指導お願いします!

noname#230359
noname#230359
回答No.4

あなたが言っておられる、どこかのサイトで見た微分して求める方法が、包絡線を作るやり方であるならば、あなたのやっている方法が正確であるといえると思います。 少なくとも、a=20b=15の楕円を工具半径D=1で削ろうとする時に、a=19b=14の楕円で工具を動かすと当然誤差が生じます。

参考URL:
http://ja.wikipedia.org/wiki/%E5%8C%85%E7%B5%A1%E9%9D%A2
noname#230358
質問者

お礼

回答ありがとうございます!包絡線wikiにて確認しました。もう少し勉強してみようと思います!

noname#230359
noname#230359
回答No.3

a=20 b=15の楕円からD=1小さい形状が a=19 b=14の楕円ではないと、皆さん回答しているのだと思います。 類似しているかもしれませんが、計算値としては間違っています。 X軸、Y軸での数値は一致していますが。 どこかのサイトで見たのであれば、それは簡易的に描くための 方法なのでしょう。

noname#230359
noname#230359
回答No.2

>工具半径D=1としたらa=20b=15の場合実際の工具中心はa=19b=14の楕円を描いていく MCの実際の動作はわかりませんが、作図的には違います。 工具の軌跡は、必要な形状等距離オフセット図形になるはずです。 楕円のオフセット図形は楕円ではありません。 少し細眺めの楕円を描いてみて、適当な間隔で楕円の線上に円を描いてみるとわかります。 外側の円をつないだ線は一見楕円に見えますが、内側を見ると楕円でないことがわかりやすいです。 楕円に対して円を大きくしていくと、レンズ状に長径側がとがってきます。 CADに作図機能があると簡単に確認できます。 >言っていることはなんとなくわかりますが、 作図してみましたか? なんとなくではなく、作図して理解しましょう。 長径50、短径25の楕円状の軌跡でを5ミリのエンドミルを走らせると、 一見内外形とも楕円に見えますが、このエンドミルを10ミリに変えると 内側の形状が破綻しているのが容易にわかります(カムや歯車の加工の 問題と同じです)。 >工具半径D=1としたらa=20b=15の場合実際の工具中心はa=19b=14の楕円を描いていく これは、楕円形状を削り出すためには、工具の軌跡も楕円になると読みました。 ところが、円形の刃物で加工するのであれば、楕円の軌跡を描く工具の軌跡では 楕円形状のものは削り出せません・・・ということを述べました。 楕円状の刃物の包絡線と、実際の楕円とを比較すれば違いがわかります。

noname#230358
質問者

お礼

回答ありがとうございます。言っていることはなんとなくわかりますが、 微分して求めた角度から工具中心を求めた値と回答(1)でranzoさんが答えてくださった値ではどちらが正解なのか、それともどちらとも正解なのでしょうか?どちらとも正解ならばピッチが同じであれば精度は同じになると思うのですがどうでしょう?

noname#230359
noname#230359
回答No.1

場合によっては、そのくらいの、誤差が発生する可能性はあります できるだけ計算式は単純化したほうが、誤差の蓄積が少なくなります 補正量を別に計算しないで 直接的にX=COSΘ*19,Y=SINΘ*14としたほうが いいのでは?

noname#230358
質問者

お礼

回答ありがとうございます!確認しましたが確かにそのほうが正確ですね! でもその方法を使用するならはじめからa=20b=15の値から工具半径を引いた値で計算させた方が早いんですかね?皆さんが3次元や2.5次元で加工する時はどのようにしているんですかね。ボールエンドミルによる切削の場合微分して工具中心を求めると、あるサイトに記載してあるのを見たことあります。

関連するQ&A

  • 楕円計算で困っています

    長径2a、短径2bの楕円があり、長軸と短軸の交点座標(いわゆる中心点)を(0,0)とする この中心点からx軸からの角度αで直線を引き、楕円との交点座標を(x1,y1)とし、 また、この座標がx軸に対して対称な座標を(x1,-y1)とする この2点に対して楕円の接線を引いて、2つの線の角度をβとする この条件で(x1,y1)座標と角度βを、a,b,角度αを用いて表現する方法はないでしょうか? 色々考えてみたのですがどうも上手くいきません。 どうかよろしくお願いします。

  • 角度から楕円の座標を計算したい

    原点を中心として、長径20・短径10の楕円について ある角度の時のx座標y座標の値を得る式を考えているのですが、どうしても思いつきません。 x^2/a^2+y^2/b^2=1が楕円の方程式で間違いないと思います。 現在、 x^2/20^2+y^2/10^2=1 の式で表す楕円のxとyについて、角度θから計算したいのです。 元々数学が得意でないため高校時代の教科書を探して勉強し直してみたのですが、どうしても思いつきません。 θを与えると座標が出てくる式を教えてください。

  • 円と楕円の交点

    円1 円の中心(A、B) 円の半径R 楕円2 楕円の X軸半径P、Y軸半径Q 中心(X、Y) (これら全ては定数とする) これら円1と楕円2の交点の求め方についてご教示いただけますでしょうか。

  • 測定点の楕円近似

    傾斜した円筒を水平に測定して得られたi個の測定点(X[i],Y[i])を楕円の公式にフィッティングし、その楕円の中心座標(X0,Y0),楕円のなす角度θを求めたいと考えております。 とあるサイト上で楕円の式 f(x,y)={(x-x0)cosθ+(y-y0)sinθ}^2/a^2+{(x-x0)sinθ-(y-y0)cosθ}^2/b^2=1 ただし、a=長半径 b=短半径 として、多変量の非線形最小二乗法にて当てはめる事により5つの変数を求めることが出来るとあり、そのプログラムも公開されていたのですが、私、数学ならびにプログラムに対して全くの素人の為、色々とサイトや文献を調べたのですがどのように行えば良いのか理解する事が出来ませんでした。 出来ればExcelシートで計算出来ればと思っております。 考え方、公式等だけでも構いませんので、どうかご教授願えませんでしょうか? 皆様方、どうか宜しくお願いいたします。

  • 楕円弧の方程式とそのx,yの最大値・最小値

    以下の設問について求め方と解を教えてください。 1.長半径a,短半径bの楕円弧を中心点を軸に角度θで回転した時の方程式。 2.その楕円弧のx,yの最大値・最小値。

  • 楕円の円周上の座標を求める計算式を教えて下さい。

    原点(0,0),長軸a,短軸bとする楕円上で、原点から角度シータの位置にある楕円の円周上の座標(x,y)を求める計算式を教えて下さい。 単純に、acosθ,bsinθで求めると、なんだか座標値がおかしくなるのですが。

  • 見慣れないタイプの楕円方程式なのですが

    x^2-2xy+3y^2-2x+2y=1 で表される楕円について、 (1)楕円の中心 (2)楕円と交わる直線y=x+kについて、y切片の最大値 (3)楕円と交わり、原点を中心とする円について、半径の最大値を与えるyが満たす方程式 を求めよ、という問題なのですが、xyの項などがあり変形の仕方がよく見えてきません。 普通楕円といえば原点を中心として x^2/a^2+y^2/b^2=1 という形が一般的ですが、この問題はまずどういう式変形をするべきなのでしょうか?

  • 描画プログラムで、2楕円に接する円を描く

    VBで円を描くプログラムを作っています。 2つの楕円に接し、片方の楕円円周上にある 1点を通過する円を描きたいです。 正確には、もう一方(通過点のない側)の円周上にある 2接円が通過する点を求めたいです。 楕円はxy座標に対して平行ではなく、さまざまに傾いています。 楕円A(接円の通過点がある) 楕円中心(Ax,Ay) 楕円長径Aa 楕円短径Ab 楕円長径ベクトルAaD(x,y) 楕円短径ベクトルAbD(x,y) 焦点As1(x,y)、As2(x,y) 通過点T1(x,y) 通過点を通る楕円Aの接線T1L 通過点を通る楕円AのベクトルT1LD(x,y) も出ています。 楕円B(接円の通過点がない) 楕円中心(Bx,By) 楕円長径Ba 楕円短径Bb 楕円長径ベクトルBaD(x,y) 楕円短径ベクトルBbD(x,y) 焦点Bs1(x,y)、Bs2(x,y) 楕円はいずれも、中心から長径方向のベクトルに進んだ点を始点に描画されています。 ちなみにこの2楕円+片方の楕円円周上通過点の2接円を考える前に 真円AB2つと、片方の円周上通過点Tの2接円も考えました。 円AおよびB 中心(x,y) 半径Ar、Br 円A上の通過点T(x,y) 通過点を通る円Aの接線T1L 通過点を通る円AのベクトルT1LD(x,y) 円A、Bはどちらも、中心からX軸方法に半径分の距離をとった座標 を始点に描画されています。 この場合は、 (1)真円A上にある通過点から円接線を引く。 (2)接線T1Lから、真円A中心方向に法線T1Nを引く。長さは円Bの半径 (3)2の法線の終点座標T1Ned(x,y)と円Bの中心をつなぐ線T1NBを取る (4)T1NedのX軸正方向水平線から、T1NとT1NBの角度を調べる (5)円B上に始点からT1NB-T1Nの角度をとった円周上点T2を取る。ここが2接円の通過点。 という感じでできました。(5)の計算が、手元に資料がないので曖昧なんですが。 真円2接の応用で楕円2接もトライしたのですがどうもできません。 よろしくお願いします!

  • 楕円の計算

    楕円の計算で教えて下さい。 長径から、角度θの位置での動径(半径)Rを求めたいのですが 教えて下さい。

  • 楕円の問題

    楕円(x/a)^2+(y/b)^2=1がある。(a>b>0) 点Aを(a,0)とする。 このとき原点をO、楕円上の点をPとすると、角OPA<90°となるa,bの関係を求めよ。 という問題がありました。 僕はまず、角OPAが90°になる奇跡を考えて、当然円になります。 Pがこの円の外側にあれば条件を満たせます。 この円は中心(a/2,0)、半径a/2であるので方程式は、 (x-a/2)^2+y^2=a^2/4 これと楕円とは(a,0)でだけ接すればよいので、楕円の方程式を変形してy^2=の形にして、円の方程式に代入して判別式を使ったら、a=√2×bと出てきました。 しかし答えはa≦√2×bでした。 ぼくの解答のどこがまずいのでしょうか? 添削お願いします。