You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
766 B
31 lines
766 B
module aligned_cube(size, aligned=[1,1,0])
|
|
{
|
|
translate(-0.5*[size[0]*aligned[0], size[1]*aligned[1], size[2]*aligned[2]])
|
|
cube(size);
|
|
}
|
|
|
|
module rounded_cube(size, r, aligned=[1,1,0])
|
|
{
|
|
translate(-0.5*[size[0]*aligned[0] -2*r, size[1]*aligned[1] -2*r, size[2]*aligned[2] -2*r])
|
|
minkowski() {
|
|
cube([size[0] - 2*r, size[1] - 2*r, size[2]- 2*r]);
|
|
sphere(r);
|
|
}
|
|
}
|
|
|
|
module cylinder_flange_sphere($fn=32,r1=10, r2=15, h=5)
|
|
{
|
|
diff=abs(r1-r2);
|
|
h_off= (r1 < r2 ) ? 0 : h/2;
|
|
|
|
|
|
difference()
|
|
{
|
|
cylinder($fn=$fn, r=max(r2,r1),h=h);
|
|
scale([1,1,h/diff])
|
|
rotate_extrude()
|
|
translate([diff+min(r2,r1),h_off])
|
|
rotate([0,0,0])
|
|
circle($fn=$fn,r=diff);
|
|
}
|
|
}
|