Suite à la reconstruction de ma douche pour laquelle j'ai installé un rideau de douche, j'ai eu besoin de crochets sur mesure pour le rideau de douche.
Origine :
Je suis parti d'un modèle déjà conçu par un maker sur Thingiverse, mais dans mon cas j'avais besoin de différentes longueurs.
Modélisation :
J'ai donc repris le modèle, je l'ai coupé en 2 et j'ai ajouté une tige d'extension paramétrable pour mon modèle sous FreeCAD. Il est donc très simple d'exporter le modèle en fichier STL en indiquant la longueur totale du crochet.
Ceci dit, j'ai du bricoler un peu car je suis parti du maillage du maker d'origine, et avec quelques opérations booléennes j'ai coupé son modèle en 2 morceaux avant d'ajouter ma rallonge. Finalement la fonction paramétrique de FreeCAD m'a permis de déplacer les 2 morceaux et de régler la longueur de la rallonge à partir du tableur intégré.
Impression 3D :
J'ai imprimé plusieurs exemplaires de différentes tailles, dont :
ce qui donne :
et en place avec le rideau :
Scripts de génération auto :
Grace à l'approche paramétrique, à la fonction tableur de FreeCAD et au langage python (au coeur de FreeCAD) il est possible de rendre scriptable la génération du fichier STL :
auto_export_parametric.py :
#! /usr/bin/python3 import sys sys.path.append('/usr/lib/freecad/lib') import FreeCAD import Mesh FreeCAD.openDocument('crochet_rideau_douche_rallonge.FCStd') App.getDocument('crochet_rideau_douche_rallonge').getObject('Spreadsheet').set("A2", sys.argv[1]); App.ActiveDocument.recompute() __objs__=[] __objs__.append(FreeCAD.getDocument("crochet_rideau_douche_rallonge").getObject("Cut")) __objs__.append(FreeCAD.getDocument("crochet_rideau_douche_rallonge").getObject("Common")) __objs__.append(FreeCAD.getDocument("crochet_rideau_douche_rallonge").getObject("Box002")) Mesh.export(__objs__,u"crochet_rideau_douche_rallonge_temp.stl") del __objs__
que l'on peut du coup appeler depuis un script web; exemple en PHP :
crochet_rideau_douche_rallonge.php :
<?php if (!empty($_REQUEST[length]) && is_numeric($_REQUEST[length])) { system("/usr/bin/python3 auto_export_parametric.py $_REQUEST[length]"); header('Content-Type: application/octet-stream'); header('Content-disposition: filename="crochet_rideau_douche_rallonge_temp.stl"'); print file_get_contents("crochet_rideau_douche_rallonge_temp.stl"); } else { print('Parameter "length" must exist and be an integer !!!'); } ?>
dont le formulaire d'appel est de la forme :
crochet_rideau_douche_rallonge.html :
<form action=crochet_rideau_douche_rallonge.php> Longueur total du crochet : <input name='length' size=3> <input type=submit value='Générer le fichier STL'> </form>
Du coup si vous souhaitez un crochet de rideau d'une longueur dédié.
A bientôt
Antoine