Curaengine: 2.3: Still struggling to fill gaps

Created on 20 Sep 2016  Â·  13Comments  Â·  Source: Ultimaker/CuraEngine

Hi guys,

I'm just starting to dig into 2.3, and there is a ton of new stuff to check out!

I started with something I have struggled to get satisfying results from in the past: as outer and inner perimeters converge and diverge, Cura Engine has struggled to fill appropriately; ranging from double extruding the gaps, not touching them at all, or adding small dots. I think I was told that the logic was rewritten for this version.

In this print, I have the bottom/top pattern set to concentric, and bottom layers 9999. I am seeing very similar issues. Here are some adjacent layers:

image

image

image

enhancement

Most helpful comment

Your algorithm is simple and it would work, but it is computationally wire
expensive.

I've already thought of a way to implement it, the only problem is that I
need time to implement it while I'm to busy with other stuff.

All 13 comments

In #1, there appears to easily be room for a single .4mm bead. Options to fill would be an over-width single pass, or two passes at a reduced width (which I thought was the new strategy). Instead, the engine only lays in two small squirts.

In #2, it appears to be trying to fill that space, with a single, full-width pass,with little micro extrusions that lay on top of that pass, not centered in the gap.

In #3, there appears to be enough room now to fit 2 full-width passes, and it looks perfect. I just wish the engine could achieve this result consistently.

Only #2 is unexpected for me. In #1 there is most likely not enough room for one pass, except in the two little line pieces due to rounding errors.

Those little pieces in #2 are weird though. Perhaps it calculates that the extrusion should be exactly zero and then still makes the move?

2 is exactly the new strategy you talk about in #1

However, the two lines are so close together that the second one reduces to
zero at some places.

The offset of those small lines from the actual gap is smaller than the
difference between the nozzle size and the actual line width, so the
material will still reach the gap.

1 is something I want to fix soon, but unfortunately it will be after the

final 2.3 release, because it's so difficult to fix.

2016-09-21 9:54 GMT+02:00 Ghostkeeper [email protected]:

Only #2 https://github.com/Ultimaker/CuraEngine/issues/2 is unexpected
for me. In #1 https://github.com/Ultimaker/CuraEngine/issues/1 there is
most likely not enough room for one pass, except in the two little line
pieces due to rounding errors.

Those little pieces in #2
https://github.com/Ultimaker/CuraEngine/issues/2 are weird though.
Perhaps it calculates that the extrusion should be exactly zero and then
still makes the move?

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Ultimaker/CuraEngine/issues/393#issuecomment-248538318,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AIe9EQIR3e1jb0pKezjlsgIJJKiRy0bAks5qsOLEgaJpZM4KBmv9
.

Kind regards,

Tim Kuipers

Ultimaker BV

www.ultimaker.com

@BagelOrb

I agree that #2 would probably end up pretty good in printed form. It would just seem that attempting to center that gap filling pass, would yield a better result.

In #1, why does it not attempt the gap filling strategy?

Good question. The gap filling strategy fails if the infill lines are too
far apart - in its current implementation.

However, it seems like several infill lines aren't even generated! Are you
sure this is from a 100% skin print?

What's the name of this model? I think I already have it on my machine
somewhere..

Op 21 sep. 2016 16:06 schreef "CCS86" [email protected]:

@BagelOrb https://github.com/BagelOrb

I agree that #2 https://github.com/Ultimaker/CuraEngine/issues/2 would
probably end up pretty good in printed form. It would just seem that
attempting to center that gap filling pass, would yield a better result.

In #1 https://github.com/Ultimaker/CuraEngine/issues/1, why does it not
attempt the gap filling strategy?

—
You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub
https://github.com/Ultimaker/CuraEngine/issues/393#issuecomment-248622590,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AIe9EVa0QXuOmpkr9fvfGcgZjj-nxSRXks5qsTnJgaJpZM4KBmv9
.

I think it is called "phone side". I can reupload if you want.

Definitely forced to all skin/bottom layers

Maybe even tilting the rounding decision away from the standard, and towards assuming another line will fit, would help #1.

This model is perfectly concentric, and output with a very fine facet tolerance. More lenient rounding could allow that void to be filled. You might end up with a small fraction of over-extrusion, as opposed to major under-extrusion.

A thought just popped into my head. I'm not sure if it could be an approach to help:

If a new setting was introduced, "nozzle min diameter", maybe as a percentage of the actual nozzle diameter setting, it could be used as a threshold for evaluating these gaps.

Say you have a 0.4mm nozzle, and the infill has been generated as above, leaving some gaps that could not be filled at 0.4mm. Is it possible to rescan the infill area at a now reduced nozzle diameter, and treat it just like it was driving a smaller nozzle, only working on the area which was designated infill, but left empty? If you set a 75% nozzle minimum, it would now treat the nozzle as 0.3mm, and attempt to fill these areas.

Any potential here?

While I am naive to the inner workings of CuraEngine, your idea does seem feasible.

Your algorithm is simple and it would work, but it is computationally wire
expensive.

I've already thought of a way to implement it, the only problem is that I
need time to implement it while I'm to busy with other stuff.

That's awesome to hear!

Maybe there could be a way to optimize. If you could take the entire part cross section, then subtract the area filled on the first pass, you would be left with only the gapped areas. The engine could then run only on that area map, with the reduced nozzle diameter.

Rather than having it work recursively, you could just specify a single reduced nozzle pass.

If that still seems computationally expensive, perhaps leaving it disabled by default. Then once you get all your other settings sorted out, you could flip it on if desired, for the final slicing.

Hey guys, I just wanted to let you know that the gap filling in 2.4 is looking great so far, thanks!

:)
Thanks!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ghost picture ghost  Â·  9Comments

JBKingdon picture JBKingdon  Â·  5Comments

sanderux picture sanderux  Â·  12Comments

smartavionics picture smartavionics  Â·  13Comments

Patola picture Patola  Â·  12Comments