Controller board to cut Bezier curves?!??

# Thread: Controller board to cut Bezier curves?!??

1. ## Controller board to cut Bezier curves?!??

Is there such a thing (no - I should say "*where* is there such a thing") as a stepper motor control board that can cut Bezier (or other type) parametric curves "without" doing the "cut it up into a couple hundred line segments" thing? I put "without" in quotes because I'm thinking of something that would say calculate a tangent to the curve a the current point, and then use that to adjust the inputs given to the stepper motors directly.

Or does this make a wonderful opportunity to learn much more than I want about stepper motor control theory?

2. ## Re: Controller board to cut Bezier curves?!??

Any curve (arc), at least in the CNC universe, is a series of discrete X/Y coordinates (points) because steppers and servos are digital devices. The resolution of the points is a function of the finest possible resolution of the device used and its ability to achieve the commanded move. The smoothness of the arc is a function of the number of points on the arc, the more points the smoother the path is, within reason. The minimum possible move is 1 step or 1 encoder pulse, actual resolution would depend on the mechanics of the system.

So yes, almost any arc can be generated. The math would normally be done in a CAM program, then ''posted'' to create the G code that the controller can understand and would then be fed to the system controller. It would be possible to generate the arc mathematically, output the points, and translate the points into text, G code or other format, that the controller could understand.

EDIT: ''I put "without" in quotes because I'm thinking of something that would say calculate a tangent to the curve a the current point, and then use that to adjust the inputs given to the stepper motors directly.''

There is at least one controller that can be programmed to do exactly what you describe, Galil Motion Control products will do this, I'm sure there are others also.

3. ## Re: Controller board to cut Bezier curves?!??

No need to learn stuff about controlling steppers.You need to find a CAM program to do the calculating.Lots of people here will recommend Fusion 360.There are lots of others,but some cost money.You can learn a lot by watching the tutorials on youtube and I would recommend looking for at least three different pieces of software to see which approach makes the most sense for the way you work.Just be aware that some programs cost a lot in the first instance and will require annual fees to remain operative.For a business user it makes sense to find the one that makes you the most productive and not just to grab the first freebie unless its clearly very efficient.It still causes me a lot of amusement when people post online about using a CAD system to design a piece and then take print to the machine to type in instructions-thats a really eighties approach to machining and so easy to make mistakes.I do suppose if you have offset the shape by the cutter radius it can at least eliminate the calculation errors to derive tool centreline positions.Its also a huge amount slower than hitting the calculate tab in a CAM program and you don't get to watch the simulated machining operation to verify that its doing what you expect.

With a Bezier curve you can almost certainly specify a chordal deviation tolerance and while it may result in a large number of intermediate points,if you aren't having to type them all in manually it doesn't really matter that much.Some CAM systems have an option to approximate to circular moves-again using a deviation option and this can give a number of G2 and G3 moves rather than a lot of small G1 moves.Of course my ramblings won't make much sense if your machine doesn't have a way to load a program generated on a remote computer.Which can lead to a whole other discussion about data transfer,networking,drip feeding or even bluetooth transfer.

4. ## Re: Controller board to cut Bezier curves?!??

Hi Jimw - What you describe is possible but the CAM system will still discretise the curve (any 3D curve even straight lines) into tiny bits because that's the only way the motors know how to work. This descretisation can also be done via the dxf export. The path the tool takes is calculated in the machine controller. The tool path is not exactly the line you started with. The controller has parameters and the possible toolpath is like a roadway, it could drive down the LHS or RHS or the middle. There are pathway allowable widths that are set up in the controller configuration. It needs to be like this because the tool is moving and motion creates accelerations and these create inertial forces that the motors have to overcome. So the pathway is used by the motion controller to smooth out the road, just like you do in a car, you use a roadway to make large smooth curves not the smallest curve as the road chyanges. Straight lines can be combined together to make long straight lines in the config as well. This reduces program line counts. Read your CAM config instructions and these parameters will be explained to you. The takeaway is that the toolpath at machine level is the sum of many many contiguous small bits, it is not a continuum and never can be. Peter

here's a list of curve types, they all will be descretised by the controller https://en.wikipedia.org/wiki/List_of_curves

5. ## Re: Controller board to cut Bezier curves?!??

