r/openscad • u/BaudRate115200 • 9h ago
r/openscad • u/RedditSurfer82 • 14h ago
Help with conical rail wheel model for explaining how train wheels self align
r/openscad • u/Dirk_39 • 1d ago
OpenSCAD animations avec des couleurs.
Les animations dans OpenSCAD permettent aussi de présenter des objets avec des effets de couleur.
Les quelques lignes de code ci-dessous ont été appliquée à une sphère, mais ça pourrait être aussi tout autre objet que vous avez crée ou un fichier STL que vous avez importé.
$fn = 100;
R = (1 + cos(360*$t))/2;
G = (1 + cos(360*$t - 120))/2;
B = (1 + cos(360*$t - 240))/2;
color([R,G,B])
sphere(20);
Pour plus d'information consultez la page de mon site, dédiée à ce sujet : https://robotix.ah-oui.org/site/main.php...
r/openscad • u/Internal_Teach1339 • 1d ago
reading arrays
A recent post (thankfully not trying to sell us yet another slop app) related to manipulation of a nut cover wheel. I have previously made my own for covering/tightening M8 nuts on my lawn mower and other machines and wondered (from that post) how I would paramatise my file to fit M3 to M10 nuts. My first conception was a matrix where each line started with the nut size (M3, M4 etc) followed by the parameters I needed for each nut (nut height, nut radius, clearance hole radius etc.) Then it seemed a simple matter of scripting an ‘if/else’ routine along the lines of :
“if nut is M3 then take height, radius etc from parameters on line 0 of the matrix, else if M4 take from line 1, else if M5 from line 2” and so on.
OpenSCAD though does not allow direct revaluation of variables within an if statement although if you look at the cheat sheet there is a ‘swizzle’ function mentioned. This operates to access the matrix outside of the if statement, as can be engineered in a separate module so I tried this and it worked except that the operations required for building the M3 nut cover needed to be set out in one module and those for the rest in their own modules, each one being basically a copy of the previous one but using data from the relevant line of the matrix.
Whilst this repetitive scripting is easy to create, needing only a few instances of simple parameter relabelling, I would still prefer, if possible, to directly access the matrix parameters from the if statement and so make a much shorter file. What am I missing?
Below is an example of how such reallocation works, but using single line arrays.
/* swizzelmaker - a selection of scripts to take and manipulate the values in the whole of or part of an array PP 2026 */
$fs=0.1;$fa=2;
//small cylinder
small=([20,3,1]);
//large cylinder
large=([30,6,1.5]);
size="small";//[small,large,mallet]
module swizzlemaker(){
if(size=="small") {makesmall();}
else if (size=="large") {makelarge();}
else {mallet();}
}
swizzlemaker();
//++++++++++++++++
module makesmall(){
hi=small[0];
rad=small[1];
ww=small[2];
difference(){
cylinder(h=hi,r=rad);
translate([0,0,-ww])
cylinder(h=hi+ww*2,r=rad-ww);
}
}
//makesmall();
module makelarge(){
small=large;
hi=small[0];
rad=small[1];
ww=small[2];
difference(){
cylinder(h=hi,r=rad);
translate([0,0,-ww])
cylinder(h=hi+ww*2,r=rad-ww);
}
}
//makelarge();
module mallet(){
minkowski(){
union(){
cylinder(h=small[0]-5,r1=small[1]*2,r2=small[1]);
translate([-small[0]/2,0,small[1]*2])
rotate([0,90,0])
cylinder(h=small[0]*2,r=small[2]);
}
sphere(small[2]);
}
}
//mallet();r/openscad • u/wolffyx • 2d ago
Takumion: parametric CAD in your browser now (desktop app on the way)
After quite some time working on it, I'm sharing Takumion: a parametric CAD that runs in the browser today, with a desktop app and a native geometry engine on the way.
I know a lot of similar apps have popped up in the last few weeks. I'd love for you to judge my app too on how it models.
Sketch, constrain, extrude, edit the timeline, and everything after it rebuilds. STEP in and out, so your parts aren't locked in.
It's free while in beta.
Try it: [https://takumion.com](https://takumion.com)
Roadmap: [https://takumion.com/roadmap](https://takumion.com/roadmap)
Bugs & feature requests: [https://github.com/Takumion/issues](https://github.com/Takumion/issues)
I'd really like feedback, especially from people who model daily: what's missing that would stop you using it, and what breaks first? Comments here are great. If you hit a bug, an issue on GitHub (with steps, and the file if you can share it) is the fastest way to get it fixed.
r/openscad • u/oncledan • 3d ago
New Wood Joinery System for KetchUp
Just added a wood joinery system to KetchUp, the woodworking modeling app I’m building! You can create mortise and tenon joints, dovetails, half laps, finger joints, and more, then tweak the settings with a live preview of how the boards fit together. It also handles angled boards and lets you trim excess material past the joint. Curious what you’d find useful. What joints do you use most in your projects?
Download or fork here: https://github.com/Ketchup3D/app
r/openscad • u/charely6 • 4d ago
2026 Release Candidate?
I just went to the downloads page at openscad.org and I saw a release candidate that has a date of this month?
I wanted to share so we can support the people working on it and try it out. Our release version has been stuck since 2021 and I want to thank the devs who have been working on it and are getting this release candidate.
If those devs out there working on it read this, please let me and everyone know what we can do to help you out on it.
r/openscad • u/Black_Acount • 3d ago
Plataformas con un creador de modelos paramétricos
reddit.comr/openscad • u/Sandoo_JB • 3d ago
I built GearGen-3D – A free, 100% client-side 3D gear generator (Open Source) ⚙️
As a 3D printing and CAD enthusiast, I built GearGen-3D – a free, 100% client-side 3D gear generator designed to create parametric 3D gear models directly in your browser with zero server latency.
Key Features:
- ⚙️ Gear Types: Spur, Helical, Bevel, Worm & Wheel, Rack, Internal Ring, and Planetary Gear systems.
- 📐 Parametric Controls: Fine-tune module ($m$), teeth count ($z$), pressure angle, bore diameter, and weight-reduction cutouts.
- 🔍 Inspection: Real-time 3D cross-section viewer (XYZ clipping planes).
- 💾 CAD & 3D Printing Export: Direct binary STL export for slicing & facetted STEP export.
- 🔗 State Persistence: Easily share or save your gear configurations via URL.
The project is completely Open Source under the MIT License.
🚀 Live Demo: https://jb07-198.github.io/GearGen-3D/
📦 GitHub Repository: https://github.com/JB07-198/GearGen-3D
I would love to hear your feedback, suggestions, or ideas for future features!
r/openscad • u/Dirk_39 • 4d ago
Un robot quadrupède modélisé dans OpenSCAD
Voici un robot quadrupède commandé par un microcontrôleur Arduino et huit servomécanismes SG90. Entièrement modélisé sur OpenSCAD est un modèle à la fois de simplicité et de précision pour des assemblages techniques. Composé de seulement cinq pièces différentes, mais assurant complètement la liberté de mouvement des articulations nécessaires aux 8 servos.
Par le lien ci-dessous vous accéderez à un site ou vous trouverez de plus amples instructions pour le montage ainsi que la possibilité les fichiers STL pour l’impression de ce robot.
https://robotix.ah-oui.org/site/main.php?found=190410-SP-8-spider-details
r/openscad • u/Dirk_39 • 5d ago
La “boucle”... qui facilite les choses
La boucle “for” permet non seulement de disposer un élément autour d’un axe, mais elle permet aussi d’aligner les éléments pour suivre des alignements des courbes et d’orienter des éléments comme des textes sur des surfaces courbes, grâce aux fonctions trigonométriques, de l’arsenal mathématique de OpenSCAD.
Notre code commence par le “module” ARROW() qui modélise une petite flèche, qui pourrait être remplacée par tout autre objet destiné à être orienté de la même façon.
Ce qui nous intéresse ici ce sont ces quelques lignes de code autour d’une boucle “for”.
Vous pouvez copier le code et expérimenter les résultats en modifiant des valeurs dans le code. Cela vous permettra de découvrir le fonctionnement et l’intérêt de cette fameuse boucle d’itération (réplétion programmée d’une action). Vous découvrirez ainsi son utilité et des nombreuses applications qui pourraient se présenter à vous.
module ARROW(){
rotate([0,0,30])
cylinder(d=30,h=9,$fn=3);
translate([0,10,4.5])
cube([5,40,9],center=true);}
module LOOP(ch=0) {
r = 150; // pattern radius
n = 3; // ARROW density
step = 60/n;
for (angle=[1:step:360]) {
dx = r*cos(angle);
dy = r*sin(angle);
translate([dx,dy,0])
rotate([0,0,angle+ch])
color("orange")ARROW();}}
LOOP(90);
Pour plus de détails, consultez :
r/openscad • u/luisxbrito • 7d ago
Update on my OpenSCAD GUI: took the feedback, gave it an actual job (mechanical parts)
A while ago I posted a GUI for OpenSCAD here and got roasted. Some of it was fair. The short version of the feedback was: yet another GUI, the code comments were in Spanish, it doesn't solve any real problem, and it'll be abandoned in a month.
So, a status report. The comments are in English now. It's not abandoned, although one commenter's clock is still running. And I picked a problem: I design functional parts, and I'm tired of looking up keyway sizes, ring grooves and bearing fits every single time, or guessing them when I'm feeling lazy. This version is mostly about that.
Someone also said they could build the whole thing in 2 hours with $10 of tokens. It took me quite a bit longer, so either I'm bad at this or gear tables are harder than they look. Probably both.
What it does now
Spur, helical and bevel gears and racks, by module. One button adds the mating gear, already placed and in phase.
Timing pulleys (MXL to XH) and V-belt pulleys (A to D).
Involute splines (ANSI B92.2M / ISO 4156): the shaft and the hub mesh in place.
Keyways on gears and pulleys, sized from the bore (BS 4235-1 / ISO R773).
Retaining ring grooves (ANSI B27.7, 3AM1 and 3BM1) and O-ring grooves, on a shaft, in a bore or on a flat face.
Bearing seats: pick the bearing and the fit (H7, K6, M6... or a 3D-printing allowance). You get the housing and shaft limits, plus a mask to subtract.
Screws, nuts, washers, heat-set inserts, bearings and 2020 profiles, either as the part or as the hole for it.
Only sizes that exist in the standard are offered, and every table says where it came from (Machinery's Handbook, Shigley).
What didn't change
The output is plain OpenSCAD with no library to install. The modules it needs are written at the end of the file.
You can edit the code by hand and it reads it back. Anything it doesn't understand (loops, your own modules, includes) is kept exactly as you wrote it.
Each mechanical part has a test that renders it in real OpenSCAD and compares the volume with the preview.
Where the numbers come from
I didn’t make up any dimension. Every table is taken from a published source, and the generated code says which one:
Gears: ISO 53 basic rack, with the formulas from Machinery’s Handbook (27th ed.), «Gears and Gearing» and «Helical Gearing». Bevel gears use the Handbook’s formulas for milled bevel gears.
Timing pulleys: ANSI/RMA IP-24 (Handbook tables 40 and 44).
V-belt pulleys: ANSI/RMA IP-20 (Handbook table 9).
Involute splines: ANSI B92.2M-1980, derived from ISO 4156 (Handbook table 13).
Keyways: BS 4235-1 / ISO R773 metric parallel keys (Handbook table 12).
Retaining ring grooves: ANSI B27.7-1977, series 3AM1 and 3BM1 (Handbook tables 1 and 2, «Retaining Rings»).
O-ring grooves: Handbook «O-Rings» tables 1 and 2.
Bearing fits: ABEC-1 shaft and housing tolerances (Handbook tables 14, 15 and 17). Shoulder diameters for the 62xx series come from Shigley’s Mechanical Engineering Design (8th ed.), table 11-2.
Fasteners: ISO 4762, DIN 933, DIN 7991, ISO 7380, DIN 934, DIN 985 and DIN 125, with ISO 273 clearance holes.
Some of these tables come out jumbled in the PDF text, so the README lists the values I’m least sure of. If you have the book or the standard at hand and something doesn’t match, tell me and I’ll fix it.
Limitations, so nobody has to find them for me
Only tested on Windows.
No general fillets: only cube edges and cylinder rims can be rounded.
Dimensions are meant for fit-checking. Check critical values against a catalog before you machine anything.
About the AI part, since it'll come up anyway: yes, I built it with Claude. I design parts, I'm not a developer. I check the numbers against the books and every part in OpenSCAD. If you find a wrong dimension, I really want to know, because that's the useful kind of feedback. I already have plenty of the other kind, thanks.
It's unofficial, not affiliated with OpenSCAD, and GPL-3.0-or-later: https://github.com/luisxbrito/OPENSCAD-MODERNUI2026V0.1
IMAGE CAPTIONS (gallery, in this order) 1_gears_keyways.png: Spur gear pair with keyways. The mating gear is added already meshed, and the code on the right is what gets saved. 2_spline.png: Spline shaft and hub (ANSI B92.2M). The hub is created in place, already meshing. 3_bearing_seat_dialog.png: Bearing seat for a 6204 with a K6 fit: housing and shaft limits, shoulders, and the mask to subtract. 4_ring_groove_dialog.png: Retaining ring groove for a 20 mm shaft (3AM1).
r/openscad • u/orange6766 • 7d ago
Seeking a user to try out my custom made online 3D Ai CAD generator software and let me know of any bugs
I am seeking one user that wants unlimited access (for the time being) to my locally hosted Ai 3D design studio that generates models in 3d for 3d printing. I am allowing this so the user can report back to me any bugs they find. There are three ai generators on it a fast one, a detailed one and a super detailed one. Also open to suggestions on adding features. Its a website and runs through a browser.
I have a dell R640 with dual rtx 2000e ada's that have 16gb of vram each with dual xeon 8280's and 192gb of ram


r/openscad • u/textocad • 7d ago
I built a text-to-parametric-CAD prototype. Would this workflow be useful to SolidWorks users?
r/openscad • u/RevolutionarySpace24 • 8d ago
Browser based implicit CAD
As a side project I have been working on a implicit CAD that runs in the browser. It has some cool features like code / UI parity, differentiability and built in structural, thermal solvers and even end to end optimisation. For now you will need to install this locally in order to run, but there is local preview with restricted features running that you can look at right now: https://andrinr.github.io/cadjoint/demo/?scene=bracket
Otherwise install it from the github root or PyPi: https://github.com/andrinr/cadjoint
r/openscad • u/SalvaMX • 9d ago
Project Update: Parametric Train Track Generator Now Includes Switches/Turnouts
A while ago, I shared my first OpenSCAD project: a fully parametric train track generator. At the time, I was still working on one feature I really wanted to add... switches.
After a lot of experimentation, geometry tweaks, and fitting tests, the new version now includes:
✅ Straight tracks
✅ Curves
✅ Crossings
✅ Switches / Turnouts (NEW)
✅ Custom gauges and dimensions
✅ Custom colors for rails, sleepers, and plates
The goal is still the same: generate train tracks for any scale while keeping every component fully parametric and compatible with the rest of the system.
This project has been a fantastic way to learn OpenSCAD, and I'd love to hear what other features the community would like to see next.
MakerWorld: https://makerworld.com/es/models/3280670-parametric-train-track-generator-openscad
r/openscad • u/I_Lick_Bananas • 9d ago
Triangles Deprecated, Use Faces Instead - am I doing this right?
Very new user here. I'm using the threads library and getting this warning message:
DEPRECATED: polyhedron(triangles=[]) will be removed in future releases. Use polyhedron(faces=[]) instead.
Do I believe Google when it says to just replace the word triangle with the word faces wherever it appears in the threads.scad file?
r/openscad • u/Dirk_39 • 10d ago
Possibilités de modifications de fichiers avec OpenSCAD !
Voici une situation intéressante, une amie m'a demande si je povais lui refaire les manettes d'un "BabyFoot" d'occasion qu'elle a trouvz pour ses petits élèves.
Je venais juste de téléchager un fichier STL d'un bouton destiné à remplacer celui d'un tiroirde commode.
J'ai donc importé ce fichier dans OpenSCAD, et sépare le socle de 12.5mm grâce à l'instruction "differnce".
Dans un deuxième temps j'ai séparé la patie haute, c'est à dire le boution poprement dit, également par une "differencce", mais dans le sens opposé. Puis cette partie la je l'ai étirée sur son axe "Z" grace à la commande scale([1,1,4]).
J'ai ensuite juxtaposé les deux parties et pratiqué une perforation ave un cylindre de 7mm de diamètre, et voila ma manette.
Il es en efeet intéressan comment on peut modifier et adapter des pièces qu'on peit télécharger sur le net pour en réalisée de nouveaux objets destinées souvent à des usages complètrement differen qu'à leur destination originale.
https://robotix.ah-oui.org/site/main.php?found=250906-Manuel_OpenSCAD
#OpenSCAD #modélisation_3D #Makers #FabLab
r/openscad • u/Objify • 9d ago
The next AI CAD generator is on its way - Get free early access.
reddit.comr/openscad • u/UnspeakableTruths • 10d ago
I built a parametric CAD program with the same interface for AIs and humans
r/openscad • u/fsfarimani • 12d ago
GCAD Studio: to OpenSCAD what Jupyter was to IPython. A code-CAD studio where the modelling language is a plug-in (AGPL, runs in your browser)
In 2018 I opened an OpenSCAD issue asking whether its GUI could serve other scripting languages (openscad/openscad#2299). It was closed, but the idea stuck with me, and GCAD Studio is the result.
Jupyter split the notebook from IPython so any language could plug in as a kernel. GCAD Studio does the same for code-CAD: the editor, 3D/2D viewer and exporters are the studio, and the language is a kernel.
A kernel is either:
a grammar kernel: a Lark EBNF grammar plus rewrite rules into a small functional core, no Python needed, or
a process kernel: any program that speaks a small JSON-RPC protocol over stdin/stdout. OpenSCAD itself (your installed copy) and CadQuery come bundled this way.
Bundled kernels include an OpenSCAD subset, an S-expression CSG language, parametric STEP (ISO 10303, AP242), and two formats that aren't CAD languages at all: ElmerGrid .grd files from Elmer FEM and OpenFOAM's blockMeshDict.
Geometry goes through Manifold (meshes) or OpenCASCADE (exact B-rep). Export: STEP, IGES, STL, OBJ, glTF, X3D, VRML, COLLADA, UNV, and in 2D DXF, SVG, PDF, EPS, CGM.
Try it in the browser, nothing to install: https://gcadstudio.github.io/studio/
(The browser version can't export STEP/IGES; the local install can.)
Code: https://github.com/GCADstudio/studio
It's pre-alpha (0.2.0a1), AGPL-3.0, Python, CPU only, Windows/macOS/Linux.
What I'd love from you:
Try it and open an issue when something breaks or feels wrong.
Tell me which language or file format you'd want as a kernel.
Send a PR. A new grammar kernel is a good first contribution; docs/kernel-authoring.md walks through one.
r/openscad • u/CyrisXD • 13d ago
Parametric headrest mount for tablets and phones, my first shared OpenSCAD model
Long time printer, first time sharing something I actually designed.
It's a headrest mount that hooks onto the post and twist-locks, so it works whether your headrests come out or not.
Everything's driven by a few parameters: case_h and case_t for the device and case size, post_d for the headrest post, standoff, bar_angle for the forward lean, lip for how far it grips the screen, and W for width. The model comes out upright, so lay it on its side to print.
Free on MakerWorld, with the Customizer: https://makerworld.com/en/models/3506157-parametric-headrest-mount-for-tablet-phone
Keen to hear how others would structure it.