kliment / Printrun

Pronterface, Pronsole, and Printcore - Pure Python 3d printing host software
GNU General Public License v3.0
2.37k stars 997 forks source link

Feature Request: Deletion of parts on the fly (with gcode based solution) #202

Closed davidlvann closed 11 years ago

davidlvann commented 12 years ago

I would really like to drag a box around a part in pronterface's gcode view and delete all gcode that falls within those coordinates.

Examples of where this would be useful:

Case 1: I have a plate of multiple parts (especially dozens of small/thin wall clips or clamps). If one gets deformed or comes unstuck, I pause, select an area in the gcode view, delete that "part" (all moves inside the area including extruder moves), and continue without wasting plastic on the defective part. This would require an option to shift the extrude commands by the amount deleted (if using absolute E units), or switching to relative E coordinates.

Case 2: I have a pre-supplied .stl with several parts and don't want to open it in another program to cut out the only one I need (possibly because of a failed part in printing this very same plate). So I slice it (with slic3r standalone or through pronterface) and then select the parts I don't want and delete them.

Case 3: I have a print that has some defective gcode that I wasn't warned about by my slicer and didn't catch when I scrolled through the initial gcode view. (This happens, especially with certain .stl's) So I cut out the extra extrusions (sometimes I get a single point at the edge of a part that the extruder moves to and deposits a blob) and continue printing, saving what may have been hours of time and some plastic.

davidlvann commented 12 years ago

I just realized that "shifting" the E coordinates is as simple as looking at the last E coordinate in each block of code removed, and sending G92 E(that number), then continuing sending the gcode as is. This has to be done at every layer, of course.

RenaeMacLeod commented 11 years ago

This would be awesome! I have run into prints where one of many come loose or curled too much IMO and I would rather stop it printing one part instead of stopping the whole print or wasting plastic on an unusable part.

kefir- commented 11 years ago

I agree, this would be cool. It could also be used to build rudimentary error handling in the future by adding a camera into the mix together with some image processing.

iXce commented 11 years ago

Heh, I fear that such image processing would be totally non trivial :p (and my daily job is computer vision)

2013/6/1 kefir- notifications@github.com

I agree, this would be cool. It could also be used to build rudimentary error handling in the future by adding a camera into the mix together with some image processing.

— Reply to this email directly or view it on GitHubhttps://github.com/kliment/Printrun/issues/202#issuecomment-18792394 .

kefir- commented 11 years ago

I won't argue with that. My imagination is stronger than my cv coding skills ;)

kefir- commented 11 years ago

Although, for a fixed camera above the print it could be possible to predict how the print should look after each layer, and if it suddenly moves or disappears, or crosses a difference threshold, it could be safe to assume that the part has failed.

kliment commented 11 years ago

This issue is now being tracked as issue #266