|
@ -64,91 +64,148 @@ module rounded_cube(size, r, rounding=[0,0,0]) |
|
|
aligned_rounded_cube(size, r, rounding=[0,0,0], aligned=[0,0,0]); |
|
|
aligned_rounded_cube(size, r, rounding=[0,0,0], aligned=[0,0,0]); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
module axis(l=30, w=0.3) { |
|
|
module axis(l=30, w=0.3) { |
|
|
color("red") |
|
|
color("red") |
|
|
cube([l,w,w]); |
|
|
cube([l,w,w]); |
|
|
color("blue") |
|
|
|
|
|
|
|
|
color("lightblue") |
|
|
cube([w,w,l]); |
|
|
cube([w,w,l]); |
|
|
color("green") |
|
|
|
|
|
|
|
|
color("lightgreen") |
|
|
cube([w,l,w]); |
|
|
cube([w,l,w]); |
|
|
color("black") |
|
|
color("black") |
|
|
cube([w,w,w]); |
|
|
cube([w,w,w]); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
module cylinder_square(size,d,aligned) { |
|
|
|
|
|
r=d/2; |
|
|
|
|
|
|
|
|
|
|
|
// front |
|
|
|
|
|
translate([-1*aligned[0]*(size[0]/2),-1*aligned[1]*(size[1]/2),-1*aligned[2]*d/4]) |
|
|
|
|
|
translate([size[0]/2,size[1]/2,d/4]) |
|
|
|
|
|
for (x=[1,-1]){ |
|
|
|
|
|
hull() { |
|
|
|
|
|
translate([size[0]/2,x*size[1]/2,0]) |
|
|
|
|
|
sphere(d=d); |
|
|
|
|
|
translate([-1*(size[0]/2),x*size[1]/2,0]) |
|
|
|
|
|
sphere(d=d); |
|
|
|
|
|
} |
|
|
|
|
|
hull() { |
|
|
|
|
|
translate([x*size[0]/2,size[1]/2,0]) |
|
|
|
|
|
sphere(d=d); |
|
|
|
|
|
translate([x*size[0]/2,-1*size[1]/2,0]) |
|
|
|
|
|
sphere(d=d); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
module cubic_flange($fn, size, e, aligned) |
|
|
|
|
|
{ |
|
|
|
|
|
h_off= (e < 0 ) ? 0 : size[2]; |
|
|
|
|
|
|
|
|
|
|
|
difference() |
|
|
|
|
|
{ |
|
|
|
|
|
aligned_cube(size=[size[0],size[1],size[2]], aligned=aligned); |
|
|
|
|
|
|
|
|
|
|
|
echo(e); |
|
|
|
|
|
echo(size[2]); |
|
|
|
|
|
translate([0,0,size[0]/2]) |
|
|
|
|
|
scale([1,1,size[0]/e]) |
|
|
|
|
|
cylinder_square($fn=$fn,size=[size[0],size[1]], d=e*2, aligned=aligned); |
|
|
|
|
|
//minkowski() |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
// test show |
|
|
// test show |
|
|
|
|
|
$fn=32; |
|
|
|
|
|
e=3; |
|
|
|
|
|
|
|
|
translate([-45,45,0]) { |
|
|
translate([-45,45,0]) { |
|
|
|
|
|
|
|
|
|
|
|
translate([50,-90,0]) { |
|
|
|
|
|
axis(); |
|
|
|
|
|
translate([0,0,10]) |
|
|
|
|
|
%aligned_cube([10-2*e,10-2*e,5]); |
|
|
|
|
|
translate([0,0,-5]) |
|
|
|
|
|
%aligned_cube([10,10,5]); |
|
|
|
|
|
|
|
|
|
|
|
cubic_flange($fn=32,size=[10,10,10], e=e, aligned=[1,1,0]); |
|
|
|
|
|
translate([0,-10,0]) |
|
|
|
|
|
text(halign="center",valign="center", size=2, "cubic_flange()"); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
translate([0,-90,0]) { |
|
|
translate([0,-90,0]) { |
|
|
axis(); |
|
|
axis(); |
|
|
|
|
|
|
|
|
%cube(size=[10,10,10]); |
|
|
|
|
|
|
|
|
cube(size=[10,10,10]); |
|
|
translate([0,-10,0]) |
|
|
translate([0,-10,0]) |
|
|
text(halign="center",valign="center", $fn=$fn, size=3,font="Linux Libertine O", "cube()"); |
|
|
|
|
|
|
|
|
text(halign="center",valign="center", size=2, "cube()"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
translate([0,10,0]) { |
|
|
translate([0,10,0]) { |
|
|
axis(); |
|
|
axis(); |
|
|
|
|
|
|
|
|
%aligned_cube(size=[10,10,10], aligned=[1,1,1]); |
|
|
|
|
|
|
|
|
aligned_cube(size=[10,10,10], aligned=[1,1,1]); |
|
|
translate([0,-10,0]) |
|
|
translate([0,-10,0]) |
|
|
text(halign="center",valign="center", $fn=$fn, size=3,font="Linux Libertine O", "aligned_cube([1,1,1])"); |
|
|
|
|
|
|
|
|
text(halign="center",valign="center", size=2, "aligned_cube([1,1,1])"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
translate([0,-30,0]) { |
|
|
translate([0,-30,0]) { |
|
|
axis(); |
|
|
axis(); |
|
|
|
|
|
|
|
|
%aligned_rounded_cube(size=[10,10,10],r=1, aligned=[1,1,0]); |
|
|
|
|
|
|
|
|
aligned_rounded_cube(size=[10,10,10],r=1, aligned=[1,1,0]); |
|
|
translate([0,-10,0]) |
|
|
translate([0,-10,0]) |
|
|
text(halign="center",valign="center", $fn=$fn, size=3,font="Linux Libertine O", "aligned_rounded_cube([1,1,0])"); |
|
|
|
|
|
|
|
|
text(halign="center",valign="center", size=2, "aligned_rounded_cube([1,1,0])"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
translate([50,10,0]) { |
|
|
translate([50,10,0]) { |
|
|
$fn=32; |
|
|
$fn=32; |
|
|
axis(); |
|
|
axis(); |
|
|
|
|
|
|
|
|
%aligned_rounded_cube(size=[10,10,10],r=1, aligned=[1,1,0]); |
|
|
|
|
|
|
|
|
aligned_rounded_cube(size=[10,10,10],r=1, aligned=[1,1,0]); |
|
|
translate([0,-10,0]) |
|
|
translate([0,-10,0]) |
|
|
text(halign="center",valign="center", $fn=$fn, size=3,font="Linux Libertine O", "aligned_rounded_cube(r=1)"); |
|
|
|
|
|
|
|
|
text(halign="center",valign="center", size=2, "aligned_rounded_cube(r=1)"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
translate([50,-30,0]) { |
|
|
translate([50,-30,0]) { |
|
|
$fn=32; |
|
|
$fn=32; |
|
|
axis(); |
|
|
axis(); |
|
|
|
|
|
|
|
|
%aligned_rounded_cube(size=[10,10,10],r=2, aligned=[1,1,0]); |
|
|
|
|
|
|
|
|
aligned_rounded_cube(size=[10,10,10],r=2, aligned=[1,1,0]); |
|
|
translate([0,-10,0]) |
|
|
translate([0,-10,0]) |
|
|
text(halign="center",valign="center", $fn=$fn, size=3,font="Linux Libertine O", "aligned_rounded_cube(r=2)"); |
|
|
|
|
|
|
|
|
text(halign="center",valign="center", size=2, "aligned_rounded_cube(r=2)"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
translate([100,10,0]) { |
|
|
translate([100,10,0]) { |
|
|
$fn=32; |
|
|
$fn=32; |
|
|
axis(); |
|
|
axis(); |
|
|
|
|
|
|
|
|
%aligned_rounded_cube(size=[10,10,10],r=2, rounding=[1,1,1]); |
|
|
|
|
|
|
|
|
aligned_rounded_cube(size=[10,10,10],r=2, rounding=[1,1,1]); |
|
|
translate([0,-10,0]) |
|
|
translate([0,-10,0]) |
|
|
text(halign="center",valign="center", $fn=$fn, size=3,font="Linux Libertine O", "aligned_rounded_cube([1,1,1])"); |
|
|
|
|
|
|
|
|
text(halign="center",valign="center", size=2, "aligned_rounded_cube([1,1,1])"); |
|
|
} |
|
|
} |
|
|
translate([100,-30,0]) { |
|
|
translate([100,-30,0]) { |
|
|
$fn=32; |
|
|
$fn=32; |
|
|
axis(); |
|
|
axis(); |
|
|
|
|
|
|
|
|
%aligned_rounded_cube(size=[10,10,10],r=2, rounding=[1,1,0]); |
|
|
|
|
|
|
|
|
aligned_rounded_cube(size=[10,10,10],r=2, rounding=[1,1,0]); |
|
|
translate([0,-10,0]) |
|
|
translate([0,-10,0]) |
|
|
text(halign="center",valign="center", $fn=$fn, size=3,font="Linux Libertine O", "aligned_rounded_cube([1,1,0])"); |
|
|
|
|
|
|
|
|
text(halign="center",valign="center", size=2, "aligned_rounded_cube([1,1,0])"); |
|
|
} |
|
|
} |
|
|
translate([100,-60,0]) { |
|
|
translate([100,-60,0]) { |
|
|
$fn=32; |
|
|
$fn=32; |
|
|
axis(); |
|
|
axis(); |
|
|
|
|
|
|
|
|
%aligned_rounded_cube(size=[10,10,10],r=2, rounding=[1,0,1]); |
|
|
|
|
|
|
|
|
aligned_rounded_cube(size=[10,10,10],r=2, rounding=[1,0,1]); |
|
|
translate([0,-10,0]) |
|
|
translate([0,-10,0]) |
|
|
text(halign="center",valign="center", $fn=$fn, size=3,font="Linux Libertine O", "aligned_rounded_cube([1,0,1])"); |
|
|
|
|
|
|
|
|
text(halign="center",valign="center", size=2, "aligned_rounded_cube([1,0,1])"); |
|
|
} |
|
|
} |
|
|
translate([100,-90,0]) { |
|
|
translate([100,-90,0]) { |
|
|
$fn=32; |
|
|
$fn=32; |
|
|
axis(); |
|
|
axis(); |
|
|
|
|
|
|
|
|
%aligned_rounded_cube(size=[10,10,10],r=2, rounding=[0,1,1]); |
|
|
|
|
|
|
|
|
aligned_rounded_cube(size=[10,10,10],r=2, rounding=[0,1,1]); |
|
|
translate([0,-10,0]) |
|
|
translate([0,-10,0]) |
|
|
text(halign="center",valign="center", $fn=$fn, size=3,font="Linux Libertine O", "aligned_rounded_cube([0,1,1])"); |
|
|
|
|
|
|
|
|
text(halign="center",valign="center", size=2, "aligned_rounded_cube([0,1,1])"); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |