Last active
August 29, 2015 14:23
-
-
Save jonathanperret/96c976835c35ce4a701a to your computer and use it in GitHub Desktop.
Krups axle
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var hTotal = 91.5, | |
// longueur des extrémités | |
hBout = 12, | |
// profondeur de l'encoche biseautée dans la poignée | |
hEncoche = 3, | |
// gorge pour circlip | |
hGorge = 1, | |
// vis | |
hVis = 18, | |
hTeteVis = 2, | |
// dimensions des rainures longitudinales | |
pRainure = 1.5, // profondeur | |
lRainure = 2, // largeur | |
// largeur (mini) de l'encoche biseautée dans la poignée | |
lEncoche = 7.2, | |
dVis = 4.3, | |
dTeteVis = dVis + 0.0, | |
// diamètre de l'axe au point le plus fin (circlip) | |
dCirclip = 8, | |
// diamètre des extrémités (hors partie insérée dans la poignée) | |
dBout = 10, | |
// diamètre encoche biseautée (point plus fin) de la poignée | |
dEncoche = 11, | |
// diamètre du corps (au centre de la pièce) | |
dCorps = 12, | |
dPlatCorps = 11.5, | |
// diamètre et épaisseur de la collerette d'arrêt | |
dCollerette = dCorps + 2, | |
hCollerette = 1.4, | |
// angle du biseau de l'encoche dans la poignée | |
angleBiseau = -20, | |
// angle de rotation des méplats par rapport aux rainures | |
angleRotation = 8, | |
// profondeur du marquage | |
pMarquage = 0.5, | |
hCorps = hTotal - 2*hBout, | |
BIG = 200, | |
// résolution | |
fn = 64; | |
function main() { | |
return difference( | |
union( | |
corps(), | |
union( | |
boutBas(), | |
boutHaut() | |
).rotateZ(angleRotation) | |
), | |
rainures(), | |
vis(), | |
marquage() | |
); | |
} | |
function unevis() { | |
return union( | |
cylinder({h:hVis,r:dVis/2}), | |
cylinder({h:hTeteVis,r1:dTeteVis/2,r2:dVis/2}) | |
); | |
} | |
function vis() { | |
return union( | |
unevis(), | |
unevis() | |
.mirroredZ() | |
.translate([0,0,hTotal]) | |
); | |
} | |
function rainures() { | |
return rainure() | |
.union(rainure().rotateZ(180)) | |
.translate([0,0,hBout]); | |
} | |
function corps() { | |
return cylinder({h:hCorps, r:dCorps/2, center:[true,true,false], fn:fn}) | |
.translate([0,0,hBout]); | |
} | |
// bout avec collerette d'arrêt | |
function boutBas() { | |
return union( | |
cylinder({h:hCollerette, r1:dBout/2, r2:dCollerette/2, center:[true,true,false], fn:fn}) | |
.translate([0,0,hBout-hCollerette]), | |
bout() | |
); | |
} | |
// bout avec gorge pour circlip | |
function boutHaut() { | |
return bout() | |
.subtract( | |
cube({size:[BIG,BIG,hGorge], center:[true,true,false]}) | |
.translate([0,0,hBout-hGorge]) | |
) | |
.union( | |
cylinder({h:hBout/2, r:dCirclip/2, center:[true,true,false], fn:fn}) | |
.translate([0,0,hBout/2]) | |
) | |
.mirroredZ() | |
.translate([0,0,hTotal]); | |
} | |
function bout() { | |
return union( | |
cylinder({h:hBout, r:dBout/2, center:[true,true,false], fn:fn}), | |
cylinder({h:hEncoche, r1: dEncoche/2, r2:dCorps/2, center:[true,true,false], fn:fn}) | |
.subtract(cube({size:BIG,center:[false,true,true]})) | |
) | |
.subtract(biseau()) | |
.subtract(biseau().mirroredY()); | |
} | |
function biseau() { | |
return cube({size:BIG,center:[true,false,true]}) | |
.rotateX(angleBiseau) | |
.translate([0,lEncoche/2,0]); | |
} | |
function rainure() { | |
return union( | |
cube({size:[lRainure,BIG,BIG], | |
center:[true,false,false]}) | |
.translate([0,dCorps/2 - pRainure,0]), | |
cube({size:[BIG,BIG,BIG], center:[true,false,false]}) | |
.translate([0,dPlatCorps/2,0]) | |
); | |
} | |
function logo_ut7() { | |
var slash = polygon([ | |
[-86.273000,-48.490563],[-72.431750,-48.490563], | |
[-101.394250,39.315687],[-115.235500,39.315687]]); | |
var u = polygon([[-22.202625,-33.192688], | |
[-22.202625,16.296062],[-22.321004,17.502117], | |
[-23.149656,20.155437],[-24.052295,21.572552], | |
[-25.398855,22.808758],[-27.278121,23.683147], | |
[-29.778875,24.014812],[-40.282625,24.014812], | |
[-41.466609,23.894207],[-44.071375,23.049969], | |
[-45.462557,22.130352],[-46.676141,20.758465], | |
[-47.534529,18.843853],[-47.860125,16.296062], | |
[-47.860125,-33.192688],[-63.155125,-33.192688], | |
[-63.155125,16.296062],[-62.898256,20.348167], | |
[-62.172322,23.894461],[-61.044333,26.968665], | |
[-59.581297,29.604500],[-57.850224,31.835687], | |
[-55.918123,33.695945],[-53.852004,35.218997], | |
[-51.718875,36.438562],[-47.519627,38.102117], | |
[-43.856453,38.956375],[-40.282625,39.316062], | |
[-29.778875,39.316062],[-25.958719,38.914187], | |
[-22.082293,37.959734],[-17.693875,36.101063], | |
[-14.481375,39.316062],[-6.902625,39.316062], | |
[-6.902625,-33.192688]]); | |
var t = polygon([ | |
[30.811375,-17.897312],[30.811375,16.295187], | |
[30.932039,17.501242],[31.776688,20.154562], | |
[32.696751,21.571677],[34.069305,22.807883], | |
[35.984847,23.682272],[38.533875,24.013937], | |
[55.293875,24.013937],[55.293875,39.316438], | |
[38.533875,39.316438],[34.937000,38.956730], | |
[31.250203,38.102426],[27.023875,36.438781], | |
[24.876990,35.219150],[22.797547,33.696015], | |
[20.852986,31.835655],[19.110750,29.604348], | |
[17.638279,26.968370],[16.503016,23.893999], | |
[15.772400,20.347512],[15.513875,16.295187], | |
[15.513875,-17.897312],[6.347625,-17.897312], | |
[6.347625,-33.411062],[15.498875,-33.411062], | |
[15.498875,-48.491062],[30.811375,-48.491062], | |
[30.811375,-33.192312],[47.698875,-33.192312], | |
[47.698875,-17.897312]]); | |
var sept = polygon([ | |
[61.913000,-33.192688],[61.913000,-17.897688], | |
[99.936750,-17.897688],[77.894250,48.491062], | |
[93.123000,48.491062],[115.235500,-19.353938], | |
[115.235500,-33.192688]]); | |
return union(slash,u,t,sept).mirroredX(); | |
} | |
function marquage() { | |
return linear_extrude({height:BIG}, | |
logo_ut7().scale(0.1)) | |
.rotateZ(180) | |
.rotateY(90) | |
.subtract(cylinder({h:BIG,r:dCorps/2,center:true,fn:fn}) | |
.translate([-pMarquage,0,0])) | |
.translate([0,0,hTotal/2]); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment