Wednesday, 21 September 2016

Looking for better design options and better slicers... and then, stop

I've had a lot of fun designing things in OpenSCAD, but I'm also running up against its inherent limitations. Doing anything organic-looking is difficult, because the little tweaks that make it look "right" have to be done via changing the program and recompiling.

I used to be the maintainer of Dia back when I needed diagrams for various papers. One of the things I liked in Dia was its approach to Bezier curves. For either loops or open curves, you could control each point finely, and switch between symmetric, smooth, and sharp corner for each. I pretty quickly got a feel for how to create the curve I wanted.

Now that OpenSCAD is my tool and physical items my eventual outcome, I find making equivalent figures a royal pain. For instance, I wanted to design something similar to this sketch:

Trying at first with simple polygons and the offset() function, I found it too blocky, unless I spent a lot of time interpolating points by hand. Next, I found a splines library on Thingiverse, and got fairly far with that. However, splines tend to "push" their neighbors a lot, so I ended up with unpleasant overshoots making the parts not exactly the same thickness:

This is three spline loops overlaying each other: One from the top point over the middle to the lower-left corner and back, one around the two right-hand points, and one across all three points and the lower-left corner. You can see the problems around the middle point, where the two smaller loops poke out a bit, and in the lower right part, where the bigger loop shoots out more.

There's also a Bezier library, which creates one Bezier segment at a time, again from programmed points.

In Dia, it would have been easy to get the corners and endpoints right by controlling each corner accurately. Unfortunately, 1) Dia doesn't run on Mac except through XQuartz, which is an unpleasant experience (same with Inkscape), and 2) Dia doesn't export to OpenSCAD points. The latter could be fixed, though with more coding than I want to do today. The former is more tricky, and in either case it's not the greatest way of working either: You can get the base structure right in Dia, then you'd export as an OpenSCAD set of Bezier definitions, take that into OpenSCAD and try it there. Any further modification you'd have to either do by fiddling constants (in which case your Dia diagram becomes outdated) or going back to Dia and rework it from there, then exporting again.

What I would like would be something that can edit parts of an OpenSCAD program interactively. It'd be OK if they were limited to a few kinds of things, like beziers and polygons, and obviously the parts would have to be "simple", not involved in minkowskis and hulls and such while editing. Maybe something that just lets you interactively edit points in a section of an OpenSCAD program text.

I've also started trying out other slicers and printer controllers, since Slic3r doesn't do the supports for a new extruder holder at all well.

Cura: I know several people who use and like this. It has a nicer interface than Pronterface/Slic3r, very few options compared to Slic3r (which is good if those are the right options), but hangs at "Preparing to slice..." (no a MacBook Air). This might be a security blockage if Cura tries to call out to a separate binary. Or just a bug. They claim it's fixed in release 2.2.

CraftWare: Hadn't heard of this one before. Can't run this on my work laptop (yet) for security reasons.

NetFabb: The professional choice. And by "professional" I mean bloody expensive, €1000/year subscription. Hahahano.

Repetier: Can't run this on my work laptop (yet) for security reasons. Also, the Mac version is quite a bit behind the Windows/Linux versions. It allows remote control, though with limited features for the free version.

Simplify3D: Like Cura, I keep hearing mentions of this. It's not free, but at €149 isn't not outrageous. And at least it's not a subscription system. I paid that much for Lightroom and never regretted it. The Mendel90 is supposedly supported, but it won't run on a Raspberry Pi. Unfortunately, they don't have a trial period, so I'm going to try other approaches first before handing over money.

KISSlicer: Supposedly going to be available for Raspberry, which is nice. Can't run this on my work laptop (yet) for security reasons.

MatterControl: Won't install in a specified subdirectory on a Mac (in any way I have found). Since I use a work laptop, I have all my apps in an Applications folder under a separate non-privileged user, and refuse to give root access to installers (like Adobe's CloudCrap installer which is required for Lightroom 6).

Slic3r: At least I know this, and it integrates with OctoPrint, which I am looking at switching to for running print control on a Raspberry Pi.

At this point, printing grinds to a halt as my work laptop gets beefed up security and can't print or upload firmware unless I get a security exception. Pronterface on my iMac doesn't yet like to connect, nor is Arduino set up to understand a Melzi. I shall have to see my earlier notes if I wrote down what actually worked.

1 comment:

  1. Curves: I wrote
    I do however use Onshape a lot now, and although infuriating in other ways, does have curves or splines of some sort.

    Cura: Use Lulzbot Cura, it's consistently less broken. It works on MacOS for me.
    S3D: I've touched this. It does produce some slightly better slices when there are thin walls or top surface nozzle drags matter.