Impression 3D Openscad - arnaudrco/exemples GitHub Wiki

8 dépôts github : exemples-de-montages avec les ateliers et projets réalisés au repair café festisol animations et projets réalisés pendant FESTISOL et à la MJC ; CROUS-micro-python animations et projets commencés au CROUS et poursuivis pendant les ateliers numériques ; piano une nouvelle passion réalisée à coup de marteau visio et communication ; jouets réparations, récréations mathématiques, création de nouveaux jouets developpement-voiture robot, intelligence artificielle ; raspberry-pico et micro-python ; Repair Café d'Orsay Blog Mots clés

Vous pouvez réparer à Orsay et Bures, amusez vous à concevoir un objet en ligne sans programmer programmer un objet avec un logiciel libre Table ronde Salle des Muses samedi 25 octobre 2025 15h 17h "impression 3D pour réparer" inscription

Les objets 3D sur internet ont souvent mal adaptés : mauvaise dimension, il faudrait ajouter un bout d'un côté, rogner une autre partie .. J'aime bien cet outil très léger et rapide digne d'être dans la boite à outils du réparateur. Avec quelques fonctions de base, il est puissant et paramétrable.

F5 visualise (instantané)
F6 calcul le rendu
F7 impression 3D

Théorie des ensembles

Pour ceux qui aiment la Théorie des ensembles

Pas facile de réaliser un beau boîtier pour un PowerBank toutes tensions . Ajouter un boîtier et un cube

Si je demande l'intersection

intersection(){ import("DC-DC_stepdown_XL4005.STL"); cube([100, 100, 10], center = true); }

Remplacer DCxxx par votre fichier et faire F5. Magique ?

Piège à moustiques

comment modifier des objets trouvés sur internet ? J'ai trouvé un "extracteur de fumée" qui est pratiquement ce que je cherche ; avec un glisser-déposer , je pose le fichier STL de l'objet dans openscad, j'appuie sur la touche de fonction F5 et l'importation est automatique !

Mais les dimensions du tube en haut ne sont pas bonnes : il me manque presque rien ; je réalise un "rabot" pour le mettre à la bonne dimension

module rabot() { difference() { cylinder(h = 20, r = 120/2, center = true); cylinder(h = 20, r = 80/2, center = true); } } rabot();

Openscad "enlève" l'exces de matière ; voici le code

Impression de la pièce

https://github.com/arnaudrco/exemples/blob/main/rabot.stl

Couture

Pas facile à avoir la bonne taille de bouton ; il est rapidement imprimé en 3D ; 3 lignes Openscad et je visualise immédiatement mon bouton

module bouton() { trou=6; difference() { cylinder(h = 3, r = 25/2, center = true); union() { translate([0,trou,trou] ) cylinder(h = 50, r = 5/2, center = true); translate([0,-trou,-trou] )cylinder(h = 50, r = 5/2, center = true); } } } bouton();

Les bords du boutons sont trop durs ? J'ajoute simplement une sphère pour adoucir les bords du bouton avec une somme de minkowski ; amusant ?

minkowski() { bouton(); sphere(1); };

Des outils libres

Un objet réalisé à partir d'un programme ? De nombreux outils peuvent le faire : FreeCAD, OpenSCAD, CADQuery ... Suivez le guide du logiciel libre de modeleur

Réalisation 5 minutes

C'est une sorte de grosse rondelle bizarre pour une rambarde ; j'ai besoin d'un gros cylindre pour la rondelle un petit pour faire le trou de la vis, et une cavité pour faire passer l'attache ; j’appuie sur F5 pour voir le résultat grossier, F6 pour le rendu et F7 pour exporter en STL. Incroyable ?

module rambarde() { difference() {
cylinder(h = 20, r = 20, center = true);
union() { translate([0,10,10] ) cube([50, 10, 10], center = true); cylinder(h = 50, r = 5, center = true); } } } rambarde();

fichier STL et sa visualisation

Avec 2 variables vis pour la vis et tige pour l'écartement de la tige :

module rambarde() { vis=6; tige=4; difference() { cylinder(h = 12, r = 25/2, center = true); union() { translate([0,tige,tige] ) cube([50, 10, 10], center = true); translate([0,-vis,-vis] )cylinder(h = 50, r = 5/2, center = true); } } } rambarde();

Partager des compétences et des réalisations

Vous avez réalisé un beau projet et vous voulez le partager pour aider les autres ?

Partager des réalisations à Bures, Gometz, Orsay,

article Comment réparer des appareils lorsque les pièces sont introuvables ? Un blender en panne , un mixeur ou une tronçonneuse : il suffit quelquefois d’une seule pièce pour que l’appareil devienne inutilisable

La modélisation n'est pas aisée souvent ; Openscad est un exemple de logiciel ancien mais efficace pour paramétrer un roulement à n billes ou un chandelier à n bougies !

Impression 3D avec Openscad

J'ai eu du mal à installer Fusion360 : la version gratuite est limitée dans le temps, il faut donner son téléphone obligatoirement, le téléchargement est important ; par contre je me suis très vite amusé avec Openscad, la bibliothèque est fournie et une version en ligne existe

sudo apt-get install openscad

24 Mo à télécharger

https://openscad.cloud/openscad/

Modélisation d'objets avec Openscad

Un Lego

c'est un jeu de Lego de choisir des blocs élémentaires et d'utiliser des fonctions comme des additions ou des intersections sur les blocs

union() : nous ajoutons des blocs

difference() : nous évidons un bloc d'un autre bloc

intersection()

Modélisation programmable

un objet est réalisé par l’exécution d'un programme

Pas facile de trouver comment modéliser une pièce ; très mathématique ; j'aime bien la possibilité de paramétrer le nombre n de bougies pour un chandelier ( n=5 ) et de voir immédiatement la réalisation de l'objet

Le chandelier à n branches est dans le menu fichier>exemple>parametric ; amusez vous à programmer une hélice

un roulement à n billes

un peu plus difficile un engrenage d'un moteur pas à pas avec sa solution

des bibliothèques de fonctions

openscad a de belles bibliothèques de modélisations

Galerie d'objets

boitier raspberry Pi

et même une imprimante 3D

et sa réalisation

Exemples de fonctions de base

2D Primitives

square(size=1, center=false, r=0)
circle(r=1, c=[0,0], internal=false, d)

3D Primitives

cube(size=1, center=false)
sphere(r=1, d)
cylinder(h=1, r1, r2, center=false, r, d, d1, d2)

2D to 3D

linear_extrude(height=100, center=false, convexity=1, twist=0, slices, scale=1.0, poly)
rotate_extrude(angle=360, offsetAngle=0, center=false, v_offset=0, i_offset=0, poly)

Fonctions "built in"

illustration de la somme de minkowski d'une boite et d'un cylindre

3D to 2D

projection

Transform

offset minkowski hull

Booleans

union difference intersection

Tinkercad

avec Tinkercad je peux aussi programmer en scratch

CadQuery

CadQuery est très similaire ; il se programme en Python

 python3 -m pip install --upgrade pip

 pip install cadquery

Voir plus Impression-3D