今日も、"ようこそ"      

今日も、"ようこそ"

定年退職後、横浜市から湯梨浜町(鳥取県)に転居しました。 ここには、両親が建てた古い家が残っています。 徒歩5分で東郷池, 自転車15分で日本海です。 また、はわい温泉の温水が各家庭まで届き、自宅温泉を楽しめます。 ブログでも始めようかと、HPを立ち上げました。最近始めた木工工作と古くなった家のリフォームの様子を、田舎の日常に織り交ぜながら、お伝え出来ればと思います。

CNCルーター(5)

2021 2 25 (art21-0319)
CNCルーターの指令言語(Gコード)には、直線と円弧の移動を指令するものがあります。この2つのコードを組み合わせて、前回、文字「ABC」を彫らせたところ、なかなかの出来でした。今回は、楕円の線彫りに挑戦です。残念ながら、Gコードには、楕円移動を指令するコードがありません。

機械がどのような制御系で作動しているかは、その道の専門家にまかせて、ここでは、回転刃のXY平面上の動きを取り上げます。移動先の座標 (Xn, Yn) を与えてやれば現在の座標 (Xn-1, Yn-1) から (Xn, Yn) へ直線移動するものとします。変化量を ΔX (=Xn-Xn-1),ΔY (=Yn-Yn-1) とすれば、移動距離は√(ΔX^2+ΔY^2)になります。(X1, Y1), (X2, Y2), (X3, Y3), --- (Xn, Yn)と、(X, Y)座標を指定すると、回転刃はそれらの座標を直線でつなぎます。この時、ΔX、ΔYを小さくして、隣接する2点間の移動距離を小さくすれば、どのような曲線でも、近似的に曲線にそって回転刃を動かすことができます。

隣接する2点間の移動距離が大きいと、カックン、カックンとした線となりますから、移動距離は出来るだけ小さくとったほうが、滑らかな線になります。しかし、そうすると、座標点を多数とることになり、その分、指令の数、結果として行数、が増えます。10cmの曲線を彫るのに、2mm間隔の移動距離では50行ですが、1mmでは倍の100行になり、0.1mmにすれば1000行になります。玩具遊びであれば、とりあえず、なめらかな曲線に見えればOKとすべきでしょう。一つ、細かく刻んだ座標を指定して、円と楕円を彫らせてみます。

319-1_cnc1310_20210223my

円は半径15mm。中心角の増分を1度とし、360点の円周上の (X, Y) 座標を計算しました。出発点を (15, 0) とすれば、中心角45度前後の座標は、(10.420, 10.790), (10.607, 10.607), (10.790, 10.420) となります。隣接する2点間の距離は0.262mmと算出されます。

楕円はつぶれた円とみなし、半径15mmの円をX軸方向へつぶします。つぶす程度は50%(これを、扁平率と呼びます)としました。長軸15mm、短軸7.5mmの楕円になります。元の円に対応する楕円の座標は (0.5X, Y) となります。そうすると、楕円上にも360点の座標が構成されます。隣接する2点間の距離は、円の場合はどこでも同じですが、楕円の場合は変動し、尖ったところで大きくなり、平らなところで小さくなります。最大値は、長軸上(Y座標)の0.262mm、最小値は短軸上(X座標)の0.131mmです。

円を描く360点の (X, Y) 座標、そして、楕円用の 360点の (X, Y) 座標を指定するGコードを組み込みプログラムを書きました。切削刃を移動させるコードだけで、360の倍、720行になります。プログラムをCNCルーターへ送り、切削を実行させました。
結果は、なかなかの出来です。円、楕円とも、滑らかな彫線になりました。切削刃には、2mm径のエンドミルを使っています。これだと、0.262mm間隔の直線移動をつなげても、見た目では、曲線に見えることが分かりました。10cmの曲線にあてはめると、必要な指令数は382となり、1指令1行で書くと、382行ですみます。

319-2_cnc1310_20210221b
   


 【戻る】