parallyze
Posts: 352
Joined: Fri Jun 05, 2015 4:18 am

Re: BUG report. repeatable vase mode inconsistency in pathing

...and some last pictures to this, what Cura, PS and IdeaMaker did in comparison:

Cura 4.8.0:
m1_c480.PNG
Note: In Cura you can select the slicing tolerance (upper/lower/center of the layer), this
does change the slicing results. Another clue this is because of the slicing tolerances along z.

IM4.1.1:
m1_im411.PNG
IM4.1.1, extrusion width 0.2:
m1_im411_2.PNG
It does restore the gap to the outside - still it fails to recreate the hull, like Cura and S3D.

No, only Cura+IM. Won't make another post for the PS screenshot alone, there's not
really much to see anyways. :D
nerys
Posts: 257
Joined: Tue Mar 29, 2016 8:47 pm

Re: BUG report. repeatable vase mode inconsistency in pathing

It's not about me liking it's about me wanting to see it get fixed :-)

Interestingly enough in all of those fin ribs simplify 3D does not break the model in any orientation those ribs do not go all the way to the top specifically to avoid creating orphans these are all designed around 0.2 mm layer height so no guarantees will happen at any other layer height

In all of the rib errors the issue is the choice simplify 3D makes to get around whatever problem it perceives it's choosing a choice that breaks the model instead of a choice that fixes the model and we know it can make the correct choice because it does in the right orientation

When it encounters an error for some reason it's choosing to move dozens or hundreds of millimeters to fix a problem that only requires it to move 0.001 mm to get past whatever micro sub millimeter fracture or lesion or defect it's finding in the model The slicer should always choose the shortest solution not the longest

Sometimes I think again I'm not a coder I don't know but it seems like it's jumping back to where it thinks to start point is instead of continuing from where the issue is

prusa slicer doesn't have a problem with orphans because it deletes them I had a model with two intersecting faces and one slice creating a three-phase interface as you can imagine at certain points in the z height this would leave you with little tiny orphans or pinches where the slicer would determine this is too thin so I'm going to pinch it off

First invase mode the slicer should never do this a pinchoff should never occur because a pinch off will always break vase mode Percy slicer handles this a little bit more elegantly it'll simply delete the orphan

But then there are other things that piss off prusa slicer I have no idea what it is it's just like a random spot there's a hole and I can't find anything in the model to cause it :-)

The issue here with simplify 3D is not the top of the fin ribs that you were pointing out like I said those slices fine they just have micro deviations that shouldn't be there but don't break the model they're not lethal

The issue is the top of the model where a change I made that should have changed nothing made one work but the rest fail

and I think I may have just come up with a Band-Aid for that problem if my assumption that the start point is somehow responsible for some of these glitches being handled incorrectly I could try moving the start point for each iteration of a sequential print it just dawned on me that the reason the one may be slicing correctly in the other two are not is because the other two are in different positions relative to the start point I'm betting if I stuck them all in the center which can't work so you can't truly but would test the slicer would probably bring the three of them close enough to the start point to all have the same correction occur

What I'm hoping is that coders can find examples of when the spiralized pathing is done incorrectly and can identify that and stop the slicer from doing it again most of these problems are going to be related to some kind of micro error in the model there's no question of that

But these micro errors are so tiny I can't physically see them most of the time in the modeling program and half the time they don't even exist in the slicer you zoom in and there's just nothing there so whatever the slicer algorithm is reacting to is so small it doesn't even display it

It's like being in the middle of the desert and turning left at Albuquerque except there's no Albuquerque You're just literally in the middle of a perfectly flat featureless desert and you just suddenly decide I'm turning left here and it we end up finding out it's because you stepped on this little tiny itty bitty micro single grain of sand that you can't even see without a microscope but that green of sand made you turn left and that's the slicer is doing I think it's being too precise and then it's making wacky choices to correct that imperfection or work around that imperfection when the solution is right in front of you 0.01 mm away just keep going :-) just ignore the micro errors but again I don't know how hard or simple that is I'm not a coder I understand I can describe something very simply while actually making a computer program do it could be a monumental task

I also find it interesting that I can't actually pick the start point of a print I tried to place the start point of a print in the middle of a wall because the slicer kept wanting to start the print at a corner and the problem is the start point of the print is the most likely point of a print to curl if I start the print in the middle of a wall and it curls when it makes the second pass it'll pat down that curl but if that curls in a corner then it won't it'll drag up the curl which will drag up the second path and ruin the print

I noticed no matter how I set the start point for the slicer it ignored my choices and move the start point to the corner that's interesting why have me be able to select a star point if you're just going to override my choice to begin with?

