Comments (12)
I know this is an old issue, and that it has been closed, but I would like to add that one great benefit of G2 and G3 arc commands is that one command can replace 100's of G0 and G1 commands.
When printing over USB using, e.g. Octoprint, this greatly reduces the amount of instructions that need to be sent to and cleared by the USB buffer on the printer.
For some printed models, especially curvy ones with high polygon counts, sending so many G0 and G1 commands can stall the printer, making blobs and zits. Some printers cannot keep up with the high level of G0 and G1 commands in these prints.
Sending single G2 and G3 arc commands produces nice smooth extrusions when printing from USB.
I have done some work on this as a gcode post-processing solution and the results are promising:
https://github.com/manticorp/GCodeArcOptimiser/
from prusaslicer.
Well, fast forward to 2019, this would be a definitive feature to try on my Duet 2 powered CoreXY. I'm running into a problem where the CPU gets bogged down reading many short successive commands for a print consisting out of curves only. If Arcs would be used, then the reading from SD-card part could get skipped completely and it might free up enough CPU to print at an acceptable speed. The CPU is not the fastest, but, in any case, I wouldn't write off this feature. This should be an experimental, optional feature that can be switched per printer.
We shouldn't ignore the fact that the GCodes are currently highly inefficient. Plus, we can't try new ways of path computation if all we have are straight segments only, but it's a different discussion.
from prusaslicer.
I would rather remove it. With the current state of the firmwares, I don't see much benefit of it. On the contrary, this feature could do more harm than good as you already found out.
from prusaslicer.
Well. That would at least be a clear signal where the development is headed.
But what do you mean by current state of the firmwares. As far as I know Marlin and Repetier are capable of G2 and G3 commands. But I don't know if the print actually benefits from arc commands.
AFAIK Marlin converts G2 and G3 back to G0/G1 commands. The only real benefit I see there is, that the firmware knows more about steps per mm and might be able to generate mechanically better fitting lines.
from prusaslicer.
AFAIK Marlin converts G2 and G3 back to G0/G1 commands. The only real benefit I see there is, that the firmware knows more about steps per mm and might be able to generate mechanically better fitting lines.
Exactly. AFAIK the print will most likely not be better if you use G2/G3 with Marlin. It may be worse due to the heuristics finding the arcs and circles though.
from prusaslicer.
I'm also no friend of G2 and G3. First, the Slicer has to find an approximation to fit arcs into the model. Second, the already quite overloaded 16MHz Marlin board has to approximate the circle further by breaking it up into small G0/1 moves at a resolution that has to be defined by the user in the config file first.
So you are not flexible for choosing a resolution as you can do it in Slic3r, and you transfer the calculations to the weaker CPU.
from prusaslicer.
Under the assumption everyone uses these outdated CPUs on their printers: Yes. But it could be an optional feature.
But I think we have already determined that there's either way no real benefit in print quality or print speed or whatever.
from prusaslicer.
@manticorp
Funny you mention that. Just now I've run (again) into situations where the spam of G1 commands stalls the printer (prusa3d/Prusa-Firmware#1406) which I strongly suspect to be related.
from prusaslicer.
An intermediate option would be to allow enabling arcs for Gyroid infill. No reconstructing of curved surfaces in the slicer would then be necessary.
from prusaslicer.
Klipper bogs down more on arcs than I ever saw in Marlin firmware. Maybe it's the 100mm/s speed, but i used that base rate in Marlin and 80% on perimeters same as now. Using the virtual SD card fixes the problem, but defeats the purpose of having octoprint almost entirely. Beats me whether a G2/G3 would help, but seems if Octo sends that one command to Klipper it reduces the bottleneck of Octo sending dozens of little line segments via whatever method is involved.
from prusaslicer.
Than it doesn't seem to be a Klipper problem but a Octoprint problem, that is well know for the serial communication problems.
from prusaslicer.
Duet works better with arcs than segments in my tests.
from prusaslicer.
Related Issues (20)
- Adopt "No perimeters on bridging areas" setting from SuperSlicer. HOT 2
- I want PrusaSlicer to behave like a normal application
- Collision of supports with objects HOT 4
- Prohibition of crossing perimeters HOT 1
- PrusaSlicer crashes after doing "fill bed with instances..." HOT 4
- Purge filament into infill gaps or infill lines on single extruder machines
- Just one periminter at F36000 the rest at F2400
- cannot cancel skirt
- No sparse layers causes crash if error during filament loading
- Mk3.5 Messy rectilinear infill layers when moving fast HOT 1
- "Export plate including supports" exports hidden objects as well
- Firmware Type question during PrusaSlicer installation HOT 1
- Unnecessary support base being generated on bed
- 2.7.4 does not compile with boost-1.85.0: fatal error: boost/filesystem/convenience.hpp: No such file or directory HOT 4
- Brim on corners HOT 2
- Transition nozzle heat up X-layers HOT 4
- Large Nozzles (1.2mm diameter) and Organic Supports - No contact and the object has less of it supported
- Sequential Printing with multiple extruders doesnt properly set is_extruder_used HOT 1
- Gcode forces printhead to go to Z=0 after print ends but before it moves away HOT 1
- Headbed does not turn off after Print is finished HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from prusaslicer.