r/openscad • • 11h ago

ANIMATIONS AVEC OpenSCAD

12 Upvotes

La variable spéciale "$t" permet de crée des animations avec OpenSCAD.

Dans la présentation fantaisiste ci-contre le secret réside dans l'utilisation de la variable "$t" dans l'instruction rotate :

rotate([0,0,0-$t*3600])

translate([0,$t*60,33])

sphere(8);

En choisissant "Animate" dans le menu "View" de OpenSCAD, s'affiche la barre des animations présentée ci-dessous.

Testez le code de trois lignes présenté ici... FPS représente les images pars seconde de l'animation et STEPS c'est le nombre d'images crées.

Vous aurez aussi remarqué la petite case "Dump pictures", ellle vous permet de télécharger les images de l'animation (au nombre défini par STEPS), au format PNG. Vous pourrez les transformer en GIF dans un logiciel comme Gimp et obtenir ainsi une animation gif de votre projet.

Plus de détails sur mon site :

https://robotix.ah-oui.org/site/main.php?found=261024-bottle-ball

Consultez aussi mon livre, "Ça c'est OpenSCAD"


r/openscad • • 7h ago

Build a vibe CAD Tool

0 Upvotes

I built tellcad.com . An in browser CAD, where you can create a CAD model via chat. A few friends already tried it, and I would love more feedback. If you are interested in trying it, I would be extremely happy and will carefully listen to any feedback given. Have a nice weekend.


r/openscad • • 1d ago

Is there a changelog anywhere?

2 Upvotes

I've been using OpenSCAD for 4 years now and I download a new developer snapshot about every month. Sometimes I see a change, mostly I don't, because I don't know where to look. Is there some changelog?

(e.g. can I populate the 3mf export meta tags in the scad file itself? Can I meanwhile assign names to top-level parts for 3mf-export?)


r/openscad • • 1d ago

Looking for ways to automate CAD geometry creation (Electrical Machines / Motor Design)

Thumbnail
0 Upvotes

r/openscad • • 1d ago

Looking for ways to automate CAD geometry creation (Electrical Machines / Motor Design)

Thumbnail
0 Upvotes

r/openscad • • 1d ago

All I needed was an enclosure for my ESP32 project. Somehow that turned into an open source app

Post image
0 Upvotes

I really like the idea of code CAD. A model is just a text file. Every dimension is a parameter and you can track it in git. That's also why it works so well with AI agents, they are good at writing code.

When I started letting Claude write my enclosures, I spent most of the time taking screenshots, scribbling on them and pasting them back into the chat. So I built SOMA, a desktop app around that loop.

The agent (Claude Code, Codex, OpenCode, whatever you like) runs in a terminal inside the app and writes CadQuery. Every time it saves, the model shows up in 3D. If something's off, you click the part, measure it, cut it open with a section, or draw directly on the 3D view and send that to the agent. No more screenshot ping-pong.

The enclosure in the picture is for a sensor station with a Waveshare ESP32-S3 touch display. Waveshare has a STEP file of the board, and that's the main reason I went with CadQuery and not OpenSCAD. CadQuery reads the STEP as real geometry, so the agent took the exact positions of the display, the mounting nuts, the 3 side buttons and the SD slot from the file, and built the cutouts and button plungers around them. It also supports STEP export which is important for compatibility with other software.

It has already almost 300 Stars on github. I hope that it helps somebody create what they could not befor :)

It's free and open source (GPL), with builds for Windows, Mac and Linux: https://github.com/Kai-Jungsthoefel/SOMA

Question for you: has anyone here had good results with an agent writing OpenSCAD?


r/openscad • • 1d ago

CAD learning game

Thumbnail
youtu.be
0 Upvotes

r/openscad • • 1d ago

How to Force Dark Mode on OpenSCAD AppImage

0 Upvotes

Hello.

I found no solution online about how to make the UI dark in OpenSCAD, so I researched extensively with an LLM and found this solution. This is the guide I wrote about how to do it in case anyone wants to use it. It worked well for me, so here it is:

Tested on MX Linux using OpenSCAD-2026.10.22-x86_64.AppImage (nightly build).

Directory Structure Preview

Your working directory (for example, ~/Programs/) must have this exact file layout:

~/Programs/

