Defne Su Kurtoglu
Un vase:
Un vase sert à contenir des fleurs et de l’eau, tout en apportant une touche décorative. Les dimensions proposées (rayon extérieur de 50 mm, intérieur d’environ 40 mm, hauteur de 250 mm) offrent une grande capacité et une bonne stabilité. Avec une épaisseur de paroi d’environ 10 mm, ce design est robuste et bien adapté à une impression 3D solide et durable.
Le code:
$fn = 16;
curveModifier = 40;
curveModifier2 = 10;
module uncutVase(width,height,curveModifier,curveModifier2){
for(i=[0:1:height]){
translate([50,50,i]) cylinder(1,sin(i+curveModifier) * curveModifier2+width/2- curveModifier2,sin(i+1+curveModifier)* curveModifier2+width/2-curveModifier2);
}
}
module vase(width,height,wallWidth){
difference(){
uncutVase(width,height,curveModifier,curveModifier2);
translate([width/2,width/2,wallWidth]) cylinder(height,width/2-wallWidth*2.5,width/2-wallWidth*2.5);
}
}
vase(100,250,10);
La demarche:
1) Construire l’extérieur du vase en utilisant une boucle et des fonctions mathématiques pour lui donner une forme unique.
2) Creuser un cylindre intérieur pour le rendre fonctionnel et réaliste.
La deuxième objet :
Le code:
// Paramètres
outer_radius = 20; // Rayon de la sphère extérieure
inner_radius = 10; // Rayon de la petite sphère intérieure
gap = 2; // Espace entre la sphère intérieure et extérieure
hole_radius = 4; // Rayon des trous dans la sphère extérieure
// Module pour la sphère extérieure (avec trous symétriques)
module outer_sphere_with_holes(outer_radius, gap, hole_radius) {
difference() {
// Sphère extérieure
sphere(r = outer_radius);
// Espace intérieur
sphere(r = outer_radius - gap);
// Trous : Les trous sont ajoutés des deux côtés symétriquement
for (angle_x = [-75, -60, -45, -30, -15, 0, 15, 30, 45, 60, 75])
for (angle_y = [0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330]) {
// Trous pour la face avant
rotate([angle_x, angle_y, 0])
translate([outer_radius - 1, 0, 0])
sphere(r = hole_radius);
// Trous pour la face arrière (symétriques)
rotate([-angle_x, angle_y + 180, 0])
translate([outer_radius - 1, 0, 0])
sphere(r = hole_radius);
}
}
}
// Module pour la petite sphère intérieure
module inner_sphere(radius) {
translate([0, 0, 0])
sphere(r = radius);
}
// Combinaison des modules
union() {
// Sphère extérieure (avec trous symétriques)
outer_sphere_with_holes(outer_radius, gap, hole_radius);
// Petite sphère intérieure
inner_sphere(inner_radius);
}