Creating a new machine for my waterjet?

Hey folks. I’m using Kiri inside of OnShape.

I would like to create a new “machine” using the “laser” as a base for my waterjet cutter. I only need to control the cutting stream on/off and cutting speed, as it outputs the abrasive at a fixed rate.

I would need to create adjustable lead ins, tabs, and corner acceleration/deceleration profiles for cut quality; fine, medium, coarse.

I would also need to create numerous profiles to accommodate the various materials and thicknesses of each that I currently cut, i.e. .125" aluminum, .25" aluminum, .5" aluminum, etc.

Looking for some hivemind guidance and suggestions to get this moving forward. I’m not asking anyone to do it for me, just a helping hand of what to look out for and what to keep in mind.



Hi Chris and welcome. Are you expecting accel / decel commands to be gcode that tweak firmware? Or is this something you need to be done as crude gcode segmentation? There is little in the way of lead in / out that you can tweak. But I can work with you to add features / parameters as necessary to facilitate this. Meaning I can add the code if you can describe, with examples and models, how you need it to behave.

Hi Stewart. Yes, I had planned on having accel/decel variations based on the various materials I need to cut. This would mean modifying the feed rates, especially around corners (i.e. F8.75 to F6.75). Fortunately, I only need to turn the cutting stream on and off, and change the speed of the cutting head, as the abrasive flow is a constant.

The number of individual profiles I would need may be prohibitive (i.e. aluminum in .0625", .0125", .25", .5", etc. for at least a dozen materials). I have the specs for each item, even a rudimentary calculator using quadratics, and the results would just need to be imported into the program.

What seems like forever ago, I did something similar with my Ruida controlled laser cutter.

I appreciate your very kind offer to work with me.



You can see a similar application here:



I thought about getting a wazer back when they were launching. Is this what you have?

Yes, it is an excellent machine, and their software is good, but there are times when I need more “adaptability” from their presets.


Hi Stewart. This might help.

  1. G-code file creation based user design, CAM parameters, machine configuration

  2. Lead-in and lead-out locations determined automatically

  3. Lead length and direction requirements

  4. Lead in and out are in scrap areas

  5. Determine based on offset direction. Waste is same side as offset

  6. Machine control data

  7. List of supported/required g-codes and m-codes

  8. Smoothieboard Gcode list - supported-g-codes []

M-Code Function
M31/M33 LP Pump On/Off
M46/M47 Vibration On/Off
M42/M43 Relay On/Off
M3/M5 HP Valve On/Off
M8/M9 Abrasive Valve On/Off
M44/45 Dump Valve
  1. Startup, homing, and initialization sequence


G21 Absolute Coordinates

M1403 This initiates everything in the controller in the proper order and timing
M1405 X#.## Y#.## This indicates to the machine the top left coordinates of the cutting extents
M1406 X#.## Y#.## This indicates to the machine the bottom right coordinates of the cutting extents
M1407 #.## This indicates to the machine the pierce time as determined by cutting parameters
M1410 #.# Version control check for controller to make sure any incompatibility between FW and Wam are raised (major # is looked at, minor is not)

  1. Cut line initialization sequence


M8 HP Valve On

Abrasive Valve On

  1. Pause for pierce time as determined by cutting parameters

  2. Start cut at lead-in location

  3. Cut line finish sequence

  4. Move to lead-out location

M9 Abrasive Valve Off
G4 S1. Pause for 1 second
M5 HP Valve Off
G4 S1.0 Pause for 1.0 seconds
  1. Shutdown sequence
M1404 This initiates all the shutdown codes in the controller in the proper order and timing
  1. G-code file format

  2. ASCII text file with .gcode extension

  3. G-code file name

1. Default based on input file
2. Automatic, based on input filename, with user override
3. Screen for legal characters for controller
  1. File extension: .gcode

  2. Machine controller - for reference/testing

  3. Specifications or other docs

  4. G-code optimization

  5. Path does not matter (e.g. CCW or CW)

  6. No need to optimize path order to minimize rapids.

  7. Paths cut from inside to outside - requires all paths to be closed.

1 Like

thanks for this. it will be a few days or next week before i have time to dive into this.

1 Like

Let me know if I can be of any more help.

Thank you!