Customizer Update

by tbuser

Customizer now runs the new version of OpenSCAD 2015.03

Also, all the google fonts from http://www.google.com/fonts have been added to the servers and can be used in text() :)

View Comment


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

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

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

Make something for me (and everyone else)?

by TeamStarr

Building customizable shape that can be used in TinkerCad or other simple software.
I need a simple shape generator that can create a series of points on its up-facing surface. I imagine using this as a simple "tree support" generator for Slicing software that can not make "tree supports."
For example I could put a circular disk down on the workplan and the pull the shape up to make it taller. As I pull it up, spikes/points would be created.

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

What does this error mean?

by Watcher_

Hi all,

Ive imported an STL file into my scad design which is resized and rotated.
Preview works fine with no warnings but then I get this error message on compile.

ERROR: CGAL error in CGAL_Nef_polyhedron3(): CGAL ERROR: assertion violation! Expr: e_below != SHalfedge_handle() File: /mxe/usr/x86_64-w64-mingw32.static.posix/include/CGAL/Nef_3/SNC_FM_decorator.h Line: 426

Can anyone help get round this?

View Comment

Help with lifting arm - modification

by supercop89

Dear community,

i would need your openscad skills for a little modification of a lifting arm.

Attached you will find the original file.

My target is to extend the length of the lifting arm with 1.5 cm (15 mm).

Can anybody help me with openscad to solve this issue?

Thanks in advance for your great support.

Best Regards,


modification problem
View Comment

Customizer not working?

by MDof2

Is there a known issue with the customizer? I've added things to it and are sitting in the queue processing. Some for days, weeks and hours.
Am I doing something wrong? Or is there a known issue with it?
How long does an average customization take to generate the downloadable file?

View Comment

Multi-mode Polygon Rounding Funciton (11 modes)

by rasarmg

Worked on a library a few years back and there is a polygon rounding function hidden inside that I find myself using frequently so decided to pull it out and share it standalone.

A basic example of its use and rounding modes:

include <polytope.scad>;

m = 25;
cord = [ [0, 0], [0, m], [m, m] ];

for ( x = [1:4], y = [1:3] ) {
  vrm = x + (y-1)*4;

  translate( [m*(x-1), m*(y-1)] * 1.5 )
  polygon( polygon2d_vertices_round3_p( c=cord, vr=m/4, vrm=[vrm,0,0] ) );


Have a look, comment, and submit recommendations...


by rasarmg
openscad polygon polygon_rounding
View Comment

Code to make a 5 strand braid

by OpenScadDad

Code to make a 5 strand braid


This braid was made using the code below. The wave(th) polynomial was fitted to phase angles where the Z height needed to peak or trough. The slope at peaks and troughs was also forced to zero.

To make the braid longer, change the value 360 to a larger number in the "for" loop. You can also raise the "faces" number to get smoother spheres and change the "step" to a smaller angle to make the spheres go closer together.


for(th=[0:step:360]) {
translate([th/PI,20sin(th ),wave((th+168 )%180)])sphere(2,$fn=faces);
translate([th/PI,20sin(th+72 ),wave((th+168+72 )%180)])sphere(2,$fn=faces);

function wave(th)=(((((((1.53850006563052E-16th-1.27387805434208E-13)th+4.34669346542468E-11)th-7.88147244501425E-9)th+ 8.16830636022657E-7)th-4.84392712381305E-5)th+1.54722865226176E-3)th-2.17013888888711E-2)th*th+1;

Five strand straight braid with code
View Comment