https://www.thingiverse.com/thing:2344861
Kezako?
Alors oui, la premiere question, c'est bien de savoir ce que c'est qu'un "Bench dog" et à quoi cela peut bien servir...
Pour commencer, cet accessoire est destiné à etre utilisé sur un établi multifonction de la marque Festool: le MFT/3 En plus de divers accessoires, rails de guidage, et supports de serre-joints, ces tables se caracterisent par leurs multiples trous disposés sur la surface
Ceux-ci permettent de passer divers serre-joints, et ce sont eux que nous allons mettre à profit pour nos "bench dogs"
Un "Bench dog", c'est donc un "plot" qui viendra se loger dans un des trous de la table afin de créer un support ou une cale pour les pièces qu'on souhaite disposer sur la table.
Ceci est très utile car les trous de la table, découpés à la CNC sont précisément alignés et on peut, en plaçant 2 ou 3 plots, aligner parfaitement une planche sur ces trous, et donc obtenir très facilement des angles droits ou à 45°, sans aucune mesure
C'est très utile également pour tenir en place un caisson ou un tiroir en cours d'assemblage
Cahier des charges
- Nous devons pouvoir créer différents plots de différentes hauteur et largeur afin de répondre à un maximum de cas d'usage
- Il doit etre possible d'ajuster finement la taille afin que le plot rentre au plus juste dans son logement, quelle que soit l'imprimante utilisée
- Les plots doivent etre résistants et rigides, normalement ils sont usinés au tour à métaux pour une durabilité et une résistance maximales, c'est un des problème qu'il va falloir résoudre sur cette version "imprimée 3d"
Ce logiciel permet de "décrire" l'bjet dans un langage dédié, en utilisant diverses fonctions et variables
Il présente l'avantage de proposer un éditeur intégré sur Thingiverse, permettant aux utilisateurs de créer leur version personalisée directement en ligne
Pour la rigidité, un infill généreux sera bien sûr requis, mais cela ne suffit pas.
Afin de garantir une rigidité suffisante, deux écrous sont "noyés" dans la piece, au travers desquels ont viendra faire passer un boulon.
Cette "âme" permet de renforcer très efficacement la pièce, et cela nous permettra également en bonus de fixer divers accessoires sur nos bench dogs
Modélisation avec OpenSCAD
La modélisation en SCAD est un peu particulière: à vrai dire on ne modélise rien!
Rangez votre souris, sortez le clavier, car il s'agit plutot de programmation que de modélisation...
A gauche: le code, et à droite: l'objet généré
![Image](https://img.lght.pics/c6x.th.png)
On commence par déclarer les variables qui nous serviront pour ce modèle, en vrac: le diametre du plot (partie superieure et partie inferieure), sa hauteur, la taille de l'écrou noyé dans le plot, etc etc...
Code : Tout sélectionner
/* [Peg customization] */
// Peg's top diameter
peg_top_diameter=30;
// Peg's top height
peg_top_height=15;
// Peg's diameter (Default fits MFT3, adjust if need)
peg_diameter=19.10;
// Peg's depth (Default fits MFT3 height, adjust if needed)
peg_depth=25;
/* [Nuts customization] */
// Nut's outer diameter (default is m6)
nut_diameter=12.30;
// Nut's inner diameter (default is m6)
nut_inner_diameter=6.45;
// Nut's height (default is m6)
nut_height=5.65;
// Depth at which the nut is "sinked" under the peg's top / above the peg's bottom
nut_depth=2;
/* [Advanced] */
// Resolution
CYLINDER_RESOLUTION=128;
![Image](https://img1.lght.pics/c60.md.png)
Pour créer un Bench dog il faut:
- Empiler deux cylindres
- Faire deux trous en forme d'ecrou en haut et en bas
- Percer un trou sur toute la hauteur pour laisser passer la vis
On crée donc 3 "modules" correspondant a ces éléments, chacun dessinant un élément en particulier
Code : Tout sélectionner
module peg(diameter, depth, top_diameter, top_height) {
cylinder(r = top_diameter / 2, h = top_height, $fn=CYLINDER_RESOLUTION);
translate([ 0, 0, top_height ])
cylinder(r = diameter / 2, h = depth, $fn=CYLINDER_RESOLUTION);
}
module hole() {
translate([0,0,-1])
cylinder(r = nut_inner_diameter / 2, h=peg_top_height + peg_depth + 2, $fn=16);
}
module nut() {
cylinder(r = nut_diameter / 2, h = nut_height, $fn=6);
}
Code : Tout sélectionner
peg(peg_diameter, peg_depth, peg_top_diameter, peg_top_height);
translate([peg_diameter + 5,0,nut_depth]) nut();
translate([peg_diameter + 5,0,peg_top_height + peg_depth - nut_height - nut_depth]) nut();
translate([peg_diameter + nut_diameter + 5,0,0]) hole();
![Image](https://img2.lght.pics/c6G.md.png)
Reste maintenant simplement à les aligner et a faire une difference "plot - ecrous - cylindre traversant":
Code : Tout sélectionner
difference() {
peg_chamfered(peg_diameter, peg_depth, peg_top_diameter, peg_top_height, .25);
translate([0,0,nut_depth]) nut();
translate([0,0,peg_top_height + peg_depth - nut_height - nut_depth]) nut();
hole();
}
![Image](https://img1.lght.pics/c6g.md.png)
Impression
Un fois le STL généré, il faut encore faire qq manipulations dans Cura
On repère les couches juste avant que chaque écrous soit recouvert:
![Image](https://thingiverse-production-new.s3.amazonaws.com/renders/1f/39/fa/75/f7/b231e077c2af27cc398f5bf20adc3b46_preview_featured.jpg)
On insère alors une pause dans le gcode à cette couche, afin de pouvoir glisser un écrou dans la piece avant de reprendre l'impression:
Après la reprise, l'écrous sera recouvert et ainsi noyé dans la pièce
Resultat
Qq photos du résultat in-situ
Voilà, un petit projet test pour me familiariser avec OpnSCAD à l'origine, mais qui au final m'a permis de créer un accessoire dont je me sers très souvent dans mes travaux de menuiserie