1
0
Fork 0
scad_models/douche2.scad

100 lines
2.5 KiB
OpenSCAD
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

module base(hauteur, diam, diam2, diam3, decoupe, hcube,halesage, dalesage, dvis,
largeurcroix){
union (){
translate([0,0,hauteur]){
rotate([180,0,0]){
difference(){
// Mise-en-place du cylindre global
translate([0,0,hauteur/2])
union(){
translate([0,0,-hauteur/2 + 1.5])
cylinder(h=3, r=diam/2, center=true);
translate([0,0,1.5])
cylinder(h=hauteur-3, r1=diam/2, r2=diam/2+2,center=true);
}
// Cylindre légèrement conique pour le passage
// du pommeau de douche
// Placement vertical
translate([0,0,22.175])
rotate([90,0,0])
cylinder(h=diam+4, r1=diam2/2, r2=diam3/2, center=true);
// Placement dun parallélépipède pour adoucir louverture
translate([0,0,hauteur-hcube/6])
cube([decoupe, diam+3, hcube], center=true);
// Placement de lalesage pour la tête de vis
translate([0,0,22.175 - (diam2 + diam3) / 4 - halesage + 1 ])
cylinder(h=halesage+1,r=dalesage /2);
// alesage pour la vis
translate([0,0,-1])
cylinder(h=15, r=dvis/2);
// alesages noyé pour renfort
translate([(diam2+diam3)/4*1.2,0,8.1])
cylinder(h=hauteur*0.72, r=dvis/2);
translate([-(diam2+diam3)/4*1.2,0,8.1])
cylinder(h=hauteur*0.72, r=dvis/2);
translate([0,0,-0.05])
difference () {
union () {
// cylindre à enlever
cylinder(h=3, r=diam/2+1);
// et cylindre un peu plus haut pour creuser
// par en-sessous
cylinder(h=8, r=31/2);
}
// On enleve de la matière pour en remettre…
translate([0,0,-0.5])
cylinder (h=8.5, r=20.2/2);
}
// On va maintenant creuser un peu hautour de lalésage
// Mais un truc pas si simple…
difference () {
translate([0,0,-0.05])
cylinder(h=8.05, r=16.2 /2);
translate([0,0,2.2])
cylinder(h=5.8, r=11.2/2);
translate([-10,-largeurcroix/2,2.6])
cube([20, largeurcroix, 5.8], center=false);
translate([-largeurcroix/2,-10,2.6])
cube([largeurcroix, 20, 5.8], center=false);
} // difference
}
}
}
// Ajout de parois verticales
// pour soutenir pendant la construction
for (decalage=[-1,-0.5,0.5,1]){
translate([0,0.34*diam*decalage,diam2/2])
cube([diam * 0.66, 0.42, diam2], center=true);
}
}
}
$fn=100;
base (hauteur=31, diam=34,
diam2 = 20.8, diam3 = 22.5,
decoupe = 16.9, hcube = 10,
halesage=4, dalesage=8,
dvis = 4, largeurcroix = 0.7
);
// translate([diam,0,0])
//cylinder(h,diam);