Another odd thing about vase mode for the hollow models that have an inside and an outside surface I have found that I get less errors if I make this start point inside the bottle so I placed the start point at the center of the bed that seems to cause less error glitching I don't know why
nerys
Posts: 257
Joined: Tue Mar 29, 2016 8:47 pm

Re: BUG report. repeatable vase mode inconsistency in pathing

Oh I forgot to answer your explicit question as well The gap between the rib and the outer wall is 0.8 mm sometimes I make it 0.75 mm to encourage fusion on certain printers as that's within the wiggle room tolerance the slicer permits

The gap between the outer wall and the rib in theory cannot be less than two times the nozzle diameter or more correctly the extrusion width I always make them exactly the same

That's because that rib while in our minds is two dimensional to the 3D printer well it's also two-dimensional but it actually uses both planes so if we assume a right angle surface you're going to move 10 mm right on x then you're going to have to move a minimal distance but an actual distance on y to then make your 10 mm move left on x so plus 10x - arbitrary distance on y and -10 on x

If you zoom in you can actually see this it looks like a u turn that means for a short miniscule distance actually in this case that distance will be 0.8 mm long or actually 0.81 mm The 0.4 mm input path the 0.01 mm gap and the 0.4 mm output path so when the rib is sliced in it has to turn 90° or parallel to the face move 0.81 mm before it can then make another turn and make the other half of the rib going back out

This small 0.81 mm parallel line segment needs to be 0.4 mm away from the wall The wall is drawn from the outside edge in so the actual toolpath is the center of the extrusion but the way the slicer calculates it is the outside edge of the model so there needs to be space for the outside edge of the model which is 0.4 mm wide and there needs to be spaced for that 0.81 mm U-turn segment which is 0.4 mm wide that means the gap has to be 0.8 mm

This is actually not a physical requirement this is a slicer requirement because if you make the gap smaller than 0.8 mm buy too much thin wall behavior gives you a little bit of wiggle room The slicer will detect that as a piercing of the outer wall and this will of course create an island and brake vase mode

If I make the gap larger I will not get fusion and I will not have an integrated structure basically the ribs will serve no benefit

The rib moving out because I'm slightly over extruding that filament extrusion touches the filament extrusion that's already there and the two fuse together this gives you a three-dimensional integrated structure ie very light and thin but very strong

The issue is when I tell the slicer to use vase mode it should by design avoid any actions that break the single continuous path it should make whatever decision is necessary to preserve the single path so when it has a choice between moving 100 mm there or 01 mm here and the 01 mm here retains the continuous path that's what it should do

I would also like to see a forced path restraint meaning even if there's a collision who cares do it anyway Even if one line crosses another just do it anyway The only thing you're going to do is create a tiny bulge where they're slightly too much filament at the intersection that's better than breaking the model :-)

but again as a human being looking at a drawing it's extraordinarily childishly easy for me to go yeah well duh that line you connect to that line while somehow telling a computer algorithm how to do that can be a monumental task so I 100% understand that I'm just hoping I can post enough examples that they can figure out okay this decision tree in the algorithm is causing it to break the models and in this decision tree it's right so let's shift it more that way if possible
nerys
Posts: 257
Joined: Tue Mar 29, 2016 8:47 pm

Re: BUG report. repeatable vase mode inconsistency in pathing

I think I have an idea I'm not sure if this would actually work but I wonder if it would be easier for the algorithm to slice of base mode from the top down instead of the bottom up

Slice it from the end to the beginning and then make the store point wherever it ends up

I don't know if that would be any easier better or worse I just don't know enough about how these things actually calculate these paths it would also be good if it compared the layer below and layer above and made a correction that produced the smallest deviation between the two

Sometimes I think a lot of the smart functions the behind the scenes decisions that simplify 3D makes that are normally quite intelligent are breaking these complex base models because they're so simple in theory so like when I'm trying to create solid layers I'm giving the slicer explicit instructions and the slicer is ignoring my explicit instructions because one of the other smart features is conflicting

It would be nice if this is even possible maybe it's not possible maybe it wouldn't give me the desire to result but for example to get better results and process slicer I have to turn its brain off I have to turn off all the smart features or manually disable them

So I have to disable adaptive layer height by setting the minmax layer height to be 0.2 mm the layer height I want and I have to set the perimeter extrusion width to be 0.4 mm at all times so that I can't use adaptive extrusion

Because I believe a lot of the times it's those smart things it's trying to do that create a conflict and then it does weird things as a result of the conflict such as deleting half a layer of an entire model

