「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



頭の中でもやもやと考えていたものを、ちょっと
造形してみることにする。渦巻きを立体化してみる。


OpenSCADの本には、「時計の文字盤」の作り方を載せて
いたんだけど、この文字盤は、市販の時計用ムーブメント
を組み合わせることを想定したもの。

実はこれ、もうちょっとその先を考えていたことがあって、
3Dプリンタだけで、時計を作れないもんかなぁ?と。
つまり、コチコチと機械的に時を刻むメカ時計。


メカの時計というと、やっぱり、ゼンマイ、ガンギ車、
アンクル、キャリッジ、トゥールビヨンを使って、
コチコチと秒針が進むまでを3Dプリンタで出力して…
というのがあるわけ。


ガンギ車とか、アンクルとかは、まぁ幾何学的なもの
なので、プリミティブの組み合わせからなんとか
なっちゃうものだと思うわけど、ゼンマイ型のたぐい
は、プリミティブからは作れない。

なので、いわゆる渦巻き型を作るスクリプトを
書いてみよう、と。
ポリゴンで渦を描いて、それをlinear_extrude
で立体化する感じに。


ゼンマイの板厚、巻き数(回転角)、内径、外形
といった基礎数値を指定すると、それに合わせた
ゼンマイを吐き出してくれるスクリプトにして
みた。こんなかんじ。


$fn = 180;

function fc(i,rd, rt, w, agl)
  = (rd * (rt + (i / agl) * (1-rt)) + w) * cos(i);

function fs(i,rd, rt ,w, agl)
  = (rd * (rt + (i / agl) * (1-rt)) + w) * sin(i);


module obj(r1, r2, w, a) {
  s = 360 / $fn;
  rt = r1 / r2;
  for (i = [0 : s : a -s]) {
    p1 = [fc(i,r2,rt,0,a),
          fs(i,r2,rt,0,a)];
    p2 = [fc(i+s,r2,rt,0,a),
          fs(i+s,r2,rt,0,a)];
    p3 = [fc(i+s,r2,rt,w,a),
          fs(i+s,r2,rt,w,a)];
    p4 = [fc(i,r2,rt,w,a),
          fs(i,r2,rt,w,a)];
    polygon (
      points = [p1, p2, p3, p4]
    );
  }
}

linear_extrude(height = 25) {
  inner_r = 20;
  outer_r = 50;
  width = 1;
  angle = 3600;

  obj(r1 = inner_r,
      r2 = outer_r,
      w = width,
      a = angle);
}



加工精度にかかわる特殊変数は、とりあえず$fnだけ
対応しておいた。($faと$fsは無効)

これで、板厚1mm、回転角3600度(10周分)、内側の
半径20mm、外側の半径50mm、ゼンマイの高さ25mmという
パラメタに設定して、出来たのがこんな感じ。




パラメタの設定次第で、いろんなバリエーションの
ゼンマイが作れるようにできた。


さて、こんなのとか、ガンギ車とかを3Dプリンタで
作ったりするひとなんて、いないだろうなぁ、なんて
思ってたら、


http://gigazine.net/news/20160114-3d-printed-watch/

いた。モロに、やろうと思ってたことをやってるひと
いたよ。

これ見事だな。ゼンマイ巻いてエネルギーを蓄えると、
コチコチと時を刻む、フルスペックの時計に仕上がってる。
これなんだ。これなんだよ。目指してたのは。





https://twitter.com/r_mono_lab/status/760938060703866880

24ビット、96kHzの、Raspberry Pi内蔵のシンセ。
いいなぁ。



コメント ( 0 )
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする