From 31d32f147ff544ee311f89467bf30a1f09fb4195 Mon Sep 17 00:00:00 2001 From: Matthieu Dubuget Date: Sat, 8 Sep 2018 08:54:46 +0200 Subject: [PATCH] Import initial --- cale.scad | 66 ++++++++++++++++++++++++++++++++++ douche.scad | 84 +++++++++++++++++++++++++++++++++++++++++++ douche2.scad | 100 +++++++++++++++++++++++++++++++++++++++++++++++++++ velo.scad | 35 ++++++++++++++++++ 4 files changed, 285 insertions(+) create mode 100644 cale.scad create mode 100644 douche.scad create mode 100644 douche2.scad create mode 100644 velo.scad diff --git a/cale.scad b/cale.scad new file mode 100644 index 0000000..9bc6768 --- /dev/null +++ b/cale.scad @@ -0,0 +1,66 @@ +$fn = 100; +dext = 335; +dint = 215; +lcube = (((dext - dint) / 2) + 20); +epaisseur = 5; + +module etalon (h){ +color("blue") +rotate([0,-90,0]) +translate([-dint/2+20,0,h/2]) +difference(){ + cylinder(h=h, r = dext/2, center = true); + cylinder(h=h+1, r = dint/2, center=true); +} +} + +translate([-2.5,0,0]) etalon (20); +translate([202.5,0,0]) etalon(200); + +union (){ +difference(){ +rotate([0, -90, 0]) translate([(-(dext / 2) + lcube), 0, 0]) intersection() { + union() { + cylinder(h = 30, r = (dint / 2), center = true); + cylinder(h = epaisseur, r = ((dext - 20) / 2), center = true); + translate([0, 0, (((30 / 2) + (20 / 2)) - 0.1)]) + cylinder(h = 20, r1 = (dint / 2), r2 = ((dint - 5) / 2), center = true); + translate([0, 0, ((-(30 / 2) - (20 / 2)) + 0.1)]) + cylinder(h = 20, r1 = ((dint - 5) / 2), r2 = (dint / 2), center = true); + } + translate([((dext / 2) - (lcube / 2)), 0, 0]) + cube([lcube, 50, 80], center = true); +} + +union(){ +translate([4,0,0]) +cylinder(h=7, r=15/2, center = true); + +translate([12,0,0]) +cylinder(h=7, r=15/2, center = true); + + + +translate ([-4,0,0]) +cylinder(h=5, r=23/2, center=true); +} + +translate ([-12,0,0]) +cylinder(h=5, r=23/2, center=true); + +} + +translate([0,0,5]) +union(){ +for (i=[-1:1]){ +translate([0,i * 6,0]) +cube ([50,0.5,10],center=true); +} + +for (i = [-3:2]){ + translate([i * 6,0,0]) +cube([0.5,40,10],center=true); +} +} +} + diff --git a/douche.scad b/douche.scad new file mode 100644 index 0000000..e91deee --- /dev/null +++ b/douche.scad @@ -0,0 +1,84 @@ +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]) + +cylinder(h=hauteur, r=diam/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+1, 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); + +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,1]){ +translate([0,0.34*diam*decalage,diam2/2]) +cube([diam * 0.66, 1, 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 +); diff --git a/douche2.scad b/douche2.scad new file mode 100644 index 0000000..5601693 --- /dev/null +++ b/douche2.scad @@ -0,0 +1,100 @@ +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); \ No newline at end of file diff --git a/velo.scad b/velo.scad new file mode 100644 index 0000000..a5cabee --- /dev/null +++ b/velo.scad @@ -0,0 +1,35 @@ +module axe_guidon (){ +translate([0,0,-50]) +cylinder(h=100, r=38/2); +} + +module ouverture (){ +translate ([0,0,-25]) +linear_extrude(height = 50) +polygon(points=[[17,0],[-17,0], [-25,25], [25,25]]); +} + +module corps (){ + translate([0,10,0]) + rotate([90,0,0]) + cylinder(h=40,r=25); +} + +module encoche (h){ + translate([-30,-62,h]) + cube (size=[60,40,2.7]); +} + +module velo() { + difference (){ + corps (); + axe_guidon (); + ouverture(); + encoche(14); + } +} + +$fn=500; +translate ([0,0,30]) +rotate ([90,0,0]) +velo (); \ No newline at end of file