Simplify 3D doesn't have adaptive layers or at least it didn't and I think that's one of the reasons why it has handled these models better because once you start adjusting the layer height you start changing the z points and layer points where the model slices into distinct layers which can conflict in base mode create an orphan where there wasn't create a pinch where there wasn't

Sometimes I can fix these models by simply distorting the size making the model one layer height larger or one layer height shorter

For example I have learned that in fact I learned this just the day before yesterday that it seems like slicers don't like vase mode models that aren't evenly divisible by the desired layer height so for example a 1 mm tall model is going to cause you problems if you're printing at 0.4 mm because that permits 2.5 layers you need to either make it 0.8 mm or 1.2 mm

I actually figured this out in Prussia slicer when I was in the settings trying to print a stackable drawer that I'd modified it said something to the effect of it understood that my model bottom needs to be 3.2 mm in order to print the number of bottom and top layers I'd ask for it recognized that there was a mismatch between my chosen layer height and my chosen number of layers and that one of those it didn't tell me this but this is what resulted One of those top layers got deleted I went into tinkercad and adjusted that bottom layer to be divisible by 0.4 mm the layer height I chosen and now it's sliced correctly

So now I try to make all of my models divisible by in my desired layer height with 0.2 mm this is pretty easy just to make the height of the model always end in a 02468 and will always be divisible by 2

This however is not the case with 0.4 mm 2.0 is divisible but 1.0 is not 2.0 = 5 layers while 1.0 equals 2.5 layers you would need to jump to 1.2 and get three layers

In vase mode the slicer breaks itself when it does this it basically deletes the third layer so of course when it starts the vase mode half of it is being printed in air because that last top layer is not there for it to sit on

This is something that slicer should be able to correct it should not have deleted that last top layer it should have simply done it anyway sure it's not exactly correct to the dimensions of the model who the hell is going to notice 0.5 mm :-) no one but everyone's going to notice a missing top layer and an air print :-) again this is one of those things that's very easy for us to look at and see but probably very difficult to program software to recognize and see
parallyze
Posts: 352
Joined: Fri Jun 05, 2015 4:18 am

Re: BUG report. repeatable vase mode inconsistency in pathing

Don't have enough time at hand to go through all this thorougly right now. But...
these are all designed around 0.2 mm layer height so no guarantees will happen at any other layer height
I've never modified parts afterwards to make them vase mode compatible, when I did this it was from the
start when designing something. But I've never ever managed to produce a file which would only work at
a certain layer height... and I'm having a very hard time trying to understand how such a file would be
of any use across different slicers unless somebody knows the internals of them VERY well.

Take layer height for example. If I set layer height to 0.2 but first layer height to 0.3. What exactly will the
slicer do, will it slice a 0.3mm high slice of the model or slice 0.2mm all the way through and simply "scale"
the first layer according to the desired height by adjusting height/extrusion amount? Are all the other layers
now "offset" by +0.1mm because of this? (I guess it will slice 0.3mm and 0.2mm for subsequent, but can you
answer those questions for sure?)

And yes, what you mentioned about the starting points might be the cause. In vase mode you will always
get 0.20mm per completed loop, increasing at edges/vertices of the model file. A very easy example would
be a simple 20x20x20 cube in vase mode. Depending on the start point you will have one of the four corners
always at 0.2, 0.4, 0.6 and so on while the others end up at .25, .3, .35 and so on. And I'm wondering if it's
possible at all to precisely tell what it will print like before seeing the actual gcode preview. Or maybe it's
completely irrelevant while slicing, we simply can't say for sure.

The problems you're facing here aren't really exclusive to 3d printing. In the past I've been doing some
fluid simulations. It's great to have a simulation crash after 90+ hours because one or two particles of
the simulation found their way through a glitch in the mesh... and while many programs got better at this
there's still no universal solution to those problems which will work in all cases. PS does create some stupid
artefacts at times, especially when using Arachne right now - so it's not flawless in all cases. And let's not
forget it wouldn't really print those models in vase mode at all unless the default value for slicing gap
radius is set to 0. So much for "the slicer should ignore tiny things", sometimes it should NOT!

And if S3D started forcing vase mode if selected I'm pretty sure the first thread complaining about
"two objects on plater but only one in preview" isn't far away... :D

Many of the things here remind me of another problem just recently on this forum. It's another one of
those problems which is hard to fix or properly detect at all times. Imagine I handed you some flat mirror
tiles, 12 pieces in total. Now I tell you to put the reflective sides on the outside of two boxes you have to
make out of those tiles.

