OpenSCAD
$fn = 50; module meniscus(h=10, r=1) { difference() { translate([r/2+0.1, r/2+0.1, 0]) { cube([r+0.2, r+0.1, h+0.2], center=true); } cylinder(h=h+0.2, r=r, center=true); } } module cube_round_corner(w=10, h=10, z=10, r=1) { difference() { cube([w, h, z], center=true); translate([(w/2)-r, (h/2)-r]) { rotate(0) { meniscus(z, r); } } translate([(-w/2)+r, (h/2)-r]) { rotate(90) { meniscus(z, r); } } translate([(-w/2)+r, (-h/2)+r]) { rotate(180) { meniscus(z, r); } } translate([(w/2)-r, (-h/2)+r]) { rotate(270) { meniscus(z, r); } } } } module screw() { difference() { cube([7, 7, 2.5], center=true); translate([0, 0, -5]) { cylinder(10, 1.2, 1.2); } } } module tetris() { difference() { union() { cube_round_corner(53, 85, 2.5, 2); translate([-25.5, -41, 0]) { cube([51, 82, 2]); } } cube_round_corner(48, 80, 10, 3); translate([20, 5, -5]) { cube([10, 19, 10]); } } translate([-21, -37, 0]) { screw(); } translate([-21, 37, 0]) { screw(); } translate([21, -37, 0]) { screw(); } translate([21, 37, 0]) { screw(); } } tetris();
列印
精度不高的3D印表機
完美結合
使用螺絲M1.6x6
剛剛好的螺絲
下邊
側邊
上邊
側邊
完成