広告

雑多なこと

  • 2014年バージョンではpointsなどの配列に新しい要素を追加できない
    • 新しいバージョンではconcatという関数でできるようになるらしい
  • 同じ変数を複数回定義すると「undef」(数値的には0)になる。
    • バグかもしれない
  • 角にアールがついたブロックを作るのに便利な関数
    • 2015年3月バージョン以降は「offset+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
      • 厚さも変わってしまうので注意
      • 以下例
        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
      • 以下例
        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で潰す
      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);
      }
  • 回転楕円体楕円体
    • 球をscaleで引き伸ばす
      spheroid();
      module spheroid(){
        //resize([0,40,0])    //resizeではうまく行かなかった
        scale([1,1,2])
        sphere(r = 20);
      }
  • 元図形が残るミラー
    • 2014年バージョンでは専用関数は無い。mirrorは元図形が残らない
    • 有志が作ったモジュールがある
      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();
      }

広告

リロード   差分   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS