memorandums

日々の生活で問題解決したこと、知ってよかったことなどを自分が思い出すために記録しています。

OpenSCAD使ってみた

あけましておめでとうございます。今年もよろしくお願いします。

さて。

3Dプリントするモデルを作るときに123Designを利用しているのですがモデルを幾何学的に配置するのが難しい(というか面倒)ことがよくありました。

たまたま本屋で以下の本を見つけていつか遊んでみたいな。。。と思っていました。本は買いませんでしたが。。。すいません。

基礎からのOpenSCAD (I・O BOOKS)

基礎からのOpenSCAD (I・O BOOKS)

今朝、ソフトウェアをインストールして、チュートリアルを見ながらコマンドを調べながら、暇にしていた小1の娘と一緒に雪だるまを作ってみました。

OpenSCAD - The Programmers Solid 3D CAD Modeller

数値がどう効くのか考えながらプレビューするのはまどろっこしいようで楽しい作業でした。意図しない配置になって笑いが起きる。。。鼻が目がら突き出たりなどです。。。子供はこういうの好きですからね。。。失敗が面白いのはモデルが見えるCGならではの面白さですね。

f:id:ke_takahashi:20170102121501p:plain

とりあえず段階的に作ったコードは以下です。物体の種類を決めて、translateで配置して、colorで色付けして、rotateで回転する、とりあえず基本はこれでできますね。セミコロン(;)をつけないと後に影響するようです。
モデルの結合とか差分とかもできるようですので、とりあえず基本的なモデリングはそれほど考えなくてもできそうです。幾何学的な物体は繰り返しなど使えばできそうですね。

color([1,1,1])
translate([0,0,10])
sphere(15);
color([1,1,1])
translate([0,0,-20])
sphere(20);

rotate([0,40,0]) {
    translate([20,0,0])
    color([1,0.3,0.1])
    cylinder(r=2,h=20);
}

rotate([0,-40,0]) {
    translate([-20,0,0])
    color([1,0.3,0.1])
    cylinder(r=2,h=20);
}

rotate([0,90,0]) {
    translate([-5,-13,-5])
    color([1,0.3,0.1])
    cylinder(r=2,h=10);
}

color([0,0,0])
translate([-5,-13,13])
sphere(2);

color([0,0,0])
translate([5,-13,13])
sphere(2);

color([1,0,0])
translate([0,0,20])
cylinder(h=20, r1=15, r2=8);

rotate([-90,0,0]) {
    color([1,0.5,0])
    translate([0,-10,-25])
    cylinder(h=20, r1=1, r2=3);
}

color([0,0,0])
translate([0,-17,-10])
sphere(2);

color([0,0,0])
translate([0,-19,-18])
sphere(2);

color([0,0,0])
translate([0,-18,-27])
sphere(2);

3D CADソフトウェアですからSTLファイルを出力できます。ですので作ったモデルを見るだけではなく3Dプリントできちゃいます。

冬休みは短いですが、時間を持て余している子供と一緒にやってみると楽しめると思いますよ。