Darrell
Posts: 8
Joined: Wed Feb 22, 2017 4:52 pm

[FIXED] First Layer Height Not Accounted for in Top Process

I had previously noticed an unexpected gap between layers when using multiple processes with specified Z-range ("Advanced" tab, "Layer Modifications". Thought it was because I switched primary layer height between processes (and that might still be true), but I noticed another case where this gap between processes is showing up. Basically the z offset caused by using a first layer thickness different from 100% is only accounted for within the process (2nd and subsequent layers are offset appropriately). However, the next (and subsequent) process that is applied when Z falls into the next z range specified does not account for the actual position of the layer below. This shows up in a gap in both the preview and in my case in the actual print.

I figured out that I can compensate for it in the Global offsets ("G-Code" tab), but I would think when specifying processes that cover a continuous Z range (i.e., Z-Start of last process = Z-Stop of previous) the layers should be sliced with no gaps appearing. This probably happens when changing layer thickness also since the slicer doesn't seem to utilize the position of the last layer in the previous process. Anyone else notice this happening?
User avatar
dkightley
Posts: 2405
Joined: Tue Mar 10, 2015 4:09 pm

Re: First Layer Thickess Not Accounted for in Other Processe

Can you please attach a factory file for an object that exhibits the reported issue. File menu===>Save Factory File as

As they say "A picture paints a thousand words.....a factory file paints a few more!"
Doug Kightley
Volunteer at the National Tramway Museum http://www.tramway.co.uk
Railway modeller and webmaster at http://www.talkingtgauge.net
Darrell
Posts: 8
Joined: Wed Feb 22, 2017 4:52 pm

Re: First Layer Thickess Not Accounted for in Other Processe

I actually created a more simplistic example. It has two processes 1) Bottom - stopping at Z=0.9mm and 2) Top - starting at 0.9mm. The primary layer height = 0.3mm for both processes. The "Bottom" process has a 1st layer with 80% height = 0.3mm * 0.8 = 0.24mm. The top layer has a 1st layer height setting of 100%. What you can see in the attached factory file and screen shot is a gap between the 3rd layer (last layer of Bottom process) and the 4th layer (first layer to Top processes). From the attached G-code the starting 3rd layer code is:

Code: Select all

; layer 3, Z = 0.84
; inner perimeter
G1 X104.250 Y97.900 F6000
G1 Z0.840 F1000
G1 E0.0000 F1800


and the for the 4th layer the starting code is:

Code: Select all

; layer 4, Z = 1.2
; inner perimeter
G1 X104.250 Y122.100 F6000
G1 Z1.200 F1000
so you can see the z-distance between 3rd and 4th layers is 1.2mm - 0.84mm = 0.36mm. Since the first layer thickness for the 4th layer process is set at 100% (0.3mm) you can see this leaves a gap. The successive layers (5...) of the Top process fall on correct 0.3mm z increments (at least relative to the 4th layer):

Code: Select all

; layer 5, Z = 1.5
; inner perimeter
G1 X115.750 Y97.900 F6000
G1 Z1.500 F1000
(1.5mm - 1.2mm = 0.3mm) The Z position of the 3rd layer is correct for the Bottom Process (80% * 0.3mm + 0.3mm + 0.3mm = 0.84mm). The problem is that the 4th layer starts at 1.2mm as though the first process sliced at even 0.3mm layer heights. Layer 4 should really start at (80% * 0.3mm + 0.3mm + 0.3mm +0.3mm = 1.14mm. But as you can see this will leave a gap.

I think this issue also pops up if you have two processes with different "Primary Layer Heights" even if first layer thickness is set for 100%. I think each process is essentially assuming that all other processes sliced at the same layer height (and therefore Z-increment) as the process doing the slicing for a particular Z range.

I've attached files that demonstrate what I'm seeing for the case with same Primary Layer Heights, but a 80% first layer for the bottom process.
Attachments
gap_issue.png
gap_issue.gcode
(89.29 KiB) Downloaded 189 times
gap_issue.factory
(6.09 KiB) Downloaded 181 times
User avatar
dkightley
Posts: 2405
Joined: Tue Mar 10, 2015 4:09 pm

Re: First Layer Thickess Not Accounted for in Other Processe

I can guarantee you're not going to like this explanation.....but I'm going to give it you straight!

The first layer properties apply to the first layer that would be printed on the bed. So lets set the 1st layer thickness tp 100%. So with a layer thickness of 0.1mm the top of layers 1 onwards give the following heights:
1 - 0.10 2 - 0.20 3 - 0.30 ..and so on..... 19 - 1.90 20 - 2.00 21 - 2.10

Make the first layer thickness 150% and the tops of the layers would be..
1 - 0.15 2 - 0.25 3 - 0.35 ..and so on.....19 - 1.95 20 - 2.05 21 - 2.15

Lets start printing at zero and end at 2.00mm for the first set of data...and layers 1 to 20 will print. The height of the top of the 20th layer is 2.00 mm

Lets now start printing the second set of data from 2.00mm onwards. At 2.00mm the next layer to print will be layer 21...which starts at 2.05mm.

We have a gap. We have a gap because we have set the layers out of sync by making the first layers different thicknesses!!!

This is not an error. It's a boo-boo in the set up of the twp processes. If you want these two to work together, you need to make them have the exact same configuration of layer thicknesses. IE Set the first layer thickness the same! So, contrary to the first layer thickness not being followed, what you're seeing is the first layer (to be precise, the first layer that would be printed on the bed) thicknesses being followed precisely. Thin for the bottom....and thick for the top!

The bottom line is that if you are using two or more processes for one part, then either you have to have absolutely identical layer thicknesses.......or differing layer thicknesses that match up EXACTLY at the point where you stop printing one and start printing the next. Build in a mis-match and you get a gap!
Doug Kightley
Volunteer at the National Tramway Museum http://www.tramway.co.uk
Railway modeller and webmaster at http://www.talkingtgauge.net
Darrell
Posts: 8
Joined: Wed Feb 22, 2017 4:52 pm

Re: First Layer Thickess Not Accounted for in Other Processe

I can guarantee you're not going to like this explanation
Actually I think your explanation is basically what I was observing (each process is oblivious to the others even when using multiple processes with Z-Ranges). You can still use arbitrary settings for Layer thickness, First Layer Height, but it requires you apply the correct Z-Offset in the G-Code Tab (for each process).

I think the real question is when would you use multiple processes with continuous z-ranges specified (i.e., last process end = next process start) and want the layers to stack WITH gaps.

Because of the level of configurability (or more appropriately...lack of) within a single process, I use multiple processes to deal with various issues (at least so far):
1) Different infill % in different areas (strength vs. material use/speed),
2) Different detail requirements in different Z-levels of the model (different layer thickness).
3) Getting the exterior infill oriented in a preferred direction (by specifying 0 top, 0 bottom, 100% infill at desired angle(s)) for certain surfaces.

