Can you do multicolour prints on the same layer without an MMU
I do plenty of multi-colour prints on my MK3 using the colour change feature in Slic3r, but it only changes colour at the end/start of a layer.
It crossed my mind whether its possible to change colour mid layer.. For example for writing text? I know it would be fiddly to do having to change filament several times.. But for easy jobs where you just need a bit of colour on a layer, it wouldnt' be too hard.
Are there any slicers that can do this (assuming Slic3r cant)?
RE: Can you do multicolour prints on the same layer without an MMU
I have not tried this myself. When I print text, I put the text on top.
Bear MK3 with Bondtech extruder
RE: Can you do multicolour prints on the same layer without an MMU
Thanks... I don't use Simplify3D and not sure I want to learn it..... Like you I just raise the text a few layers and then print them in a different colour and it works well.. But it dawned on me that with a bit of logic in the Slicer and the use of M600, the MK3 is capable of colour changing within the layer if the user can be bothered to do the filament swaps.
RE: Can you do multicolour prints on the same layer without an MMU
Yes! you can multi color print by manually changing filaments.
- in the printer tab set # of extruders to 2 or 3 or however many colors you want to print
- in custom tool change g-code put "M600"
- on the platter, assign each part of the model a different extruder.
More detailed instructions:
http://schlosshan.eu/blog/2019/03/02/prusa-i3-mk3-real-multicolour-prints-without-mmu/
RE: Can you do multicolour prints on the same layer without an MMU
@trent-t Cool.. Cheers for that.. I will take a look and have a play...
RE: Can you do multicolour prints on the same layer without an MMU
I've been doing this recently and I've noticed an annoying new "feature" in Plicer 2.1.0. I'm getting a tool change to T0 (with the accompanying tool-change custom g-code of "M600") right after printing the purge line. I haven't checked github to see if anyone else has reported this annoyance yet.
Also, make sure that you turn off the purge tower in the print profile. It seems recent print profiles default to the purge tower being on, and you don't need it since you will be purging to your desired color manually at the filament swap.
See my (limited) designs on:
Printables - https://www.printables.com/@Sembazuru
Thingiverse - https://www.thingiverse.com/Sembazuru/designs
RE: Can you do multicolour prints on the same layer without an MMU
Hi,
you can add this to the tool changing code:
;START_CUSTOM_TOOL_CHANGE LAYER [layer_z] / [layer_num]
{if layer_num >= 0}M600{endif}
;END_CUSTOM_TOOL_CHANGE
I found it some where in the forum here. With the code you don't have to change filament at the start.
RE: Can you do multicolour prints on the same layer without an MMU
Hi,
you can add this to the tool changing code:
;START_CUSTOM_TOOL_CHANGE LAYER [layer_z] / [layer_num]
{if layer_num >= 0}M600{endif}
;END_CUSTOM_TOOL_CHANGEI found it some where in the forum here. With the code you don't have to change filament at the start.
Yeah, I was thinking of doing something similar. But I haven't needed to do this since identifying the issue and manually removing the offending code from the gcode for that one print. Thanx for the code snippet.
See my (limited) designs on:
Printables - https://www.printables.com/@Sembazuru
Thingiverse - https://www.thingiverse.com/Sembazuru/designs
RE: Can you do multicolour prints on the same layer without an MMU
Hi,
you can add this to the tool changing code:
;START_CUSTOM_TOOL_CHANGE LAYER [layer_z] / [layer_num]
{if layer_num >= 0}M600{endif}
;END_CUSTOM_TOOL_CHANGEI found it some where in the forum here. With the code you don't have to change filament at the start.
i am going to have a play over the weekend.. Is this the entire sequence that you put in the "Tool change G-code"? Or is this just an extract?
If so, could somone post the entire G-code that they use for Tool change?
RE: Can you do multicolour prints on the same layer without an MMU
Hi,
nope that's the complete code for tool changing.
Look here:
You can also try my MMU profile, just save the code as name.ini and import it into your slicer.
# generated by PrusaSlicer 2.1.0+win64 on 2019-10-05 at 09:03:21 UTC
# Profile by https://forum.prusa3d.com/forum/profile/bendermk6/
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,250x0,250x210,0x210
before_layer_gcode = ;BEFORE_LAYER_CHANGE\nG92 E0.0\n;[layer_z]
between_objects_gcode =
cooling_tube_length = 0
cooling_tube_retraction = 0
default_filament_profile = "Prusament PLA"
default_print_profile = 0.15mm QUALITY MK3
deretract_speed = 0,0
end_gcode = G4 ; wait\nM221 S100\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\n{if layer_z < max_print_height}G1 Z{z_offset+min(layer_z+30, max_print_height)}{endif} ; Move print head up\nG1 X0 Y200 F3000 ; home X axis\nM84 ; disable motors
extra_loading_move = 0
extruder_colour = #C0C0C0;#0080FF
extruder_offset = 0x0,0x0
gcode_flavor = marlin
high_current_on_filament_swap = 0
host_type = octoprint
inherits = Original Prusa i3 MK3
layer_gcode = ;AFTER_LAYER_CHANGE\n;[layer_z]
machine_max_acceleration_e = 5000,5000
machine_max_acceleration_extruding = 1250,1250
machine_max_acceleration_retracting = 1250,1250
machine_max_acceleration_x = 1000,960
machine_max_acceleration_y = 1000,960
machine_max_acceleration_z = 1000,1000
machine_max_feedrate_e = 120,120
machine_max_feedrate_x = 200,100
machine_max_feedrate_y = 200,100
machine_max_feedrate_z = 12,12
machine_max_jerk_e = 1.5,1.5
machine_max_jerk_x = 8,8
machine_max_jerk_y = 8,8
machine_max_jerk_z = 0.4,0.4
machine_min_extruding_rate = 0,0
machine_min_travel_rate = 0,0
max_layer_height = 0.25,0.25
max_print_height = 210
min_layer_height = 0.07,0.07
nozzle_diameter = 0.4,0.4
parking_pos_retraction = 0
print_host =
printer_model = MK3
printer_notes = PRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK3
printer_settings_id = MK3S
printer_technology = FFF
printer_variant = 0.4
printer_vendor =
printhost_apikey =
printhost_cafile =
remaining_times = 1
retract_before_travel = 1,1
retract_before_wipe = 20%,20%
retract_layer_change = 1,1
retract_length = 0.8,0.8
retract_length_toolchange = 0,0
retract_lift = 0.4,0.4
retract_lift_above = 0,0
retract_lift_below = 209,209
retract_restart_extra = 0,0
retract_restart_extra_toolchange = 0,0
retract_speed = 40,40
serial_port =
serial_speed = 250000
silent_mode = 1
single_extruder_multi_material = 1
start_gcode = M115 U3.8.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X150.0 E20 F1000.0 ; intro line\nG92 E0.0\nM221 S95\nM117 [input_filename_base]_[layer_height]mm
toolchange_gcode = ;START_CUSTOM_TOOL_CHANGE LAYER [layer_z] / [layer_num]\n{if layer_num >= 0}M600{endif}\n;END_CUSTOM_TOOL_CHANGE
use_firmware_retraction = 0
use_relative_e_distances = 1
use_volumetric_e = 0
variable_layer_height = 1
wipe = 1,1
z_offset = 0