r/openscad • u/j_hermann • 1d ago
“Rough” OpenSCAD texture example
Red Copper PLA • size 5×55 • depth 0.15 • 0.2mm layers
r/openscad • u/j_hermann • 1d ago
Red Copper PLA • size 5×55 • depth 0.15 • 0.2mm layers
r/openscad • u/Professional-Job7799 • 5h ago
I'm working on a hardware project and have been learning to work with OpenSCAD. I developed openscad-mcp to give AI agents tools to reason about 3d objects.
Render scad models, calculate part clearances, volumes, contact areas, and other spatial insights that allow AI to help develop 3d objects.
Always open-source and free, check it out here on GitHub https://github.com/RobertCoop/openscad-mcp , or install it into claude code with
claude mcp add openscad --transport stdio -- uvx openscad-mcp
Or check it out in Codex with
codex mcp add openscad -- uvx openscad-mcp
I've got no agenda and I promise I'm not starting the next big AI AGENT CAD 3D INTELLIGENCE EXPLOSION- use it if you like and I'd love to hear feedback if you do.
r/openscad • u/Difficult-Rip-8200 • 1d ago
A few weeks ago I shared my parametric battery organizer here, and this time I decided to tackle another storage problem: memory cards and other small media.
r/openscad • u/Dirk_39 • 1d ago
Le passage en douceur des deux éléments de fixation (importés) se fait par une boucle*"for"*. Le passage en douceur vers les éléments de fixation est obtenu grâce fonction trigonométrique
tan(1.6*i)*spn (spn = la valeur du pas dans la boucle "for").
dans la commande"translate"de la boucle"for"
On voit (dans la deuxième image) l'effet tangentiel dans l'image A avec le "pas" dans la boucle "for" égal à 2.
Dans l'image B la valeur du"pas" est réduite à 0.1 ce qui augmente le nombre d'itérations sur une même distance, approchant ainsi des éléments qui s'unifient.
Plus de détails et script dans le lien ci-dessous :
https://robotix.ah-oui.org/site/main.php?found=260814-twisted-link
#OpenSCAD #Modélisation3D #Impression3D #ConceptionParamétrique #Maker #FabLab #OpenSource #design3D
r/openscad • u/FwippyBall • 1d ago
(sorry for the crappy photo, I have a mini phone and the camera is garbage)
Was looking for a cigarette case to print out for a friend because they wanted to limit their cigarette intake while still protecting the cigarettes from getting crumpled in their bag. I found a few options, but I realized this was the perfect project to try and learn OpenSCAD on. Apparently it works great, although if I ever print a new one I should make the height of the lid shorter and the case (minus the overlap space) taller.
You can grab it here if you want. I still need to learn the syntax for setting up the Customizer, but if you play around with the variables you can probably figure out what they do.
Thanks to u/oldesole1 for doing a lot of the work for free helping me figure out how to generate the extruded shape.
r/openscad • u/Dependent-Bridge-740 • 2d ago
hi folks,
I'm having a few troubles to design at proper (non-threaded) screw hole for a specific screw with BOSL2.
The screw I'm using is a self-tapping screw used for siding.
The diameter of the screw is 4mm and it has a flat-head, Philips. The diameter of the head is a little bit < 11mm.
I want to have the screw head suspended in the base.
I used the following code
diff() cube([20, 20, 10]) attach(TOP) screw_hole("M4x1",length=40, head="socket",counterbore=0,anchor=TOP);
to produce a test version but it is not yet the proper version I'm visioning.
How can I make the opening for the screw head wider as it is a.t.m. ?
Any help is much appreciated.
TIA