Pretty easy at first. Now move the boxes together so they're touching on one side. Even if glued together
you could cut them apart and cleary see which side belongs to which box and what direction it was in.

Now imagine the mirror tiles having a 0 thickness.... like the planes inside a model file. You have two mirrors
in exactly the same place and have to say for sure which one does belong to which box.

Ah, just remembered I added a video, here it is: https://www.youtube.com/watch?v=uBYvI0YeYyc

So while in theory the simply duplicated box STL is absolutely clean and flawless it still manages to
irritate the slicer when touching each other.

I've just seen so many things going wrong in different programs when handling geometry from other
sources, but I have to come across a model yet which I exported from CAD and does not slice as expected...

And while vase mode in PS seems to be more robust it is often completely useless, because you can't really
combine vase mode sections of a print with layer by layer printing in the ways you can do in S3D. :-/

If some of the problems get caused by the holes starting/ending on different z heights although they're meant
to be at the same height maybe slightly increasing the cut width might help to level out the differences.

But hoping for a software solution that will always exactly know what the user is expecting... nah, that simply
won't happen. Some might have better repair functions but I don't like to rely on those.

To me personally it's pretty easy. If a model fails to slice in 3 out of 4 slicers I have a very close look at
that model file.

Just had a look at the stackable drawer thing, won't even start to list the errors in that file.

(Edit: I don't know why but I can't attach the image. It does show up in the attachments and is uploaded
but the "Place inline" button simply doesn't appear... o,O)
drawer.jpg
And another edit. When trying to post this I got a timeout message. So this is the last state I happened
to have in my clipboard, won't rewrite everything again.

This geometry stuff can be way more complex than most people think. And each time a model is handled
in a different program this might do things differently. Some tools only work on quad surfaces, others
require triangle meshes. Unless you can say exactly how a model was treated along the way you're simply
destined to run into situations where no auto-repair feature will help you.

Mesh errors are very common, if you can come up with a solution to this there's quite a lot of people
interested in that one... ^^
nerys
Posts: 257
Joined: Tue Mar 29, 2016 8:47 pm

Re: BUG report. repeatable vase mode inconsistency in pathing

yes that drawer is not my original work. I am just hacking it to make it more usable. it had something like 2264 errors reported and unlike normal PS can't fix them. IE normally when it corrects errors I can export the plate as STL and the corrections will be part of the export. but not that file. its a mess in a way I can't determine or understand.

Point is. the slicer is "making" glitches based on how its "handling" resolution to those issues it finds in the model. it should be consistent. if the algo changes just based on the slicer selected start point or rotation then it should do a better job at being more consistent.

I have yet to find a complex model without errors. again the issue is not whether the models have issues (of course they do) but how the slicer "behaves" when it encounters them.

If I make a right turn driving and end up in the wrong place I make a u-turn and I back up to my last turn. I don't drive 600 miles across the state then 200 miles south to then drive 500 miles back to my start point. and THAT is what the slicer is doing (for whatever reason)

I know its not as "easy" as that but hopefully its something they can work on. IE when you have to "change course" because of an issue make the SMALLEST COURSE CHANGE POSSIBLE not the longest. and that's not hyperbole. S3D is electing to make literally the longest possible course correction to the issue if finds. going CLEAR across 100% the span of the model. under no conditions does that make any sense. so something in the model is pissing it off and its not handling it well :-) it should not be too hard to get the slicer (again ignorance speaking here no idea how hard it would be) to have constraints in vase mode.

no retractions. encounter a break? too bad. no retraction. no travel move. just "keep going" to the next "good point" ie do not permit the tool path to be broken even if that means going outside model parameters by a miniscule amount (I mean its already doing that its just make HUGE moves instead of tiny ones) orphan? delete it. already know that's possible PS does it already.

as for how do I print for layer height. that's easy. I INSTRUCT my users how to slice and provide them when feasible both gcode and factory files to remove as much error as possible.

there is no slice at 0.2mm first layer at 0.3mm I INSTRUCT them to change that. to 0.2mm (or whatever is needed for the file 0.4mm for this drawer for example) the more I can control the conditions the easier it is to get it printing for other people

I worry about 0.2mm gaps as sometimes I don't get FUSION when I do that. without fusion there is no point. those seams must melt together. you can't just keep ramping up EM either the more plastic you extrude the harder and therefore more brittle the part becomes. IE you add new problems to the mix when you do that.
nerys
Posts: 257
Joined: Tue Mar 29, 2016 8:47 pm

Re: BUG report. repeatable vase mode inconsistency in pathing

I have learned a few tricks and ideas that "help" the slicing engine make better choices :-)

