jakub.c6
Posts: 5
Joined: Nov 14, 2018 7:12 am
Contact: Send private message

Skipping an object on heatbed while the others are fine

Dec 03, 2018 8:45 pm

Hi,

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.


Example:

2 objects placed in slicer. (of course, I assume both objects have own space for printing - no overlaps)
Gcode generated

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
M107
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
G92 E0.0
G1 X60.0 E9.0 F1000.0 ; intro line
M73 Q0 S744
M73 P0 R734
G1 X100.0 E12.5 F1000.0 ; intro line
G92 E0.0
M221 S95
M900 K30; Filament gcode
G21 ; set units to millimeters
G90 ; use absolute coordinates
M83 ; use relative distances for extrusion
;BEFORE_LAYER_CHANGE
G92 E0.0
;0.2


G1 E-0.80000 F2100.00000
G1 Z0.600 F10800.000
;AFTER_LAYER_CHANGE
;0.2
G1 X210.221 Y155.645
G1 Z0.200
G1 E0.80000 F2100.00000
M204 S1000
G1 F1200
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?

Solution:

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 ;)

Regards
Jakub
Last edited by jakub.c6 on Dec 04, 2018 9:48 am, edited 1 time in total.

jerry.s3
Posts: 34
Joined: Oct 06, 2017 9:59 pm
Contact: Send private message

You're gonna need a much smarter printer.

Dec 04, 2018 12:24 am

May from the pc side of ocoprint type things you catch and fix it be for it gets to the printer?

jakub.c6
Posts: 5
Joined: Nov 14, 2018 7:12 am
Contact: Send private message

Re: Skipping an object on heatbed while the others are fine

Dec 04, 2018 12:27 am

Don`t know. I don`t use Octoprint. I use SD card only as my MAC does not want to connect to Prusa through Pronterface.

jakub.c6
Posts: 5
Joined: Nov 14, 2018 7:12 am
Contact: Send private message

Re: Skipping an object on heatbed while the others are fine

Dec 06, 2018 5:10 pm

One question for Prusa coders:

Would it be possible to add some object code number to each object on heatbed?

Before each print of gcode, printer is making a border with thin line....

Would be possible to program slicer in the way, that every object would have that own border? Slicer would deal generated number (some small, let`s say three digit number) to each single object on heatbed and actually print it together with the object within the border...

So in case of problem with some "island", user can enter the menu of the printer and select the number of "island" and cancel that.

I assume it would not be problem to add some ID of "island" to gcode so printer can recognize that.... So when problematic "island" - has some problem, printer will skip every instruction with some island`s identificator.


What do you think?

ron
Posts: 130
Joined: Oct 20, 2016 3:21 pm
Answers: 2
Contact: Send private message

Re: Skipping an object on heatbed while the others are fine

Dec 06, 2018 8:31 pm

As already said that kind of feature needs a more powerfull controller. you would not have it in a near future.
With octoprint, you can try https://plugins.octoprint.org/plugins/excluderegion/

lamp.m
Posts: 1
Joined: Dec 07, 2018 12:52 am
Contact: Send private message

Re: Skipping an object on heatbed while the others are fine

Dec 07, 2018 12:56 am

May from the pc side of ocoprint type things you catch and fix it be for it gets to the printer?
I purchase moon lamp at moonlamps.net here. This is the best place to buy a moon lamp.

Return to “General discussion, announcements and releases”

Who is online

Users browsing this forum: No registered users and 4 guests