More intelligent Preform internal supports

Preform is always getting better, but opportunities remain to make it more intelligent in handling internal supports.

e.g. Here’s part of a model I recently worked on. It’s a tricky one with lots of internal overhangs. I placed some internal supports with small touchpoints near the toes.

Preform routed all the supports in this region to the same spot in my model, but passed up a terrific opportunity to combine them all into one (or maybe two) stem contacts. Instead, I have I wall of material to cut away along the bases of these internal supports.

Also, instead of coming to a pointy tip, some of the supports were generated as simple straight cylinders. I recognize Preform has to do this in some occasions when the constrained by the model geometry. However, the surrounding supports (of similar height) were able to generate normally. If Preform were clever about combining the bases of proximate internal supports, I wonder if that might also empower it to better honor the users’ intended contact size in scenarios like this.

Separately, I’ve also noticed Preform place vertical internal supports where external supports with a slight angle would do. I expect this is because it wants supports to hang straight down. It might be worth looking at whether you can implement basic “wrap around” logic where slight deviations would allow you to drastically cut down the internal supports. In my existing model, I have 3 or 4 supports routing to the inside of the sword, but there’s lots of room to go around it to either side.

I recognize these may not be straightforward ideas to implement, and that using an alternate orientation and other touchpoint locations is one way deal with this today. But that’s not always easy to do (e.g. if you’re just about finished creating all your custom supports and just need to fix up a few problem ones, starting from scratch with a new orientation is very tedious).

ps. In case you’re about to suggest it - in this case I did try upright orientations first, but they result in many more interior supports (and loads of opportunity for “wrap-arounds”).

Here’s a better example of what I mean by “wrap around”:

Preform put internal supports under the money bag, but on the right you can see I was able to combine them into one and route the stem slightly back and down around the leg.

Maybe before creating an internal support if Preform did a limited search of nearby candidate positions that might let the pillar through? Sometimes your touchpoint has to be at a specific spot (e.g. an unsupported “island”) and you just want to give the column a little nudge over to avoid the internal support. Food for thought.

In case anyone’s interested, here’s that whole part with my custom support structure. This example is much more complex than what I’d expect Preform to generate, but it gives an idea of the utility. It just takes care of the spots that would require internal supports (and some other problematic areas); the rest of the scaffolding is generated in Preform. Most of the touchpoints are around 0.1mm, with a few larger ones up to 0.3mm, and it printed perfectly.

This is after the supports were removed but no other cleanup. There would have been potmarks had I used normal internal supports.

Sorry for the lack of scale. The whole model is about 3.5cm tall (pretty small!) and those layer lines you see are 50μm.

EDIT: One in Grey, still on supports (though some of the ≤0.15mm ones detached in the wash):