Layer height is actually critical. in relation to the height of the object "AND" the features you ADD to the object!! for example a simpler object I wanted to slice at 0.3mm and it kept adding little artifacts.

Turns out some of the layer geometry was "between" layers. so not at layer 197 and also not at layer 198 it was "inbetween" and this "annoyed" (best word I can come up with) the slicing algo in S3D

SO I make sure the model height and each "object" on the model (such as fins etc..) were even divisible by 0.3mm if your careful you can find a layer height (usually only have to add or sub .2mm or .1mm to get it) that is evenly divisible by 0.2mm and 0.3mm both (for example 6 is divisible by both but 5 is not.) suddenly lots of little errors "went away" all on their own !!!

I think many times when I shrank a model from 197mm (errors) to 196.8mm (no errors) I was actually shifting "something else" in the model to that magic "I am not in line with an exact layer and not between" the slice algo should be able to deal with this but it can't

This means my features must also be divisible by the desired layer heights AND must BOTH start and STOP on a fixed layer and not "between layers"

That alone has dramatically reduced my errors. sometimes S3D will add an error in the middle of a CLEAN WALL I am talking a super simply cylinder. S3D is adding it for some reason and its due to an inconsistency "somewhere else" in the model. this is why I have been pulling my hair out trying to figure this out.

This is literally like your car stutters when you get off the exit but ONLY if you use your turn signal 5 minutes ago 3 seconds longer than usually. WHY does one cause the other? no idea. but it does. :-) most like a micro flaw in the model somewhere and under some conditions it ignores the flaws under others it goes ape shit over it :-)

Very annoying but once your aware of it its silly simple to fix while building the model.
nerys
Posts: 257
Joined: Tue Mar 29, 2016 8:47 pm

Re: BUG report. repeatable vase mode inconsistency in pathing

ANOTHER thing I learned is thin wall behaviour (IE single extrusion etc..) I had a problem where it kept trying to "close" a loop with a single extrusion which you can't do. no return path means no vase mode so you get a retraction and move.

Turns out it was think wall and that pesky "geometry between layers" thing again. simply turning that down to perimeters only and 25% was enough to get S3D slice algo to just IGNORE that section (erase it) instead of trying to complete it with a single extrusion.

SO that is something else you can play with to get it to slice things the way we want.
nerys
Posts: 257
Joined: Tue Mar 29, 2016 8:47 pm

Re: BUG report. repeatable vase mode inconsistency in pathing

Here is another Vase mode example. there is nothing wrong with the model. the problem is the HEIGHT and the Slicing engine not LIKING the height relative to the layer height selected.

103mm. but I was slicing for 0.3mm. if you run the numbers 103mm is NOT divisible evenly by 0.3mm

SO the slicing engine "adds" an error randomly in the model. the core issue here is #1 it should be smart enough to ignore the issue and second if it can't ignore it put the darned glitch on the first layer or better THE LAST layer where it can't hurt a single thing :-) hehehehe

ONLY because I am aware of this bug was it easy to fix. I made the model 103.2mm which "IS" evenly divisible by 0.3mm POOF error gone. 344 layers

but at 103mm 0.3mm would technically result in 343.33~ layers. a third of a layer extra so S3D "randomly" picks a point on the model (i know its not random but to the end user "IT IS" random in effect) and there is no error in the model the end user can fix.

they have to be aware that S3D requires vase mode printed models to be a height evenly divisible by the selected layer height. in this case 103mm would slice fine at 0.2mm but NOT slice fine at 0.3mm however 103.2mm will slice fine at BOTH layer height

THis gets even WORSE with custom first layer settings since you can specific 0.3mm first layer and 0.2mm regular layer. again. now you must take your 103 model. subtract .3mm from it to get 102.7mm and THAT must be even divisible by 0.2mm which its not. so I have to make the model 103.1 mm so I end up with 102.8mm after a 0.3mm first layer which is now divisible by 0.2mm

The end user should not have to do this. that's a bug. PUT the "make up" layer at the very last layer or just "delete it" but at the TOP not in the middle of the model which will BREAK the print.

Load the factory file. now change the model height to 103mm and slice it. See the error about 2/3 the way up? now change the model height back to 103.2mm and poof the error is gone.

This is a CORE engine bug not a v5 bug. exact same error in v4 (v4 factory attached) layer 238. change the model height to 103.2mm and the error goes away.
Attachments
Snek v4.factory
(1010.13 KiB) Downloaded 21 times
Snek.factory
(1022.34 KiB) Downloaded 22 times

Return to “Troubleshooting and Bug Reports”