I am not here to ask you, how to do this, as I read many threads about this issue all over the internet.
I am here to suggest a solution.
I am very beginner with my I3 MK3 and too low experiences so please excuse my suggestion, but at least, maybe we could develop the idea in the end...
First of all, I do not think the problem of printing (killing) one object occurs because of printer, but mostly because of user (it is me (user) who place objects on heatbed in slicer), but it would be great to have an opportunity to save the other objects, while a lot of filament and time was already spent.
While searching the solution of "skipping" the problem object I was only able to find the only answer "it is not possible, because the printer doesn`t know what it`s printing". I can fully understand it not hidden in WHAT NOT TO PRINT.... but actually, in WHERE NOT TO PRINT.
Maybe there are thousand of different solution how to solve this, but my suggestion is here. Please do not hesitate to comment it.
2 objects placed in slicer. (of course, I assume both objects have own space for printing - no overlaps)
Now it can seem like (note there is one row in bold). Let`s say, the printed was stopped right after user spotted problem on object "can teared off from the plate)
generated by Slic3r Prusa Edition 1.41.1+ on 2018-11-23 at 21:42:23
; external perimeters extrusion width = 0.45mm
; perimeters extrusion width = 0.45mm
; infill extrusion width = 0.45mm
; solid infill extrusion width = 0.45mm
; top infill extrusion width = 0.40mm
; first layer extrusion width = 0.42mm
M73 P0 R734
M73 Q0 S744
M201 X1000 Y1000 Z1000 E5000 ; sets maximum accelerations, mm/sec^2
M203 X200 Y200 Z12 E120 ; sets maximum feedrates, mm/sec
M204 P1250 R1250 T1250 ; sets acceleration (P, T) and retract acceleration (R), mm/sec^2
M205 X8.00 Y8.00 Z0.40 E1.50 ; sets the jerk limits, mm/sec
M205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec
M115 U3.4.1 ; tell printer latest fw version
M83 ; extruder relative mode
M104 S215 ; set extruder temp
M140 S60 ; set bed temp
M190 S60 ; wait for bed temp
M109 S215 ; wait for extruder temp
G28 W ; home all without mesh bed level
G80 ; mesh bed leveling
G1 Y-3.0 F1000.0 ; go outside print area
G1 X60.0 E9.0 F1000.0 ; intro line
M73 Q0 S744
M73 P0 R734
G1 X100.0 E12.5 F1000.0 ; intro line
M900 K30; Filament gcode
G21 ; set units to millimeters
G90 ; use absolute coordinates
M83 ; use relative distances for extrusion
G1 E-0.80000 F2100.00000
G1 Z0.600 F10800.000
G1 X210.221 Y155.645
G1 E0.80000 F2100.00000
G1 X209.796 Y156.315 E0.02490
G1 X186.727 Y179.736 E1.03072
G1 X183.793 Y182.254 E0.12125
G1 X179.920 Y184.631 E0.14246
G1 X176.271 Y186.129 E0.12368
G1 X172.308 Y187.078 E0.12778
G1 X168.214 Y187.401 E0.12876
G1 X62.191 Y187.400 E3.32428
G1 X58.168 Y187.078 E0.12654
G1 X54.169 Y186.117 E0.12895
G1 X50.370 Y184.543 E0.12895
G1 X46.829 Y182.367 E0.13032
G1 X43.742 Y179.727 E0.12735
G1 X41.175 Y176.732 E0.12368
G1 X38.920 Y173.091 E0.13430
G1 X37.300 Y169.130 E0.13418
G1 X36.385 Y165.289 E0.12380
G1 X36.065 Y161.276 E0.12620
G1 X36.065 Y49.014 E3.51990
G1 X36.386 Y44.995 E0.12643
G1 X37.347 Y40.996 E0.12895
What would you do now?
1) turn off the printer and start the printing again from the beginning
2) get clippers and stay focused for removing filament anytime the nozzle will continue on problem object.
3) do something else
It is the option 3 which I am thinking about... There are more ways to do that, but I would explain the very first way that came on my mind - then we could make it better.
I would open gcode (ideally in some graphic analyzer - can be http://gcode.ws
and select the problem object. There could be some lasso tool or simply pen tool to bounder the object which was defected.
Software should analyze "closed circle" to find every gcode coordinates inside this circle and "delete" them.
I assume the software should recognize one object even with one instruction in gcode which is connected to a different one, shouldn`t it?)
new gcode should be updated with the latest Z level, when problem occured, which should not be a problem to find out.
So, result should be.... after relaunching the gcode, printer should come to rest models, continue where it ended and skip the object which we do not want to continue on.
Hope it does make some sense
As I wrote - maybe there are already tons of different (maybe more simple solutions), but at least I did not find that yet.
I wish you a happy printing.
And.... now we need some smart head to make this come true