OpenSCAD
宣言的にプログラミングできるCAD
学ぶ前に直感的に思っていること
細かいところを修正するのはやりづらそう
繰り返し構造は得意そう
Fusion 360とかの方が素早くモデリングできるんじゃないの?
mirror
特殊記号
どこの物体かわかるようにする( #
)
一連の処理を適用させない( *
)
半透明にする( %
)
注目点以外を描画しない( !
)
sphereは円周を何分割するか選べる
楕円はscaleを使う
scadscale([2, 2, 0.2]) {
cube(10);
}
polyhedron
頂点と面を指定する
これは厄介

平面図形を作って
polygonで頂点を指定してかけるけど、これはいかにも辛そう
複雑なデータだと読みづらくなるだろうから
押し出す
scadlinear_extrude(height=5){
square([200, 150]);
}
polygonなどで作った2Dを押し出せる
3Dは押しだせないっぽい
回転する
おこしてz軸周りに回転する
奇妙な動きに思える

scadrotate_extrude() {
translate([5,0,0]){
square([5,10]);
}
}
intersection
共通部分だけ抜き出す
diffenrence
先に書いたものから後に書いたものを消す
union()で合成する
複数の形を合わせて、differenceしたい物体を作る時によく使う
ループ処理
if、三項演算子
関数 function
differenceしたものからdifferenceする
書き出す前にはrenderをしてからexportをする
台形が作りたい
1. 四角形から切り抜く
2. extrudeするときにオプションで末尾指定する
polyhedronで三角形の一面だけ作ってlinear_extrudeしようとしたができなかった
回転したい
rotate()
単位はない
エクスポート
初回の感想
拘束条件の記述が面倒
「穴と穴の距離はわかってる」「適当な板につけたい」というときに困る
穴を開けたものを作るには適さない
穴を開け始めると穴の位置がわからなくなるので、レンダリングをする必要がある
レンダリングをするのに一手間必要で、かつ多少複雑になると時間がかかる