100 Micron Base + Supports Optimization

The support structure base does not need to be printed at 50 micron or 25 micron resolution. The base and the supports should always be printed at 100 micron resolution until several layers before the actual part begins to print, at which point the requested layer thickness should engage. This will reduce wear on the PDMS layer for 50 micron and 25 micron prints as well as speed up the print process in general.


Great idea but once the part itself is in the same build layer as the supports then the support will be the same resolution as the parts resolution. Wouldn’t think it’s possible to have multi resolutions on the same build layer. Nice to rough out the base though great idea.

I like it. Great idea

Yep, this is a fine idea, and one that has come up a number of times. From the discussions I’ve heard about it, it’s somewhat more complex than it sounds, but nonetheless something that is certainly on our radar.

@KenCitron, Not being able to do multiple resolutions per layer comes up on on these topics every time, and that is correct. But if the first layer starts at 1cm, then the transition would be there and it would go into effect for the remainder of the partial-printed supports too.

@Sam_Jacoby, it is a bit complex in the fact that you can only transition on layers that are multiples of all the resolutions (multiples of 0.100). So once it has detected the lowest point of the model it may need to pick a point down a bit to hit a multiple of 0.100. This fairly simple feature might be a bit intensive to work into firmware that wasn’t designed for it though. but doable.

I absolutely think this is a great idea, and was just going to do my own post suggesting it. All layers that are just support material should print at the lowest possible resolution, and then the software should switch to the set resolution when the actual part approaches.

I personally hate waiting nearly two hours for a .025 print to get high enough out of the resin before I can even tell if the base has adhered to the print platform.

I don’t think you need to care about this, Josh. The only requirement needs to be that the final print step size is smaller than the initial step size, they don’t need to be “harmonic”.

The printer simply steps at the higher base/support step size until the next step (at that larger step size) would put that next layer at a height above the first layer of the actual object. At the point where this condition is met, the printer switches to the object’s smaller step size for all the remaining steps. There may still be some additional layers of support to print before hitting the first layer of the object, but you still get most of the speed benefit of printing the base at a higher step size.

Yes, if the two step sizes aren’t “harmonic” you introduce an error in the overall height of the finished print. But so long as the transition between step sizes occurs prior to printing the first layer of the object, it doesn’t affect the thing you actually care about. remember, each step is relative to the last position, not an absolute reference. The object prints at a height above where the error is introduced, and at its smaller step size in its entirety. The error is “invisible” to the final print (other than the distance from the base to the first layer of the model might be a little off, but who cares?).


As far as results, yes you are right. But I was talking the logic of the software. Assuming the logic first slices at 25 micron, then it discovers the lowest layer containing the model is 923. That’s not a multiple of 100 micron so the transition point needs to be adjusted downward to a multiple of 100 micron.

This will be fine… the half time on print its for creating supports. (depends on hight of the object)

I think that its not needed to detect where its the lower point of an object, all data its on software settings to generate the supports, exactly on “Layer thickness” and “Hight above base”.

For example
If “Layer thickness” settings are 2mm and “Hight above base” are 5mm, the object begins at 7mm, may be the transition to high detail could be at 6mm to get some to transition.

The problem could be if the supports are not generated by Preform software and you include it on desing. In this case the software cant detect where objects begins. In that case the software could swicht off this option feature

I dont know if Im explain it well in english… sorry… :smile:

It’s not that big of a deal to pull off, actually.

What you do is - do a prepass, look for the first interface between supports and the object, and save that height. Then you do the actual slicing pass and check whether current height + 0.1 <= saved interface height. If FALSE, you switch to 0.025 (or 0.05) layers and continue slicing.

Edit: and this is solely a slicer thing, firmware doesn’t care about layer height, it just lifts the Z axis by as much as requested. Unless it was written bizarrely and requires the Z increment to be unchanged from start to finish, which would be an oddly inflexible implementation.

As an embedded systems professional, I suspect in the firmware each layer thickness (distance to move the z axis) is not embedded into each slice. I’m guessing in the header of the information they pass to the printer is a 2-bit field that says 25 micron, 50 micron or 100 micron. If this is true then they would have to change quite a few things in the firmware to put the slice thickness information in each slice.

While your statement is entirely possible, I would assume the controller code format would be g-code, or a g-code derivative for several reasons:

  1. why reinvent the wheel
  2. working converters are already out there to use
  3. they’re a startup, and time to market was critical

In g-code, some commands are modal and remain in effect until cancelled or replaced. With that in mind, between the layers at .1 and .25 could be a modal z-height increment replacement. More than likely though, the z move is actually specified every layer.

My incomplete pseudo code guess would be something like:

peel motor rotates n times at m speed (bed tilts down)
platform comes down to z0 position
peel motor rotates n times at m speed (bed tilts up)

for l in layernum do
toolpath is processed (n times, depending on if layer is the base)
peel motor rotates n times at m speed (bed tilts down)
platform motor rotates n times at m speed (platform moves up)
peel motor rotates n times at m speed (bed tilts up)

That block defines basically what happens per layer, but in reality, it’s not in a loop, but individually specified, line by line for every layer. It seems fairly trivial to control the ‘n’ times the platform motor spins each time. My guess is getting the printer to do it would be fairly easy, but the UI does not exist to do it.