Hacker News new | past | comments | ask | show | jobs | submit login

I don't think this is necessarily the case.

With multiple smaller movements the printer doesn't have to come to a full stop between moves. It can simply compare the movement vector of the current segment to that of the next one, and adjust the direction it is moving in accordingly. Use enough segments, and you get some pretty smooth movement.

As dotnet00 already mentioned, this is exactly how printers currently implement arcs: the software interpolates the arc into a bunch of tiny line segments. If anything, I'd expect an arc gcode to generate more small movements than whatever the slicer is outputting.




You are missing a lot of technical detail.

Yes, the controller does (stop between moves), it doesn't have a way of knowing.

Also, with the larger motion commands like arc, some controllers do what's called read ahead and they change what they're doing now based on what they're doing next. If what they're doing now and next are just tiny little vectors that doesn't help, but if they're big moves then it helps a ton.

It's like the difference between a .iges or parasolid file and a .stl file.


Maybe with CNC firmware the controller doesn't have a way of knowing, but Klipper (one of the more popular 3d printer firmwares on printers comparable to Bambus) always looks ahead. Eg if you had two commands to move in a straight line at the same velocity, Klipper will not do the first move, slow down to a stop, then start to do the second move, it'll look ahead and see that it can keep accelerating in the same direction until it reaches the point where it'll have to start slowing down to arrive at the final point while staying within the configured jerk and deceleration limits.

It always has the ability to lookahead and adjust the commands to the steppers. As a result it does not matter if you specify whole arcs or specify them as small lines, because either way it computes the same X and Y stepper positions and velocities.

The 3d printing community is full of tons of enthusiasts who put in a large amount of time, money and effort into devising methods for maximizing the speed and quality of their printers. Despite all the scrutiny, arcs are seen as optional with inconclusive benefits in terms of print quality/printer noise (since, again, most of those enthusiasts are running Klipper).


Any non-arc generates instantaneous acceleration changes at the line inflection points, these are impossible for a mechanical system to perfectly implement. Huge amount of jerk results the closer/faster one tries to achieve instantaneous acceleration. Why wouldn’t a system try to use arcs and splines to minimize these effects?

The CNC controller world has been trying to solve this problem for decades. Turning everything into line segments seems to go in opposite direction of this progress.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: