広告
*雑多なこと [#of0dd9c7] //**気付き事項 [#d9516e59] //-2014年バージョンではpointsなどの配列に新しい要素を追加できない //--新しいバージョンではconcatという関数でできるようになるらしい //-同じ変数を複数回定義すると「undef」(数値的には0)になる。 //--バグかもしれない **[[FreeCAD]]へのインポート [#p67b7ae1] OpenSCADのスクリプトを[[FreeCAD]]へインポートできる. -表示モードを「OpenSCAD」にして「ファイル(File)」⇒「開く(Open)」でOpenSCADのファイル(*.scad)を開く -後は普通に使う **表示関係 [#h3896571] -色の指定 --color(色,α値(透過度)) -背景色を変える(スキームの変更) --「Edit」→「Preferences」→「3D View」でスキームを選ぶ --コマンドラインで立ち上げるときにスキームを指定 openscad --colorscheme=スキーム名 --スキーム設定ファイルを編集または作製 ---「/usr/share/openscad/color-schemes/render」などにある -断面の色を変える --上述のスキームを変える --difference()で引く側の色を変える。 **プログラミング関係 [#u37c12db] -角にアールがついたブロックを作るのに便利な関数 --2015年3月バージョン以降は「[[offset:https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset]]+[[linear_extrude:https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Using_the_2D_Subsystem#Linear_Extrude]]」を使うのが楽 testOffset(20,10,5,2); module testOffset(x,y,z,r,center = false){ linear_extrude(height = z, center = center) offset(r = r) { square([x-2*r,y-2*r], center = true); } } --[[minkowski:https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#minkowski]] ---厚さも変わってしまうので注意 ---以下例 rBox(20,10,10,2); module rBox(x,y,z,r,center=false){ minkowski(){ cube(size = [x-2*r,y-2*r,z-r],$fn=res,center=center); cylinder(r=r,h=r,$fn=res,center=center); } } --[[hull:https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#hull]] ---以下例 testHull(20,10,5,2); module testHull(x,y,z,r,center = false){ linear_extrude(height = z, center = center) hull() { translate([x/2-r,y/2-r,0]) circle(r); translate([x/2-r,-y/2+r,0]) circle(r); translate([-x/2+r,-y/2+r,0]) circle(r); translate([-x/2+r,y/2-r,0]) circle(r); } } ---一つの頂点が丸まっている三角形 rTriangle1(); module rTriangle1(){ linear_extrude(height = 5, center = true) hull() { polygon([[20,0],[0,20],[-20,0]]); translate([0,20,0]) circle(d=5); } } ---すべての頂点が丸まっている三角形 rTriangle2(); module rTriangle2(){ linear_extrude(height = 5, center = true) hull() { translate([0,20,0]) circle(d=5); translate([20,0,0]) circle(d=5); translate([-20,0,0]) circle(d=5); } } -楕円柱 --円柱を[[resize:https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#resize]]で潰す ellipseCylinder(10,20,5,res=200,center=true); module ellipseCylinder(h,a,b,res=100,center=false){ resize([0,2*b,0]) cylinder(h = h, r = a,$fn=res,center=center); } #ref(ellipsecylinder.png) -[[回転楕円体:http://ja.wikipedia.org/wiki/%E5%9B%9E%E8%BB%A2%E6%A5%95%E5%86%86%E4%BD%93]]、[[楕円体:http://ja.wikipedia.org/wiki/%E6%A5%95%E5%86%86%E4%BD%93]] --球を[[scale:https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#scale]]で引き伸ばす。楕円をrotate_extrudeで回転させるよりも速い spheroid(); module spheroid(){ //resize([0,40,0]) //resizeではうまく行かなかった scale([1,1,2]) sphere(r = 20); } #ref(spheroid.png) -元図形が残るミラー --2014年バージョンでは専用関数は無い。[[mirror:https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#mirror]]は元図形が残らない --[[有志が作ったモジュールがある:http://forum.openscad.org/Wish-mirror-copy-true-td10681.html]] module copy_mirror(vec=[0,1,0]) { children(); mirror(vec) children(); } --同様の手法でコピーもできる copy([20,0,0]) cube([10,20,5], center = true); module copy(vec=[0,0,0]){ children(); translate(vec) children(); } **ヘンテコな図形 [#je373325] -linear_extrudeは引き伸ばしながらねじることもでき、絞ることもできるのでファンのブレードみたいのも作れる $fn=100; linear_extrude(height = 20, center = true, twist = -30,scale=[0.1,0.1]) translate([5,0,0]) resize([0,2,0]) circle(d=15); #ref(twist_extrude.png) 広告 |