Using a different first thickness to get the "perfect" first layer on the bed will/in-general create gaps (as you said) unless extra measures like tweaking Z-Offsets in the "G-Code" tab are taken, which is pretty inconvenient. Same issue with different layer thicknesses in different processes.

The only other use of multiple processes that I can think of at the moment (besides optimizing a single object as I mention) would be if you had a process per object or sub-set of objects. But then you probably would NOT be using the Z-Range capability anyway (Advanced - Layer Modifications).

My point... I don't see why the present slicer behavior would be the desired, so this is probably more of a feature request as opposed to a bug. But I'm interested in whether there are better methods I should be using to address my above list (without dealing with the gap issue)?

BTW - I also tried multiple processes with each process dedicated (no Z-ranges enabled) to a separate object. Using processes with different (first layer or primary layer heights) and slicing in "continuous" mode with all processes enabled produces the correct result. Layers are created to deal with that needed by each object's process settings. In other words, the layer z-heights are not forced to be identical for each object.
User avatar
dkightley
Posts: 2405
Joined: Tue Mar 10, 2015 4:09 pm

Re: First Layer Thickess Not Accounted for in Other Processe

Okay....lets try explaining again!

If you are printing using three processes so you can have differing infills, etc, and you want the first layer on the bed to be 150%, then you need to set ALL THREE profiles to have a first layer of 150%. Its as simple as that! You don't need to play with the Z offset for the second and third profile to accommodate what you believe are gaps.

What you need to remember is that the slicer works out the height of all the layers from 1 through to whatever layer number you start printing at...even if those layers are not printed!

And if you want different profiles to have different layer thicknesses, then stick to layer thicknesses that are multiples of the thinnest layer....eg 0.1mm 0.2mm, 0.4mm....but remember to adjust the first layer percentage so each "first layer" is the same thickness! eg 0.1mm layer 150%; 0.2mm layer 75%, 0.4mm layer 37%. You'll also need to change from one process to the next at a multiple of the thickest layer...eg in the same example at x times 0.4mm
Doug Kightley
Volunteer at the National Tramway Museum http://www.tramway.co.uk
Railway modeller and webmaster at http://www.talkingtgauge.net
Darrell
Posts: 8
Joined: Wed Feb 22, 2017 4:52 pm

Re: First Layer Thickess Not Accounted for in Other Processe

I COMPLETLY understand your methods for making the gaps "disappear".

The issue with making the First Layer thickness the same on all processes is that changing that setting has an effect more than just changing the thickness. It changes the thickness while NOT changing the amount of material extruded (at least according to the docs on this site. i.e., the same amount of material is extruded as expected using the Primary Layer Height). This is usually used to deal with bed adhesion/leveling issues. So by changing the layer height on layers higher on your model, you likely will introduce visible artifacts in the surface at that layers.

I agree that using the multiples of layers (as you suggest) can work around the cases with of using different Primary Layers. The funny thing is when I first noticed the gap I thought I could work around it by doing that, but didn't appreciate the "First Layer effect", so at that time the gap was smaller, but not gone (so I was confused back then).

In any case, I don't see any implementation difficulty in having the slicer start with the top of the previous process as the "zero point" of the next process. Obviously only for the case when continuous Z-Ranges are specified (if you have Z-ranges with no process, who know what your trying to do... probably will not print well). There no fundamental reason why numbered Z-layers need to be at even or multiples of a particular height. In fact this does not happen now if you slice two different models with two different processes (different first layer or different primary, non multiple layers.

If the S3D developers could snap their fingers and have things work as I describe, so you are free to pick whatever layer heights you want, and not have to tweak processes 2...N because you changed the first layer height of Process 1, do you have a reason this behavior/feature wouldn't be desired?
S3D-Jason
Posts: 1409
Joined: Sun May 31, 2015 6:01 am

Re: First Layer Thickess Not Accounted for in Other Processe

Darrell wrote:If the S3D developers could snap their fingers and have things work as I describe, so you are free to pick whatever layer heights you want, and not have to tweak processes 2...N because you changed the first layer height of Process 1
I am happy to say that Version 4.0.1 made many improvements for multiple processes, including this ability to automatically position processes so that there are no gaps between layers. Even when using different layer heights or first layer settings, the software will automatically ensure a smooth transition.

I tested the files and setups mentioned above, and they now works correctly in Version 4.0.1.

Thank you for the great suggestion!

Return to “Troubleshooting and Bug Reports”