G-code expert needed, or maybe other slicer than PS?
I think i figured it out. I did it with PS and no custom G-code. I'll post tomorrow a more in depth write-up (because is 3:10 AM here)
For now i'll just confirm it can be done, but not in a traditional way. I was looking some days ago on YT to the next PS upcoming upgrades on an interview where they discus a lot of new features for the upcoming PS. Between them there was a new feature that supposed to cut the internal geometry of two overlapping objects. This was before i even had this slicing challenge with my model, but thinking at that interview and new features it suddenly came to me! If PS is still printing inside structures that means that 2 separate objects will have their own perimeters! And as Josef himself commented that it's not always beneficial to cut inside geometry because of strength reasons at the intersections of the two objects, i realized that i can do my model from multiple objects. That would force the slicer to "see" the perimeters of my model the way i want it to "see" them. So basically i split my model in cylinders and planes, then i aligned the parts in PS, and VOILA! Perfect! The slicer did exactly what i wanted in the first place from my custom g-code.
Still there are other problems that i need to investigate. The most obvious for now is how to set the start point for each object on each layer, because on my study section of my model, PS did the stitching right in mid air, between the vertical walls that supposed to serve as structural supports. Basically it start to print mid air, and end mid air, instead of starting and ending on a existing support section of a plane. I'll test tomorrow full circles to better understand the slicer behavior, but for now it looks very promising.
Maybe this is a new way for developers to interpret the models for slicing. Divide the objects (if possible) to basic geometry for faster and better use of material. I know this would be very difficult but it could be the start for a new kind of slicers in a crowded landscape full of "classic" slicers.
At 0.75 extrusion width and 0.3 mm layer height i can see the printer is moving very slow. Is there a volumetric limit on i3s that doesn't let the printer print faster regardless of preset speed?
NO there's a volumetric limit in Slicer itself that puts a speed brake on it to throttle it to the value set under either filament or print settings. I mentioned this before several posts back, you are running into the limits of what the hotend can do (or is configured to allow) in regards to laying down plastic. You can set the MVS higher than the 15 you have for the default PLA profile but you are likely at that point to get extruder clicks and under extrusion when it cant keep up.
Try setting the MVS limit higher and testing what your printer/filament/settings combination can do.
Beside of all the "speed" goals which makes the printed model less stable. Based on my experience it's beneficial to have random geometries printed. Otherwise you're creating weak spots in the intersection of the defined geometries. You can see that pretty good in MMU printing because you have split parts.
Don't see a reason why somebody would like force it on a small scale. As already shown, you can hit a volumetric limit already with regular slicing and speed settings. For higher speed, you need a different extruder. I would understand this approach on a bigger scale where every travel move of one meter costs you a lot of time or if other factors like cold/hot layer bonding would be an issue. But on a small scale (20cm) and PLA printing you're creating weak part by saving print time. Something not many people would like to have.
Don't get me wrong. If you think your idea is a next big thing, then go for it. I'm pretty sure with enough time spent on optimization you might get it down to 30 hours print time but lower is where the extruder limits hit. Please keep sharing your progress. Sometimes seeing someone driving against the wall inspires people to invent better wall or better breaks 😀
Thats a good one! Got me there:))))))
But still, it would be just to easy to give up:) I'll share my progress, if there is something relevant to share:))))
I just finish some testing and the clear winner by a great margin is my intended method.
There are 4 main slicing possibilities, given the same print width, layer height and speed ( for my test model 0.74 mm /0.3 mm /100mm/sec):
- Normal slice
- Normal slice with "detect thin walls" option activated
- Normal mode + "detect thin walls" + "detect bridging perimeters"
- Decompose geometry to simulate my theory (cylinders and plane walls) + "detect thin walls" + "detect bridging perimeters"
And now the following predictions and actual measured times:
- Normal mode: 65 min (10.5 m of filament, 31.4 g of PLA)
- Normal mode + "detect thin walls" : 43 min (8.1 m of filament, 24.2 g of PLA)
- Normal mode + "detect thin walls" + "detect bridging perimeters" : (46 min tested, 24 g) 43 min (8.1 m of filament, 24.2 g of PLA)
- Decompose geometry to simulate my theory (cylinders and plane walls) + "detect thin walls" + "detect bridging perimeters": (44 min tested, 24 g) 43 min (8.2 m of filament, 24.5 g of PLA)
On paper doesn't sound like much but in reality there are big differences:
- Way better details and structural/dimensional accuracy on my new slicing approach. By comparison the details printed with the classic method are looking like a joke. There are gaps everywhere, incomplete walls, inconsistent walls. There is no way i can find 2 identical layers or 2 identical shapes. Keep in mind we are talking here ~0.3 mm deviation from original. Probably only visually looking bad, but ok structural (if you don't take into consideration the gaps or the missing geometry)
- Gaps and missing geometry altogether on the classic method vs new one(i'll post pics for demo)
- Way worse stitching with classic method vs new one
- Very strange path for the classic method resulting in tons of inconsistent errors all over the place.
- Better total real print time in favor for the new method. About 5% faster. Keep in mind the new method is poorly optimized. Lots of double passing over the same geometry, unnecessary paths and random stitching. If optimized it could easily be 15%faster than the fastest classic method.
So in the real world there are serious advantages over the classic slicing method, because the actual print is usable with no gaps or missing geometry! Starting from this idea, the classic method is not even an option. The only way around it, in order to keep the original geometry and the dimensional accuracy, is to make the extrusion width much smaller without "detect thin walls" option activated! That would result in much weaker print and a whopping 202 min print time! If printed with normal settings and 0.55 width the accuracy is really really bad. A 0.8 wall would become 1.2 to 1.6 mm thick, with lost of visual problems (also tested with real prints), so also not a real option. This translates in a 4.6 times faster prints!!
In conclusion, for this type of objects, decomposing it to basic geometry will make a huge difference. There is way less difference on paper vs the classic slicing method, but actually printing it, it shows some serious advantages.
There are tons of tweaks for my new method to be made and maybe hard to implement (objects starting mid air imported separately will be auto snapped to bed), but in the end there are a lot of advantages over the classic slicing method. From my point of view it really worth the effort, especially if the object will be mass produced. The end result will be very accurate dimensionally, visually it will look very good, and structurally it will be very strong because of the width/height print ratio (0.75/0.3 = 2.5, o the same as a 0.4/0.16).
Some pics from my tests:
1 st pic is the classic way, the second is the divided object with the same exact slice settings. This method is not a viable option as observed here.
General quality pics:
Holes in the geometry only visible in the classic mode:
And finally same as above but without "detect thin walls" option activated!
The only other way to print the object correctly is to print it with much smaller extrusion and the print time will take ~ 4.5 time longer, resulting in a weaker part in the end.
Pick your own conclusions:) I think my demo ends here for the moment.
Thanks for the report! Photos for a comparison would be interesting.
This certainly makes sense for components in mass production. For single-part production I use the "classic" method. I don't want to invest too much time in dismantling geometries, various tests etc., but I want to print a stable and dimensionally accurate part.
I think that the slicers of the future will certainly include such optimization options to make the user's work easier.
Just did that:D Sorry for the"lag":))
You seem to have shifted direction from changing the slicer pathing algorithm to splitting complicated parts up. That's a reasonable and far more practical approach. You also have the option of using very different nozzles, settings and filaments with different parts this way. It makes a lot more sense than the direction you were originally pursuing. This does make your job as the part designer more complicated, but the results are worth it.
Do be careful trusting slicer time estimates. They can be way off depending on specifics of the print.
As you pointed out very well, this is a better aproach for my final goal and indeed makes more sense instead of making custom g-code froms scratch. Initially i haven't thought to this split method which now seems very obvious. The end result is basically the same as the initially intended one, but with much less prep work.
Btw, do you happened to know how can i change the stitching start and end point in PS?
And thx for supporting this thread:D