Floating Nav Title WITS
新歓特設ページ
2023年新歓情報更新しました!
理工展作品紹介

WITS BLOG

3Dデータ OpenScad編

3Dプリンターを使う場合、大きく分けて芸術用と部品用があると思います。
今回紹介するソフトは、OpenScadというソフトで、後者の3D部品を設計するためによく使うフリーソフトです。このソフトの特徴は、コードを書いて立体を成形していくことです。Blenderやメタセコイアなどのようなマウスによる直観的操作が出来ない代わりに、座標を指定しながら作るので、精密な部品の設計に向いています。性能を引き出す為にはプログラミングの知識があるとよいです。
こんな感じのソフトです。

左がコードを書く場所で、右の窓にはコンパイル結果が表示されます。
例えば、以下のようなコードを書いてコンパイル(F5キー)すると、あっという間に球が生成できます。表示されているオブジェクトは、マウスをドラッグさせることで自由に回転できます。

sphere(r=30);

また、プログラミングではお馴染みのforループが使えます。なので、以下のようなコードを用意すれば簡単に階段をつくることが出来ます。
for (i = [0:5:+40]) {
translate([i,0,i])
cube(size=[10,20,5]);
}

ここでのforは、変数iを0から40まで5ずつ増やせという命令です。
translateは図形の座標移動の命令です。括弧の中が左からx,y,zの移動量になります。この場合だとxとz方向にi、つまり5ずつずれた直方体が形成されることになります。
また、cubeやsphereといった基本図形のみならず、座標指定による自由な造形も可能です。
linear_extrude(10){
polygon([[-15,-15],[18,-13],[9,13],[-10,0]]);
}

linear_extrudeは平面図形を立体にせよという命令です。括弧の中の数字だけ厚くしてくれます。polygonは座標を結んだ平面図形を生成します。

2つの図形の差分をとって穴を空けることも出来ます。
difference(){
cylinder(r=20,h=10);
cylinder(r=10,h=20);
}
 


openscadは他のcadソフトと比べると使い勝手が悪そうに思われますが、プログラミングの文法が使えることは強力です。forループによって同じ部品を位置を変えながら量産したり、部品の前に状態関数を加えることで角度、スケール、色などが簡単に変更できます。

以下に使用頻度の高いコードを書いておきます。

変数(x=10;)、関数(f(x)=x+5;)

=[,,]

translate()
rotate()
scale()  //等倍
difference()    //穴あけ(差)
minkowski()   //角を丸く
hull()  //つなげる
intersrction_for(=)  //繰り返し
linear_extrude()   //立体化

・BasicObject
cube();
sphere(r=,$fn=);    //r=半径 $fn=解像度
cylinder(h=,r=,$fn=);   //円柱
cylinder(h=,r1=,r2=,$fn=);
square([2vec]);
cycle(r=,$fn=);
polygon([,...,]);

過去の記事


リンク

EWE早稲田電気工学会