by atartanian

OpenSCAD is an open source programming language and IDE (Integrated Development Environment) for parametric 3D design. It is used to create precise, customizable and easily modifiable designs ready for 3D printing. It has a growing developer community and is the tool used to create designs compatible with the MakerBot Customizer app: http://www.thingiverse.com/apps/customizer

You can download OpenSCAD from www.openscad.org/downloads.html

This group is a place to discuss all things OpenSCAD including (but not limited to) new features, techniques, questions, libraries, works in progress, etc. So post a new Topic or contribute on an existing one!

Share knowledge, get constructive feedback, and ask questions!

Join to add your OpenSCAD designs or libraries to this group's Things. Non-OpenSCAD designs will be removed.

Have fun!

View Comment

heart made with onpenscad

by XcinnaY


I would like to make a 3D heart with openscad.
I found the equation https://mathworld.wolfram.com/HeartSurface.html

How can I make a polyhedron from it ?

equation formula Heart polyhedron
View Comment

Object Oriented Programatic Modeling

by txoof

Is there a good OpenSCAD like programatic modeling package that uses a more OOP paradigm? OpenSCAD is really amazing. It's my go-to for pretty much anything Laser cut or 3D printed. The ability to easily tweak a variable and have the model restructure around that tweak is incredible. For more complex models it would be great if there classes and objects to simplify the code and make modules more recyclable.

Has anyone used an OOP style modeler? I just found CoffeeSCAD. It's a blend of OpenSCAD and Javascript. It supports classes and objects and looks amazing. Unfortunately it only runs in a web browser (ick) and the last commit to the git archive was in 2013.

Do you all have any other suggestions?

View Comment

BOSL2 and dovetails

by gandalf123

Ok, i need help. I'm trying to create something like an "hook" (wrong term) with 2 dovetails in the opposite side, so that the object with the male dovetail could be fitted in both direction, normally and upside down.

The top dovetail is working, the bottom one seems a little bit too small, but i'm unable to figure out why.
Probably there is some bad measure that i'm using to create or position the dovetail.

Any help ? (the code is a mess, i've tried to clean a little bit for posting, but it's an extract from a bigger project)


main goal is to have the male dovetail with a little bit friction, easily movable by hand (but not by gravity) (i can change the female, but not the male, because it's already printed)

View Comment

How to use the Customizer if my thing uses a lib (BOSL2)

by ronoaldo

I have implemented a customizable collapsible light saber, which is now available here: https://github.com/ronoaldo/things/blob/main/light-saber/light-saber.scad

I ended up using a library to implement the threads (that I'm test printing now to validate before publishing here). If I include a library, how does the customizer app handles that? Is it possible to deploy it this way, or do I need to implement something different to achieve that? The specific library I'm using is the BOSL2.


View Comment

hex pattern with rounded corners

by gandalf123

asking also here because i prefere openscad to tinkercad for this thing.

Do you know how to create a pattern similar to this?

i'm able to create the hex pattern, but I don't know how to enclose them with a border, if you look carefully, corners are rounded and there are some cutted hexagons all around.

View Comment

OpenSCAD in Blender

by emogenet

Hi folks,

Long time user of OpenSCAD here, which - as someone with a coder background - is my favorite tool for creating quick CAD-like objects.

However, I am also a very long time Blender user, which IMO is unparalleled in the FOSS world for many things, but specifically for 3D navigation and interacting with 3D geometry in general.

So, I’ve had an itch I wanted to scratch for a very long time: the power and quickness of OpenSCAD for modeling, married with the power and depth of Blender for 3D navigation (and many other things).

I’ve started experimenting with the idea, and while there is still a lot to do and a lot to figure out and optimize in terms of workflow, I have built something that has reached usability level.

If you guys want to take a look, here’s what that looks like:

https://www.youtube.com/watch?v=aZq8ZlmqHJo (watch in 2160p if you can)

There are a lot more that needs to be done to make it as (or even more) usable as the native OpenSCAD GUI, but I plan to get there in the coming month.

Would love feedback / ideas.

View Comment

Is there a way for the code to read the name of a variable?

by SavageRodent

I'm aware there are workarounds to this problem, but I was wondering if it is possible to read/extract the name of a variable, not just its value?

box_height =24;

function aboutVariable(X)=
echo(str("This variablei's name is ", extractName(X), ". value = ", X));

aboutVariable(box_height); // = "This variablei's name is box_height. value = 24"

View Comment

Quirks of argument input format

by SavageRodent

Hay guys, I only just noticed these quirks to do with inputting arguments, and was curious to know what other people made of them, would you consider them bugs?

Within the parenthesis of a function, If you put a labeled variable in front of an unlabeled variable, (even if it is in sequence) this seems to foul up the operation.
The label might be redundant, but I don't see any need for it to break the code. see (Example 1)

I've only looked at the one shape but I notice with the cylinder that without labels the second vale is assumed to be "r1" rather than "r", which means there is no specified value for "r2" so it is given a default value of 1. see (Example 2)
I think this one probably does constitute a small error.

// Example 1
function add(a,b,c)= a+b+c;
echo("test 1 = ",add(a=4, b=4, c=4)); // = 12
echo("test 2 = ",add( 4, 4, 4)); // = 12
echo("test 3 = ",add(a=4, 4, 4)); // = undef
echo("test 4 = ",add( 4, b=4, 4)); // = undef
echo("test 5 = ",add( 4, b=4, c=4)); // = 12
echo("test 6 = ",add( 4, 4, c=4)); // = 12

// Example 2
cylinder(h=10, r=2); // fine
translate([6 ,0,0]) cylinder( 10, 2); // wtf?
translate([12,0,0]) cylinder( 10, r=2); // fine

View Comment