I did it for plasma - Arc Radius is now available

  • rodw
  • rodw's Avatar Topic Author
  • Offline
  • Platinum Member
  • Platinum Member
More
19 May 2026 22:17 #346500 by rodw
I'll just mention it here as after all its only taken me 6 years to get it into master branch as of this morning. You guys might like to think about how you could use these new pins (taken from man motion) in plasma cutting enhancements.Interpreter Metadata PinsThese pins provide geometric intent and interpreter state for the segment of motion currently being executed. Unlike standard position feedback, these values are synchronized with the trajectory planner’s execution point.Interpreter Status Pins
  • motion.interp.line-number
     (s32, out)
    The current G-code line number being executed.
  • motion.interp.motion-type
     (s32, out)
    The type of motion currently in progress:
    • 0: None
    • 1: Rapid (G0)
    • 2: Feed (G1)
    • 3: Arc (G2, G3)
    • 4: Tool Change/Other
  • motion.interp.feedrate
     (float, out)
    The interpreted feedrate for the current segment in units per minute.
Interpreter Geometric Pins
  • motion.interp.heading
     (float, out)
    The XY plane heading of the current linear move in degrees. Measured counter-clockwise from the +X axis (0 to 360). This could be used to control a tangential knife.
  • motion.interp.arc-radius
     (float, out)
    The radius of the current circular move. This value is 0.0 during linear moves. This could be used to modify plasma cutting parameters based on the arc radius and when hole cutting.
  • motion.interp.arc-center-x
     (float, out)
    The absolute X-coordinate of the center point for the current arc. 0 if in YZ plane
  • motion.interp.arc-center-y
     (float, out)
    The absolute Y-coordinate of the center point for the current arc. 0 if in XZ plane
  • motion.interp.arc-center-z
     (float, out)
    The absolute Y-coordinate of the center point for the current arc if in XZ or YZ plane.
  • motion.interp.normal-heading
     (float, out)
    the heading from the current point back to the arc centre for the current arc.
  • motion.interp.iscircle
     (bit, out)
    True if the current arc is a full circle and not a helix.
NoteThese pins represent the commanded geometric intent from the interpreter and are updated in real-time as each motion segment is consumed by the trajectory planner.
The following user(s) said Thank You: arcsynapse89

Please Log in or Create an account to join the conversation.

  • rodw
  • rodw's Avatar Topic Author
  • Offline
  • Platinum Member
  • Platinum Member
More
19 May 2026 22:28 #346501 by rodw
My original untested theory was that if you knew the arc radius in real time, you could calculate the centripetal radius for a given accelleration and cut speed to know when velocity had to slow down to negotiate an arc. So then on a corner, it might be possible to lock the cut height and move to using current for the process control variable to keep voltage constant. This should keep the kerf width constant.

I also added an motion.interp.iscircle pin so you can sense when the machine is cutting a circle and implement a real time algorithm to improve hole cutting.

And finally, I added tangential heading and normal-heading which is the direction back to the arc centre. The intent here is if you had an appropriate motion head on your plasma torch, you could cut bevels from 2D gcode.

This stuff might be a bit out there, but its there if you guys want to experiment with it with extensions to QTplasmac its there. I've done the hard part for you!
The following user(s) said Thank You: arcsynapse89

Please Log in or Create an account to join the conversation.

Moderators: snowgoer540
Time to create page: 0.065 seconds
Powered by Kunena Forum