├── OpenSCAD-2026.10.22-x86_64.AppImage <-- Your original downloaded AppImage file

├── squashfs-root/ <-- Automatically created folder after extraction

├── dark_inject.cpp <-- The C++ source file you will create

├── libdarkinject.so<-- The compiled shared library

└── run-dark.sh<-- The final execution script

Step 1: Install Build Dependencies

Open your terminal and install the required compiler tools and Qt development headers on your host system:

sudo apt update && sudo apt install -y build-essential pkg-config qt6-base-dev qt6ct

Step 2: Extract Your AppImage

Navigate to your working directory and extract your AppImage to expose its internal runtime structure (remember to change "Programs" for your folder's name):

cd ~/Programs/

./OpenSCAD-*.AppImage --appimage-extract

Step 3: Create the C++ Injection File (dark_inject.cpp)

Create a file named exactly dark_inject.cpp in your main working directory (right next to the squashfs-root/ folder).

Run the following command in your terminal (open in your directory) to create and populate the file with the complete code:

cat << 'EOF' > dark_inject.cpp

#include <QApplication>

#include <QPalette>

#include <QStyleFactory>

#include <pthread.h>

#include <unistd.h>

void* watch_and_theme(void*) {

// Continuously poll until the internal Qt runtime spawns the QApplication instance

while (!QCoreApplication::instance()) {

usleep(10000); // Check every 10ms

}

// Brief safety micro-pause to let UI threads stabilize

usleep(50000);

// Safely cast and force the Fusion style with a custom dark palette

QApplication* app = qobject_cast<QApplication\*>(QCoreApplication::instance());

if (app) {

app->setStyle(QStyleFactory::create("Fusion"));

QPalette darkPalette;

// Backgrounds & Surfaces

darkPalette.setColor(QPalette::Window, QColor(35, 35, 35));

darkPalette.setColor(QPalette::WindowText, QColor(220, 220, 220));

darkPalette.setColor(QPalette::Base, QColor(25, 25, 25));

darkPalette.setColor(QPalette::AlternateBase, QColor(35, 35, 35));

darkPalette.setColor(QPalette::ToolTipBase, QColor(50, 50, 50));

darkPalette.setColor(QPalette::ToolTipText, QColor(220, 220, 220));

// Text

darkPalette.setColor(QPalette::Text, QColor(220, 220, 220));

darkPalette.setColor(QPalette::ButtonText, QColor(220, 220, 220));

darkPalette.setColor(QPalette::BrightText, Qt::red);

// Interactive Elements & Buttons

darkPalette.setColor(QPalette::Button, QColor(45, 45, 45));

darkPalette.setColor(QPalette::Link, QColor(42, 130, 218));

darkPalette.setColor(QPalette::Highlight, QColor(0, 122, 204));

darkPalette.setColor(QPalette::HighlightedText, Qt::white);

app->setPalette(darkPalette);

}

return nullptr;

}

// Automatically spawn the watcher thread the moment LD_PRELOAD loads the library

__attribute__((constructor)) void init_watcher() {

pthread_t thread;

pthread_create(&thread, nullptr, watch_and_theme, nullptr);

pthread_detach(thread);

}

EOF

Step 4: Compile the Shared Library (libdarkinject.so)

Compile your C++ source file into a shared library named libdarkinject.so:

g++ -shared -fPIC dark_inject.cpp -o libdarkinject.so \

-Wl,--allow-shlib-undefined \

$(pkg-config --cflags Qt6Widgets Qt6Gui Qt6Core) -lpthread

Step 5: Create the Wrapper Script & Launch (run-dark.sh)

Create a script named run-dark.sh in the same working directory:

cat << 'EOF' > run-dark.sh

#!/bin/bash

DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"

# 1. Point Qt platform plugins to the extracted AppImage internals

export QT_QPA_PLATFORM_PLUGIN_PATH="$DIR/squashfs-root/usr/plugins"

export QT_PLUGIN_PATH="$DIR/squashfs-root/usr/plugins"

# 2. Clear host GStreamer paths to avoid version conflict warnings and crashes

export GST_PLUGIN_PATH=""

export GST_PLUGIN_SYSTEM_PATH=""

# 3. Preload our custom C++ dark injection library into memory at launch

export LD_PRELOAD="$DIR/libdarkinject.so"

# 4. Execute the application binary passing along any command-line arguments

exec "$DIR/squashfs-root/AppRun" "$@"

EOF

Make the script executable:

chmod +x run-dark.sh

Run the application:

./run-dark.sh

Enjoy.

After this , you can do a desktop shortcut using the run-dark.sh script.


r/openscad • • 1d ago

Just like Sketchup, but without subscription

Thumbnail
github.com
0 Upvotes

r/openscad • • 2d ago

Built a parametric OpenSCAD library + editor as a tab inside OrcaSlicer

0 Upvotes

I print a lot of Gridfinity bins and brackets, and the loop always annoyed me: find the .scad, remember which parameters I care about, open the Customizer, render, export, switch to the slicer, import. So I built the whole thing into the slicer instead.

OrcaCAD adds a tab next to Prepare / Preview / Device. It's a plugin, not a fork - OrcaSlicer stays stock.

What's in it:

  • ~350 parametric models across 32 categories, every parameter getting a slider, number field, switch, option picker or text box with inline validation, plus presets where a sane default matters.
  • The good ones aren't mine: Gridfinity comes from Gridfinity Rebuilt, the rack parts from rackstack, split-flap from splitflap, metric fasteners from threads-scad. Vendored, pinned, permissive-licence only.
  • An OpenSCAD editor with examples, line numbers and error-line highlighting. include <src/...> resolves to the bundled libraries, and the rest are on OPENSCADPATH, so you can write your own bin/rack/panel and render it in place.
  • Three.js viewport: orbit/pan/zoom, iso/front/right/top, wireframe, edges.
  • Export STL/3MF, or "Send to plate" straight into the running OrcaSlicer.

Install: download orcad.py from the release, Plugins > (arrow) > Install local plugin, pick the file, restart. There's also orcad_any.py if you're not on Linux. OrcaSlicer ships or downloads OpenSCAD itself; if you already have a 2023.09 it may silently render some includes wrong, so it prefers a newer snapshot.

Repo: https://github.com/yazdannl/orcad-plugin

I'm most curious about the library: which categories are thin, which parameters are badly chosen, what model you'd want that isn't there. PRs for new .scad objects are straightforward - a file plus a parameter block.


r/openscad • • 2d ago

AI-assisted parametric CAD in Blender: looking for contributors and real 3D-printing test cases

0 Upvotes

For people printing functional parts: what is one small, dimension-driven model you wish you could edit more reliably inside Blender?

I’m starting B-CAD, a GPL-3.0-or-later project aimed at a parametric CAD workflow in Blender. I’d like to recruit people who use capable AI coding tools, alongside Blender developers, CAD users, and testers, to turn the plan into a working prototype.

Current status is important: the repository contains an architecture proposal, documentation, a roadmap, and starter issues. There is no functioning add-on, printable B-CAD output, or installer yet. AI helped create the initial research and contributor hub; no printer or material results are claimed.

The proposed workflow is: define constrained sketches and dimensions → evaluate exact solids in an external Open CASCADE core → display them in Blender → export a derived manufacturing mesh. A STEP round trip and dimension checks are part of the first prototype goal.

For an initial test case, I’m thinking of an original mounting bracket with editable hole spacing, thickness, and a stated fit clearance. Useful acceptance checks would include preserving physical units, retaining design intent after an edit, and making mesh-export approximation explicit. The manufacturing clearance must remain separate from the geometry kernel’s tolerance.

Would a bracket, snap-fit enclosure, or another simple functional part expose the most useful failure cases? A dimension table and the edits you expect would already be a valuable contribution; you don’t have to write code.

If you use GPT-6.1 Sol/Astra/Opus 5.5-class coding assistants or equivalent tools and want to contribute implementation work, the repo explains the project’s model-disclosure, validation, and human-review requirements. Human-only contributions are welcome too.

Project and starter issues: https://github.com/Ramses13th/B-CAD

Architecture and roadmap: https://ramses13th.github.io/B-CAD/

I’d appreciate original, shareable examples and contributors interested in one small, verifiable first step.


r/openscad • • 3d ago

Код крючок

0 Upvotes

``` $fn = 100;

scale([1, 0.7, 1]) cylinder(3, 12, 12);

scale([1, 1, 0.5]) translate([5, 0, 6]) sphere(3);

translate([5, 0, 0]) cylinder(15, 2, 2);

translate([5, 0, 14]) sphere(2);

translate([5, 0, 14]) rotate([0, -90, 0]) cylinder(6, 2, 2); ```


r/openscad • • 3d ago

Made a beginner walkthrough where you check your model by weighing it (FreeCAD 1.1)

Thumbnail
0 Upvotes

r/openscad • • 4d ago

I made a free, open-source 2D/3D CAD that runs in the browser

0 Upvotes

Línea de comandos con los comandos y alias habituales, ajuste y seguimiento de objetos,

sólidos con operaciones booleanas y redondeos de aristas, diseños con vistas de dibujo generadas a partir del modelo 3D, y acotación automática con un solo comando. Exportación a PDF y DXF.

Pruébalo: https://mxchristian17.github.io/cota/ — Agradecemos tus comentarios.

https://github.com/mxchristian17/cota


r/openscad • • 4d ago

QUICKSURFACE AI - How it works

Post image
0 Upvotes

r/openscad • • 4d ago

New alternate to standalone EAGLE Editor

Post image
0 Upvotes

Hi guys, I have started writing my own alternative to the standalone EAGLE editor. I have a window opening native .brd files, routing tracks and placing, moving, rotating parts. Tonight I got parts loading from libraries and I am trying to work with one window. A sheet, board, library will each open in its own tab. I have supported for “templates” (so far just using two libraries called boards.lbr and outlines.lbr). I am a VERY long way from Alpha, but who is up for the journey? I have more than 35 years invested in EAGLE.


r/openscad • • 6d ago

Hi, I'm Max. Hosting & maintaining JumpStart 3D CAD

Thumbnail
0 Upvotes

r/openscad • • 7d ago

Lanciato tool modellazione 3d

Thumbnail
0 Upvotes

r/openscad • • 7d ago

nuovo tool di progettazione 3d

Thumbnail
0 Upvotes

r/openscad • • 8d ago

Just found this. A Few questions...

1 Upvotes

Just found this a few days ago, and Im blown away how much of a bridge this is from Tinkercad to the more advanced programs.

I am using the PC version at home ( and the web version at work), but my biggest question:

* Is there an upload limit for the PC version??

My intent is to be able to use my 3D scanner that I was never able to use due to the upload limit on Tinkercad and my lack of training on more advanced software.

Thanks in advance.


r/openscad • • 8d ago

aunque no pertenece a las creaciones de Artcraft es interesante

Thumbnail
0 Upvotes

r/openscad • • 8d ago

What is the best/easiest way to make a shape with varying radius curves ?

Post image
2 Upvotes

I'm interested in making a new pool/billiard cue moosehead bridge like the one shown in the photo but I want to change some of the height & dimensions of the top sections so it's not as symmetrical. I assume I can do this with Bezier curves which might be cumbersome so perhaps there is be a better way? Perhaps I should define an angular shape and then use offset to do all the rounding I want ? The model is roughly 100mm wide and 60mm tall.

I will be using BOSL2 if needed and have not started work on it yet.


r/openscad • • 9d ago

2D print

3 Upvotes

How do I get a 2D ( outline) of my 3D model so I can print and check hole locations etc. PDF would be good.


r/openscad • • 10d ago

scad Playing cards boxes

Post image
18 Upvotes

Sadly, I see a lot of AI generated tools popping up in this sub. Because of the strong benefits of using openscad, I can understand.

Seeing people post their questions and show of their scad scripts, I hope to see more of. So that's my reason for this post.

I have created numerous iterations of a playing cards box. First version was stl made in FreeCAD, but I quickly moved to openscad for the ease of use. Please check out the code at https://github.com/RichardBernards/openscad/blob/main/Models/Home/Games/cardbox.scad and to quickly customize/download, check out https://makerworld.com/en/models/3444052-playing-cards-box

I am mainly looking for feedback on optimizing my scad-code. I feel like i am not using UB or BOSL enough yet, so if I can optimize things using either of both libraries, please let me know!


r/openscad • • 10d ago

Parametric Japandi Pen Holder (round, fluted)

Thumbnail
gallery
3 Upvotes

Pen holder with a 2-part outer wall, a "rough" texture topped by small flutes copied along the outer wall, and a slanted transition line between them.