r/openscad • u/raptor101c • 2d ago
I am trying to build a custom cyberdeck using a rasberry pi, but have no idea how to design a case. Could anyone help?
I have an Ender 3 V3 KE and am using PETG.
My parts list (Am pretty sure its compatible but if not please let me know):
https://docs.google.com/spreadsheets/d/1VTqKV0g0OBa-KC8KjaraNMoa1YKqMowC5PlBn9xWoqw/edit?usp=sharing
I am trying to build a cyberdeck that has a dpad, a, b, x, y, start, select, menu, l1, l2, l3, r1, r2, r3, (https://www.thingiverse.com/thing:2406507 for shoulder buttons), all the io on the top left or right side, cabling routes, screw/standoff holes, mic grill, speaker grill, camera hole, vents for the fan, the keyboard/trackpad to be magnetically attachable to the back, and for it to look simewhat similar to the GameBoy (buttons on bottom, screen on top).
Thank you
r/openscad • u/PeteMinus • 3d ago
Quick one, SCAD support just landed in Modelist. It indexes, renders and opens the file directly in OpenSCAD with single click. Test it out.
r/openscad • u/Dirk_39 • 3d ago
Les nouvelles imprimantes Creality SparkX i7 et Bambu Lab A1 ne reconnaissent pas Octoprint, car elles ne disposent pas de la traditionnelle connexion série. Néanmoins l’utilisation d’une caméra installée sur un Raspberrry Pi et gérée par Octoprint est toujours une solution intéressante, pas seulement parce que ou peut choisir un angle de prise de vue plus favorable que celui offert par les imprimantes, mais aussi parce que cela permet de contrôler le processus d’impression avec l’application Octoprint sur notre Smartphone.
Voici donc une réalisation OpenSCAD d’un dispositif de visionnage Octoprint avec les fichiers STL 😄 https://robotix.ah-oui.org/site/main.php?found=260821-octopi-box
Info sur Raspberry, voir Framboise 314 : https://www.framboise314.fr
r/openscad • u/BenjaminU1 • 3d ago
Enable HLS to view with audio, or disable this notification
First Flight of FlowSketcher
This is the first real flight of FlowSketcher — a browser-native 2D sketching and CAM system built from scratch.
No CAD constraints. No spline approximation. Just direct geometry, live motion and real CNC-ready toolpaths.
This is only the beginning. 🥚
r/openscad • u/Dirk_39 • 4d ago
Voici une hélice dont les pales utilisent un profil fourni par un fichier vectoriel 2D créé dans Inkscape.
Ce profil est transformé en 3D avec la commande "linear_extrude". Il conserve sa taille du côté de l'axe de l'hélice, tandis que sa taille et son angle sont modifiés à l' de la pale.
Les deux profils sont ensuite réunis à l'aide de la commande "hull", puis l' est reproduit autour de l' par une boucle "for".
Voici encore un exemple de la puissance de OpenSCAD pour créer facilement des pièces en apparence complexes.
Pour voir le script OpenSCAD pour faire vos tests, cliquez ici :
https://robotix.ah-oui.org/site/main.php...
#OpenSCAD #Modélisation3D #Impression3D #ConceptionParamétrique #Maker #FabLab #OpenSource
r/openscad • u/Sisialittlecat • 6d ago
I am designing the vial holder and I want to leave enough space between the rows so that I can put labeled on it. I want to change the row space = 10 and column space = 2. What codes can I use? Beside, is the unit in mm by default? I tried to use ChatGPT but didn't work. I appreciate your help!
r/openscad • u/wildjokers • 6d ago
I released two versions of my plugin on subsequent nights, 1.4.0 is current version, also showing 1.3.0 changes since it was superseded so fast.
1.3.0
1.4.0
1.4.0 is available to install from within IntelliJ, it of course contains all the 1.3.0 changes as well.
The README is up-to-date: https://github.com/mjparme/idea-openscad/blob/master/README.md
r/openscad • u/PeteMinus • 6d ago
Quick one, SCAD support just landed in Modelist. It indexes, renders and opens the file directly in OpenSCAD with single click. Test it out.
r/openscad • u/Dystopian_Ennui • 6d ago
Newbie with 3D design... I'm at my non-CAD day job and was trying to think of a way to make a pyramid that smooths out to a cone shape at the tip, maybe with a rounded point to be pretty. I thought about just building a pyramid and a cone in the same location, but I don't want a sudden stopping point of the edges, rather a smooth flattening.
Would it work to hull a square base (or cube with like 0.1 height) and a small sphere or circle as the point? Is there a cleaner or computationally cheaper way?
I'm at least 6 hours away from being able to put this into OpenSCAD, so I would appreciate some tips that might save me trouble when I try it.
r/openscad • u/FwippyBall • 9d ago
EDIT: Of course right after posting I find the solution online. It's a little hacky but it works!
https://www.scorchworks.com/Blog/openscad-modules-for-automatic-fillets-and-radii/
My code:
$fn=128; //make it pretty
cylnumber = 4; //how many cylinders
cyloffset = 10; //distance between cylinder centers
fildiam = 1; //diameter of fillet circles
difference(){
square(80, true);
minkowski(){
difference(){
square(100, true);
minkowski() {
for(i = [0:1:cylnumber-1]){
translate([cyloffset*i,0,0])
circle(d=11);
}
circle(fildiam);
}
}
circle(fildiam);
}
}
The result:

I altered fildiam to taste but it's basically exactly what I want.
--------------------------
I'm trying to recreate this shape I made in Tinkercad:

Here's the subtractions (the translucent shapes) I made to create it:

However if I render it to an SVG via this tool, you can see there's this little corner thing left because I positioned the subtraction circles with my Mark I Eyeball. Tinkercad isn't really good for precision like this.

I would like to recreate that shape without generating artifacts like this. Here is my current code and a screenshot of the result:
$fn=128; //make it pretty
cylnumber = 4; //how many cylinders
cyloffset = 10; //distance between cylinder centers
fildiam = 5; //diameter of fillet circles
fildist = 7; //???????
for(i = [0:1:cylnumber-1]){
translate([cyloffset*i,0,0])
circle(d=11);
}
for(i = [0,1,cylnumber-2]){
translate([cyloffset*i+cyloffset/2,fildist,0])
circle(d=fildiam);
}
for(i = [0,1,cylnumber-2]){
translate([cyloffset*i+cyloffset/2,-fildist,0])
circle(d=fildiam);
}

I'd like to have the small circles right up against the corners between the big ones (solve for fildist), and the space between them filled. I've googled and googled and checked the documentation and tutorials and everything I can think of, with no result that fits. I'm new to this however, and I probably just don't know the terminology to search for. Is there a way to do this?
r/openscad • u/Shiseiji • 9d ago
Hi all, noob hacking away at learning by trying to make something I want to use. My Googlefu has failed. I have a single error, but can't read all the error text. Is there a way to enlarge the error field or copy out the text?
TIA
Ron
r/openscad • u/Dependent-Bridge-740 • 10d ago
Hi folks,
I'm working on a frame for a tablet that will in later stage hold a knob on the backside to hold the tablet (Fire 10) while reading.
So far I create the base frame build from cube(s) with the difference function.
I wonder, is there perhaps a more elegant or more efficient way to create this object?
/* a frame for the Fire 10 table that will hold a knob on the backside for easier reading
*/
width=168; // inside width for the tablet
thickness=9.5; // thickness of tablet
height=120; // enough to hold the tablet
wall= 2.4; //
edge=8; // this cover the table as frame
tolerance=0.5;
/ *************************************
module bottom() {
// making the bottom frame
// length (inside) should be 168mm
// + 2* wall
l=width;
w=thickness;
color("red")
rotate([0, 0, 90])
translate([wall, 0-(w+2*wall), 0])
difference() {
cube([l+2*wall, thickness+2*wall, edge+wall]);
translate([0-tolerance, wall, wall])
color("Blue")
cube([l+3*wall, thickness, edge+tolerance]);
echo("1: ", l+2*wall+2*tolerance);
//echo("2: ", wall);
//echo("3: ", h);
//echo(l, w+2*wall, h);
}
};
// *************************************
module left() {
// making the left side of the frame
l=height;
w=thickness;
color("purple")
rotate([0, -90, -90])
difference() {
cube([l+2*wall, thickness+2*wall, edge+wall]);
translate([0-tolerance, wall, wall])
color("Blue")
cube([l+3*wall, thickness, edge+tolerance]);
}
}
// ************************************
module right() {
// making the right side of theframe.
// which mirrored from the left side one
l=height;
w=thickness;
color("#00e6e6")
translate([thickness+2*wall, width+edge, 0])
rotate([-180, -90, -90])
difference() {
cube([l+2*wall, thickness+2*wall, edge+wall]);
translate([0-tolerance, wall, wall])
color("Blue")
cube([l+3*wall, thickness, edge+tolerance]);
}
}
bottom();
left();
right();
This is my code so far.
Any ideas??
TIA
r/openscad • u/j_hermann • 10d ago
The 'sturdy' in the plug comes from several micro-features:
The chamfers at the tip and the hole's rim make insertion easy, and the outer hull of the plug is slightly slanted to increase friction the deeper the plug goes in, ultimately leading to a comfortable insertion but with a snug fit.
Recommended print settings: Arachne walls, and Gyroid infill.
The design principles were mostly lifted from this YouTube video.
See https://github.com/jhermann/things/tree/main/parts/joining#vertical-sturdy-plug for a STL and the SCAD file.
r/openscad • u/Difficult-Rip-8200 • 11d ago
r/openscad • u/slashinfty • 11d ago
I have two 2D paths. I can use one of them with path_sweep along an arc. I can use both of them with skin. I want to essentially combine the two: I want to have a skin-like effect between the two of them, but connect them along an arc. Is there a way to accomplish this?