Outils d'utilisateurs

Outils du Site


animations:ateliers_openscad:exercices:defi_portebouteille

Défi OpenSCAD Défi Porte-bouteille & bouteilles

Inspiration

L'article qui explique comment faire manuellement un porte bouteille original de manière traditionnel (perceuses, scies), nous a bien plu. Cependant, on préfère :

  1. le faire à la manière FabLab en utilisant les outils (Découpeuse laser) - option A
  2. en modulant les dimensions des bouteilles pour convenir à tou-te-s (limonades, bières, vins, eaux gazeuses …) - option B
  3. en modulant le nombre de bouteilles voulu, (de 1 à plus infini) - option C
  4. En faisant des trous au niveau de la base, pour être sur que les bouteilles ne bougent pas. - option D
  5. en calculant automatique la longueur de corde nécessaire - option E
  6. en modulant selon l'épaisseur de la planche utilisé - option F

Pour cela rien de mieux, qu'OpenSCAD, pour nous faire un générateur paramétrique de plan (.svg) de porte bouteille.

Aides

1. Réfléchissez

Prenez vraiment le temps de réfléchir (Papier et crayon peuvent être utiles.)

2. Phrase explicative

Si vous ne savez pas par où commencer :

  • méthode : à la Hélène
  • Une différence entre l'union de trois parallélépipèdes (arrondies) à des hauteurs différentes (socle,socle troué et haut troué) et, les formes de bouteilles plus une marge et des petits trous et leur symétrie.

3. Les fonctions utiles

méthode : ln

1. Créer une bouteille

Méthode simple

  • le cylindre : cylinder(d1,d2,h);

Méthode un peu plus compliquée

  • le cylindre : cylinder(d1,d2,h);
  • : hull(){…}
  • le déplacement : translate([x,y,z]){…}

Méthode pour les gens précis

  • polygone : polygon();
  • rotate_extrude : rotate_extrude();

2. Créer un pack de bouteilles paramétriques

  • Boucle for : for(){…}
  • Module :

3. Créer les planches

Méthode pour planches carrées

  • le cube :cube();
  • le déplacement : translate([x,y,z]){…}

Méthode pour planches au bord arrondi

  • le cube :cube();
  • le “Minkoski” : minkoski([x,y,z]){…}
  • le cylindre : cylinder(d1,d2,h);

4. Créer les petits trous

Méthode répétitive

  • le cylindre : cylinder(d1,d2,h);
  • le déplacement : translate([x,y,z]){…}

Méthode courte

  • le cylindre : cylinder(d1,d2,h);
  • le déplacement : translate([x,y,z]){…}
  • le miroir : mirror ([x,y,z]){…}

5. Assembler les différentes parties

  • la différence : difference(){…}

6. Réalisation de la poignée

  • le cylindre : cylinder(d1,d2,h);
  • le déplacement : translate([x,y,z]){…}
  • la rotation : rotate([x,y,z]){…}

7.Export en .svg

8.Modélisation de la corde (bonus)

9.Animation du modèle 3D (bonus)

Si vous ne connaissez pas bien l'utilisation d'une de ses fonctions, il peut être utile d'aller voir les exercices du wiki ou la page Aide-Mémoire OpenSCAD.

4. Pièges à éviter

En général :

  • Le point-virgule
  • Bien ouvrir et fermer les parenthèses, crochets et accolades
  • Les erreurs de frappe

Conseils : Projets complexes Plus le projet est complexes, plus il est important de travailler avec méthodologie

  • Prendre les vraies mesures d'une bouteille, plus réaliste
  • N'hésitez pas à utiliser la transparence ( # ) pour bien comprendre ou sont situées vos pièces
  • Lorsque que vous ne comprenez plus, ne mettez pas des valeurs au pif, faites une pause plutôt.
  • Enregistrer plusieurs versions de votre fichier, afin de retrouver rapidement une sauvegarde qui marche.
  • Commencez toujours par comprendre la logique, avant de généraliser (boucle for)
  • Bien vérifier qu'en changeant chaque variable, le modèle reste valable. Cela permet de vérifier si il n'y a pas d'erreur dans le code.
  • Commentez votre code, pour vous aider, mais aussi pour faciliter la documentation

Solutions par étapes

Créer une bouteille - Méthode simple

Voir l'objet en 3D

hb=230 ; // hauteur de la bouteille
hg=84; // hauteur du goulot
db=70; //diamètre ou largeur basse de la bouteille
dh=40; // diamètre ou largeur haute de la bouteille
 
cylinder(d=db, h=hb-hg, $fn=100); // gros cylindre
cylinder(d=dh, h=hb, $fn=100); //petit cylindre

Créer une bouteille - un peu plus compliquée

Voir l'objet en 3D

hb=230 ; // hauteur de la bouteille
hg=84; // hauteur du goulot
db=70; //diamètre ou largeur basse de la bouteille
dh=40; // diamètre ou largeur haute de la bouteille
hi=123; // hauteur intermédiaire
 
cylinder(d=db, h=hi);// gros cylindre
hull(){
translate([0,0,hi]){cylinder(d=db, h=1);}
translate([0,0,hb-hg]){cylinder(d=dh, h=1);}
}
translate([0,0,0]){cylinder(d=dh, h=hb);} //petit cylindre

Créer une bouteille - Méthode pour les gens précis

Voir l'objet en 3D

hb=230; //hauteur de la bouteille
hg=84; // hauteur du goulot
db=70; //diamètre ou largeur basse de la bouteille
dh=40; // diamètre ou largeur haute de la bouteille
hi=123;
rotate_extrude($fn=80){polygon( points=[[0,0],[db/2,0],[db/2,hi],[dh/2,hb-hg],[dh/2,hb],[0,hb]]);}

Créer un module bouteille();

module bouteille(hb=230,hi=123,hg=84,db=70,dh=40){
//hb, hauteur de la bouteille
//hg, hauteur du goulot
//db, diamètre ou largeur basse de la bouteille
//dh, diamètre ou largeur haute de la bouteille
//hi, hauteur intermédiaire
 
cylinder(d=db, h=hi);// gros cylindre
hull(){
translate([0,0,hi]){cylinder(d=db, h=1);}
translate([0,0,hb-hg]){cylinder(d=dh, h=1);}
}
translate([0,0,0]){cylinder(d=dh, h=hb);}
 
}
 
// bouteille(); 

Créer un pack de bouteilles paramétriques

Télécharger le code

Module bouteille +

db=70; // Rayon des trous, rt va de 0 à + infini,
esp= db+25; // espacemenent entre  les trous
Nx= 2; // Nx va de 0 à + infini, entier uniquement Compte +1
Ny= 1; //Ny=Nx, pour faire un damier carré, ou Ny = valeur au choix
 
for (j = [-Ny/2:Ny/2]){
  for (i = [-Nx/2:Nx/2]){
    translate ([i*esp,j*esp,0]) {bouteille();}
  }
}

Solutions finales

méthode : N'hésitez pas à faire varier les paramètres

Télécharger le code -

 

Votre méthode : N'hésitez pas à mettre vos codes ci-dessous :

animations/ateliers_openscad/exercices/defi_portebouteille.txt · Dernière modification: 2020/04/01 16:30 par plogingenu