100 lines
2.5 KiB
OpenSCAD
100 lines
2.5 KiB
OpenSCAD
|
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 d’un parallélépipède pour adoucir l’ouverture
|
|||
|
translate([0,0,hauteur-hcube/6])
|
|||
|
cube([decoupe, diam+3, hcube], center=true);
|
|||
|
|
|||
|
// Placement de l’alesage 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 l’alé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);
|