# Hello, FIRST... What a FANTASTIC project and wonderful work you all have done! Thank

Hello,
FIRST… What a FANTASTIC project and wonderful work you all have done!
Thank you so much for all the time and passion you have put into this!

I am building a new type of CNC plasma cutter that uses a “SCARA” type mechanism for an axis. I will be using the TinyG to drive my stepper motors.
My question is this…
The mechanical movement will not be a simple “X” inches of travel / stepper motor step.
Actual position will need to be calculated based on the number of steps from the home(zero) position. The step number(position) must be translated into the angle of the axis, and then use the trigonometric ratios to calculate the travel.
So, FINALLY my question:
How difficult will this be? …and where does the positional calculations occur?

Last I checked TinyG strictly supports cartesian movement. This means no delta, scara, or morgan geometry.

What if you wrote a macro or a widget that iterated over the 3D viewer XYZ coordinates (which are easily available via the pubsub that you can see in the upper right triangle menu for the 3D viewer) and just did the translation on-the-fly and sent the Gcode one line at a time from your own Play button?

…Due to my lack of experience… when a cnc is running, are the g-code commands segmented in very small movements, or are there times when the TinyG will be calculating the acceleration / move / deceleration? Example “arc” commands etc…
I can visualize having issues with only changing the “g-code position” being sent / converted as the move will still be using a linear calculation to plot the move…
There will be a difference in position over time between a linear position calculation vs a logarithmic calculation. Both will end up in the correct location in the end but differences will produce a distorted travel path… correct?

When you send the Gcode, it will work how ChiliPeppr currently works which is Gcode is sent to fill up the buffer to make sure there’s enough lines of Gcode inside the TinyG for it to calculate correct accelerations. So just start sending Gcode so the buffer fills up. Serial Port JSON Server can have up to 200,000 lines sitting in memory and it makes sure the planner buffer is maxed out on TinyG for planning. TinyG’s planner buffer is 24 to 48 lines of Gcode depending on which board you have.