prusa3d / PrusaSlicer

G-code generator for 3D printers (RepRap, Makerbot, Ultimaker etc.)
https://www.prusa3d.com/prusaslicer/
GNU Affero General Public License v3.0
7.61k stars 1.92k forks source link

Feature Request: Change Extruder Order on PrusaXL #12859

Open TechnikTim opened 2 months ago

TechnikTim commented 2 months ago

See also: https://forum.prusa3d.com/forum/original-prusa-xl-tool-changer-hardware-firmware-and-software-help/extruder-print-order-multi-tool/#post-683733

If you want to print with multiple colors or materials, you currently have to sort the colors or materials on the printer so that they are printed in the correct order. This is very annoying in the long run and leads to errors. It would be easier if you could tell the slicer in which order the extruders should be used. So instead of always 1, 2, 3, 4, 5, you set the order in the slicer to 2, 4, 5, 1, 3. This is particularly important if you want to print text or small details on a single-colored background. It then makes more sense to print the background first. To do this, however, the color of the background must be on an extruder whose number is smaller than the extruder with the color for the text or small details.

The whole thing gets even worse if you want to print with different nozzle diameters in the future. Then you can no longer simply swap colors, but have to change the nozzle and recalibrate the offset. This means that a 20-minute print quickly becomes a 2-hour project.

I think and hope this would be easy to add.

wafflecart commented 2 months ago

I think you might be approaching it wrong, you CAN print any area with ANY EXTRUDER but you have to do one of these:

u89djt commented 2 months ago

Articles about the menus on the XL might potentially have something interesting too. I've noticed that it asks about which physical tool should be assigned to which tool in the gcode, but just clicked through because I go through assigning them in the slicer with part separation as described by wafflecart. https://help.prusa3d.com/article/tools-mapping-xl_668277

TechnikTim commented 2 months ago

Thank you for the answers. I think you're right. I always assigned the colors in the slicer the same way they are loaded into the printer.

If I assign the colors in the slicer according to the print order and then swap the extruders on the printer, it should work. So if I want to print with black and then white, for example, I set black to extruder 1 and white to 2. Before printing, I then say that black should be printed with extruder 3 and white with extruder 5. Then the order and the extruders are correct without me having to reload filament.

Nevertheless, this is more of a workaround than a solution. I have to reassign the extruders on the display every time I start a print. Better then reloading all Toolheads but still not great.

A simple option in the Slicer where you can set the order would be easier.

u89djt commented 2 months ago

One more thing: you can drag objects to new positions in the list. Might that be the missing ingredient? With that, and the fact you can click on the right of each object and part's tool indicator to select from a drop down list, I think you have everything you need, but I may not be understanding what you mean.

petternilsen commented 4 weeks ago

This question is even more important now, and desperately needed, when loading bambu lab 3mf colors prints. There is no way to get a listing of the colors used and map them to an extruder like you can with multiple STLs merged into a color print. This seems like an obvious and important improvement as most authors of multicolor models do not provide multiple STLs that can be mapped to different colors.

u89djt commented 4 weeks ago

@petternilsen I enjoy trying to dig out workarounds - can you post an example model you've found that fits your problem category?

petternilsen commented 4 weeks ago

This model is public on the makerworld.com site, the Bambu lab's own 3d model sharing site. It's 4 colors, but they are not separated in the slicer so no way to re-map the colors that I know of. Painting new colors is not a solution.

1+Lizard+4+Color.zip

u89djt commented 4 weeks ago

@petternilsen That one works for me: EDIT sorry, I confused this with another issue, my apologies. You still have to set the tool mapping on the printer or load the right filaments in the right tools. Picking the tools off their posts and swapping them round physically does need offset calibration as the original poster describe, but it wouldn't even have occurred to me to swap them that way. I agree that it would be handy to be able to re-map it in the slicer. Remapping the colours in this specific model is just a matter of loading the right filaments into the right tools or the right slots in an MMU, I think? image XL5T 1+Lizard+4+Color.zip

petternilsen commented 4 weeks ago

Well, yes, but this is such a needed addition. We have to just admit that the bambu 3mf format is the most common, and prusa will need to adapt to it at the best possible way, meaning a way to remap the colors. The remapping is already available when loading a multiple STLs as a multi color model, so the code is there, it just needs to be applied for this particular use-case, a very common use-case. Interestingly enough, there are similar issues filed in the bambu lab github, so it's a fairly common request.

u89djt commented 4 weeks ago

Well, the code is there to attach a label to a complete object. You're asking for association of an attribute with some triangles on a mesh. There are myriad ways that might be implemented. That there are open issues on both sides of the fence tells us that there's either a technical barrier right now, and/or that it has been recognized that the current scheme will be limiting with respect to future features that mean nailing parts of it in place with further integration is asking for trouble. I imagine there's a lot of work and conversation going on behind the scenes. I would speculate that unloading the wrong filament and loading the right one is regarded as a lightweight task fundamental to printing different things. If it's OK for me to ask: what dissuades you from changing the filament loadout? You presumably want a developer to work on this, so they'll need motivation if they're not already doing it. I'm ignorant of the problem, as each of my prints involves a different combination of filaments.

petternilsen commented 4 weeks ago

Well, the code is there to attach a label to a complete object. You're asking for association of an attribute with some triangles on a mesh. There are myriad ways that might be implemented. That there are open issues on both sides of the fence tells us that there's either a technical barrier right now, and/or that it has been recognized that the current scheme will be limiting with respect to future features that mean nailing parts of it in place with further integration is asking for trouble. I imagine there's a lot of work and conversation going on behind the scenes. I would speculate that unloading the wrong filament and loading the right one is regarded as a lightweight task fundamental to printing different things. If it's OK for me to ask: what dissuades you from changing the filament loadout? You presumably want a developer to work on this, so they'll need motivation if they're not already doing it. I'm ignorant of the problem, as each of my prints involves a different combination of filaments.

My main motivation would be that I do have many different color models, and re-loading a new set or changing the filaments around to fit the model, just gets old really fast. On the other hand, I'm motivated and experienced enough so I've grabbed the code and will have look and see how hard it would be to implement. Since you mention "triangles on a mesh", they already must have color information and color filament offset stored, so it doesn't seem like a hard task to just map those to a different value.

u89djt commented 4 weeks ago

I wish you a following wind.