[OpenSCAD] User Poll: What do you want to see from OpenSCAD development?

Jordan Brown openscad at jordan.maileater.net
Sat Nov 9 21:47:55 EST 2019

Not that I've seen a real problem with bugs, but I'm always in favor of
stability over almost everything else.

Mostly, I'm pretty happy.  I can't say that I've tried very many
alternative tools, but so far none have even started to tempt me away
from OpenSCAD.

Well, when I wrote that I had blissfully blocked something out.

Somebody helpfully added tab support, and demoted multi-window support
to a second-class citizen.  Tabs are for phones and tablets, where the
screen is small and everything needs to take up the whole screen.  I
have dual 32" monitors, and I keep thinking about going to 40" or more. 
(Hint:  TVs make great monitors, and they're cheap.)  Depending on the
model, I can easily put up three or more instances of the UI - and I
want to be able to look at them all at the same time.  I want to be able
to edit a library in one window, save, and then refresh a consuming file
in another window.  It seems like it should be straightforward to
support both multi-window and tab operation - have a preference toggle. 
Toggled one way, File/New and File/Open open in new tabs; toggled the
other way they open in new windows like they used to.  Or maybe it just
toggles which menu items Ctrl+N and Ctrl+O are bound to, or swaps the
two sets of menu items.  But don't remind me every time that I want to
work on two files that I'm a second-class citizen, especially when the
old behavior was the way I liked.  https://xkcd.com/2224/ comes to mind.

On to lesser (but harder) things:

I'll start with language, because I know that's what you're really
interested in.  Not that these are really my top "wants":

  * Make variables behave like variables.  Not going to happen, I know,
    but quite possibly the single most frequent question on this mailing
    list, especially when you factor in the need to use recursion or
    list comprehensions instead of more obvious iterative solutions. 
    Maybe there could be a big switch, or maybe a way to declare a
    non-constant variable?
  * Structures.  Yeah, you can simulate them with arrays, more or less.

If I had to pick a single set of things that I'd like to see improvement
on, it would be the handling of what are currently considered "errors"
in the model - non-2-manifolds[*], polyhedra with their surfaces twisted
wrong, and Z-fighting over zero-thickness sections.  Those are all easy
traps for the novice to fall into and not immediately obvious.

    [*] I should note that I'm still hazy on the concept of
    manifold-ness, so I might use the terms wrong.

There's no intuitive reason why this model is a problem:

    translate([1,1,0]) cube(1);

Nor this:

    difference() {
    	cube(2, center=true);
    	cylinder(d=1, h=2, center=true);

Nor this:

    points=[[0,0,0], [0,0,1], [0,1,0], [0,1,1], [1,0,0], [1,0,1], [1,1,0], [1,1,1]];
    faces = [[0,1,5,4], [0,2,3,1], [0,2,6,4], [1,3,7,5], [2,6,7,3], [4,5,7,6]];
    polyhedron(points, faces);

Yet they all fun afoul of these geometric ... quirks.

And yes, I know that the expertise required to address these issues is
very different from the expertise required for language enhancements. 
And some of it might need to be in the consuming applications (like
slicers).  And some of it might be PhD thesis material.

Beyond that, I'd like to see better integration between CAD programs
like OpenSCAD and slicers.  I'd like you to be able to change a design
in OpenSCAD and "refresh" the slicer so that the old model is replaced
by the new.  Some aspects of that are easy:  retaining translation,
rotation, and scaling; maybe retaining print settings.  Some are harder,
like arranging that the model is on the print bed even when its lowest
point moved up or down.  Some are probably nearly impossible, like
retaining support designs.  Probably this is mostly on the slicer, but
maybe not.

Along the same lines of integration with slicers, it would be nice to be
able to incorporate slicer controls into the model definition, so that
you don't have to have both the .scad file and a separate file that sets
up the slicer.  Perhaps, for instance, there could be annotations that
you could add in OpenSCAD that the slicer would read.  Start with
rotation, translation, and scaling, so that you can be looking at the
object in its "use" orientation in OpenSCAD, but it would automatically
adjust to its "print" orientation in the slicer.  Continue with, e.g.,
slice thickness.  This would address some of the "refresh" functionality
desired above.  People with mills instead of 3D printers might be
interested in similar functionality to allow cut descriptions to be
embedded in the model design.

If I ever buy a dual-extruder printer, some kind of direct support for
that will immediately jump to the top of my list.  I don't know what it
looks like, because I don't know what dual-extruder slicers look like,
but I know that I'll want to be able to directly say "build this shape
using extruder 1 and this shape using extruder 2".

I'd consider working on some of this (especially the tab thing), but I
don't want to have to set up a Linux system to do it.  Is building on
Windows really as fragile as
suggests?  (I suppose maybe I could run a Linux VM under Windows with

That's all I'm coming up with.  And again, with the exception of the tab
stuff mostly I'm a happy camper.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscad.org/pipermail/discuss_lists.openscad.org/attachments/20191110/65664eb7/attachment.html>

More information about the Discuss mailing list