//(2)高さ45センチタイプ // MCADライブラリー screw.scad //screw.scadのある場所により異なる include </libraries/MCAD/screw.scad>; // ウッドポール寸法 R=20; ph1=83; ph2=233; ph3=183; ph4=133; // ジョイントボード寸法 jh=17; jw=50; jl1=300; jl2=450; // 連結ボルト寸法 br=4; bl=60; // 必要事項の計算 // ジョイントボードマージン 20に設定 mar=20; jm=R+mar; // 中央のウッドポール (0,0,z)に設定 // 左右のウッドポールの中央のウッドポールとの位置のずれ x,y px=(jl1-2*jm)/2; py=sqrt(pow(jl2-2*jm,2)-pow(px,2)); // 中央から左右につなぐジョイントボード // の回転角度とずらす長さ rot=atan(px/py); len=jl2/2-(R+mar); // 描画 for(i=[0:1]){ translate([i*500,0,0]){ //中央 // ウッドポール ph1 ph1 ph2 cylinder(h =ph1, r=R); translate([0,0,ph1+jh]){ cylinder(h =ph1, r=R); } translate([0,0,ph1*2+jh*2]){ color("GreenYellow") cylinder(h =ph2, r=R); } // 連結ボルト translate([0,0,ph1+jh/2-bl/2]){ color("gray") auger(pitch=2, length=bl, outside_radius=br, inner_radius=br-1.5, taper_ratio =0.25); } translate([0,0,ph1*2+jh+jh/2-bl/2]){ color("gray") auger(pitch=2, length=bl, outside_radius=br, inner_radius=br-1.5, taper_ratio =0.25); } // 左 ph1 ph2 ph1 // ウッドポール translate([-px,py,0]){ cylinder(h =ph1, r=R); } translate([-px,py,ph1+jh]){ color("GreenYellow") cylinder(h =ph2, r=R); } translate([-px,py,(ph1+ph2)+jh*2]){ cylinder(h =ph1, r=R); } // 連結ボルト translate([-px,py,ph1+jh/2-bl/2]){ color("gray") auger(pitch=2, length=bl, outside_radius=br, inner_radius=br-1.5, taper_ratio =0.25); } translate([-px,py,(ph1+ph2)+jh+jh/2-bl/2]){ color("gray") auger(pitch=2, length=bl, outside_radius=br, inner_radius=br-1.5, taper_ratio =0.25); } // 右 ph3 ph4 ph1 // ウッドポール translate([px,py,0]){ color("LimeGreen") cylinder(h =ph3, r=R); } translate([px,py,ph3+jh]){ color("SpringGreen") cylinder(h =ph4, r=R); } translate([px,py,(ph3+ph4)+jh*2]){ cylinder(h =ph1, r=R); } // 連結ボルト translate([px,py,ph3+jh/2-bl/2]){ color("gray") auger(pitch=2, length=bl, outside_radius=br, inner_radius=br-1.5, taper_ratio =0.25); } translate([px,py,(ph3+ph4)+jh+jh/2-bl/2]){ color("gray") auger(pitch=2, length=bl, outside_radius=br, inner_radius=br-1.5, taper_ratio =0.25); } // ジョイントボード //左-右 translate([0,py,(ph1+ph2)+jh+jh/2]){ color("Coral") cube(size = [jl1,jw,jh], center = true); } // 中央から左右 rotate(a=-rot,v=[0,0,1]){ translate([0,len,ph1*2+jh+jh/2]) color("Orange") cube(size = [jw,jl2,jh], center = true); } rotate(a=rot,v=[0,0,1]){ translate([0,len,ph1+jh/2]) color("Orange") cube(size = [jw,jl2,jh], center = true); } } } // //材料 // ウッドポール for(i=[0:9]){ translate([650+50*i,0,450]){ cylinder(h =ph1, r=R); } } for(i=[0:3]){ translate([650+50*i,0,200]){ color("GreenYellow") cylinder(h =ph2, r=R); } } for(i=[4:5]){ translate([650+50*i,0,200]){ color("LimeGreen") cylinder(h =ph3, r=R); } } for(i=[6:7]){ translate([650+50*i,0,200]){ color("SpringGreen") cylinder(h =ph4, r=R); } } // ジョイントボード for(i=[0:1]){ translate([650+jl1/2,0,160-30*i]){ color("Coral") cube(size = [jl1,jw,jh], center = true); } } for(i=[2:5]){ translate([650+jl2/2,0,160-30*i]){ color("Orange") cube(size = [jl2,jw,jh], center = true); } } // 連結ボルト for(i=[0:11]){ translate([650+50*i,0,-100]){ color("gray") auger(pitch=2, length=bl, outside_radius=br, inner_radius=br-1.5, taper_ratio =0.25); } }
|