slic3r / Slic3r

Open Source toolpath generator for 3D printers
https://slic3r.org/
GNU Affero General Public License v3.0
3.32k stars 1.29k forks source link

Tool path filtering/postprocessing #1282

Open zdar opened 11 years ago

zdar commented 11 years ago

Hi, could postprocessing filter for tool path optimalisation be added to slic3r?

At least simple one could filtr unneccessary moves such as these: 1) extruder starts at point A, then moves to point B (at perimetr) where infill starts, infill "loop" is extruded and reaches perimetr at point C (usually close to point B), extruder then moves to point A and then again close to C where next infill loop starts... It would be nice skip these intermediate trips to point A by checking where next extrusion starts and move straight forward where possible.

2) extrude moves to point A which is at extrusion curve, no extrusion is done and extruder moves over the curve to point B, extrusion starts and extrudes the curve to pint be (exactly same path). Sometimes line is extrudes "backwards" from several segments. Simple check could filter out these (eg. when move "forward" and "backward" are identical simplify this)

I beleive that there are even more sophisticated algoritms for tool path optimalisation. A lot has been developed for HPGL plotters (for those plotter which at early stages used real pens)

alranel commented 11 years ago

I understood very little :-(

Please, can we talk about a real test case? Can you post a G-code file whose order you think could be optimized? And can you propose your ideas in a graphical way instead of words?

kefir- commented 11 years ago

The moves described in point 1 are unfamiliar to me, haven't noticed anything like that.

The issues described in point 2 sound like what I reported in #920, I guess that's under construction. :)

zdar commented 11 years ago

Issue 1:

unneccessary moves

Look at the places marked by arrows (as examples). You can see that movement starts and ends in marked vertex. That means that extruder goes without extrusion from the vertex to the start of infill itself, extrudes infill loop, returns without extrusion to the vertex and process starts again. Simple check of path between points where extrusion stops and starts should be able to eliminate such moves (they could be replaced after safety check by one simple straight move).

Issue 2 - yes it looks like #920

zdar commented 11 years ago

Example can be found here (same as on image) http://www.uschovna.cz/zasilka/N0D3T9Z6596XNE3X-3FK

lordofhyphens commented 8 years ago

Done some cleanup on the title and tags, moved to the PR bucket for enterprising souls. Hopefully it'll get more exposure there.