Originally Posted by Jimw338
Is there such a thing (no - I should say "*where* is there such a thing") as a stepper motor control board that can cut Bezier (or other type) parametric curves "without" doing the "cut it up into a couple hundred line segments"
Not aware if there are boards equipped with the required processing power to compute fast enough for this purpose, I'd be surprised. Those algorithms are heavily parameterised to work efficiently (vel, accel, decl, jerk, smoothing, tolerances, so many more...). Although very much available on all industrial controls as standard feature for freeform (spline/nurbs, smoothing, advanced surfaces, etc). If you find this board most likely the IC on it would cost as much as an industrial control, if not more due to its low'er manufacturing qty.

For freeforms with high tolerances (i.e. molds), and/or especially for hsm, it is a mandatory feature to have. Not so much for 2D parts, just a look-ahead on linear motions with 'cam' smoothing is often enough for those.

6. ## Re: Controller board to cut Bezier curves?!??

Here goes an example of the algorithm in practice. Note that the points are output as linear moves (standard cam), then converted to nurbs/splines & smooth'ed by the control's algorithm.
https://www.industry.siemens.com/top...d-surface.aspx

Linuxcnc?

G Codes

8. ## Re: Controller board to cut Bezier curves?!??

Hi Jimw and Mechanix - Mechanix, Siemens article notes an important thing to consider. There is a forward algorithm and a backward algorithm in play. The controller plans fwd then another algorithm takes this plan and runs it backward to check it is in tolerance and things like smoothing take place. Then the system runs it fwd again to re-check tolerance, velocities, accelerations, jerk (if implemented) etc. It's quite a mathematical juggle. Peter

re fast enough computing? There are systems that use 5G systems to measure the part vibration (accelerometers are mounted in the fixture) and adjust the speed/feed on the go to mitigate the vibration. So all things are possible. if commercially needed.

https://www.mmsonline.com/blog/post/...+9%2f18%2f2019

9. ## Re: Controller board to cut Bezier curves?!??

Hi peteeng. That real-time chatter control thingy is pretty cool, good find. What's better then not scrapping a \$10,000+ part on its finishing pass because chatter sets-in and go wild as the walls gets thinner. There are a lot of bloody useless metrology & gadgets for CNC but this one I'll have to give it a 9.9/10 for innovation and 10/10 for usefulness. Thanks for sharing.

That Sinumerik kit is pretty mathsmoothy but works amazingly well. Don't use it necessarily for surfaces (I don't machine molds) but for hsm it's really hard to hit the limitations of the machine with that feature turned on.

10. ## Re: Controller board to cut Bezier curves?!??

Originally Posted by Jimw338
Is there such a thing (no - I should say "*where* is there such a thing") as a stepper motor control board that can cut Bezier
Spoke too soon: For reference if anyone else chances upon this post wanting to know the same thing:

https://www.cnczone.com/forums/news-...are-forum.html
(thread here) New Product: RosettaCNC Motion.

https://rosettacnc.com/en/scheda-ros...c-board-b.html
RosettaCNC.

11. ## Re: Controller board to cut Bezier curves?!??

The RosettaCNC Path Planner has an internal smoothness alogorithm that uses Bezier curves to reduce mechanical stress and
to try to keep the FEED programmed in programs with heavy vector direction changes, also in multi-axis continous RTCP programs.

All enters in 2000 blocks look-ahead path planer management of CNC.

Bezier is active in G64 continuous mode and programmable in g-code using P & Q parameters:

Eg:

Code:
```G64 P0.02 Q0.1
G1 ....```
https://wiki.rosettacnc.com/doku.php..._control_modes

Anyway actually there is not yet a G code to place a CAD, or handwrited, output bezier matrix points and
create a toolpath but is only a CNC way to improve mechanical movements.

Can also used to add extra real-time points in a program poor of infos (like a gcode result of a 3D scan with probe).
Eg:

Analyzing tool path speed with RV (Real Path + Feed Velocity Colors) mode you can see improvements in Feed behavior:

Where no Bezier is active (more angled toolpath) speed fall in feed in corners and low speed are reached.
Where Bezier is enabled new points are automatically added in real-time by CNC, the toolpath change a little but
Feed remain for most time at programmed value (red color) and axis acceleration/deceleration (with related jerk) is reduced.

12. ## Re: Controller board to cut Bezier curves?!??

PS: a bezier tool path could be manually write using CNC macros to create a new G code to support them.

https://www.researchgate.net/publica...RO_PROGRAMMING

#### Posting Permissions

• You may not post new threads
• You may not post replies
• You may not post attachments
• You may not edit your posts
•