What did MakerCAM, Easel and JSCut produce? I showed their raw GCODE output as well as the OpenSCAM tool paths, but that only tells part of the story. The files produced had the following line counts:

  • 49 - MakerCAM
  • 117 - Easel
  • 507 - JSCut

File Headers

First off some GCODE Basics, all of the necessary detail can be found at: the Linux CNC Project

  • () Parenthesis and ; Semi-Colons are comments
  • The first field is the operation and subsequent fields are parameters

MakerCAM

 1 (Generated by PartKam Version 0.05)
 2 
 3 G21 G90 G40
 4 
 5 (single cut)
 6 G0 Z15
 7 T0 M6
 8 G17
 9 M3
10 G0 X-1.5875634517766497 Y0
  1. MultiCode Line
    • G21 - use mm as the units
    • G90 - use absolute positioning from the start position or at least from the selected coordinate system
    • G40 - turn cutter radius compensation off, this only makes sense if a tool radius command was entered before hand.
  2. Comment
  3. G0 Z15 - Rapid motion, use the highest feed rate to move to 15 mm above the surface of the start position.
  4. T0 M6 - Prepare to change to tool 0 which is a M6 or Manual tool change
  5. G17 - Use the XY plane
  6. M3 - Start the Spindle in the clockwise direction
  7. G0 X-1.5875634517766497 Y0 - Rapid move to start position at coordinates (-1.5875634517766497, 0)

Easel

1 G21
2 G90
3 G1 Z3.810 F228.6
4 G0 X139.848 Y123.094
  1. G21 - use mm as the units
  2. G90 - use absolute positioning from the start position or at least from the selected coordinate system
  3. G1 Z3.810 F228.6 Move the tool in a straight line 3.81 mm above the surface of the part at a speed of 228.6 mm/minute
  4. G0 X139.848 Y123.094 rapidly move the tool to start position coordinates (139.848, 123.094)

JSCut

 1 G21         ; Set units to mm
 2 G90         ; Absolute positioning
 3 G1 Z2.54 F2540      ; Move to clearance level
 4 
 5 ;
 6 ; Operation:    0
 7 ; Name:         
 8 ; Type:         Outside
 9 ; Paths:        1
10 ; Direction:    Conventional
11 ; Cut Depth:    5
12 ; Pass Depth:   1.5
13 ; Plunge rate:  127
14 ; Cut rate:     1016
15 ;
16 ; Path 0
17 ; Rapid to initial position
18 G1 X28.2222 Y1.5875 F2540

Helpfully JSCut has included comments on almost every line

  1. G21 - use mm as the units
  2. G90 - use absolute positioning from the start position or at least from the selected coordinate system
  3. G1 Z2.54 F2540 - Move the tool in a straight line 2.54 mm above the surface of the part at 2540 mm/minute
  4. lots of comments
  5. G1 X28.2222 Y1.5875 F2540 Move in a straight line to the coordinates (28.2222, 1.5875)

What we’ve learned so far …

Combined Tool Paths The above image shows the combined tool paths moving to the start position.

  1. G21 G90 is common across every program
  2. The tool is raised between 15 mm and 2.54mm above the surface of the part for clearance. It appears that 2.54 should actually be cm and not mm was that my mistake? When switching between inches and mm or does JsCut not base its measurements in mm?
  3. MakerCAM didn’t set a feed rate but it did use G0 for rapids (non cutting movement), which seems more correct compared to using G1 as Easel and JsCut used for the same operations.
  4. Easel set the rapids speed to a slow 228.6 mm/minute while JsCut used 10x that!
  5. MakerCAM uses G17 which suggests it is going to use arcs
  6. MakerCAM is assuming some serious machine accuracy to 16 decimal places for coordinates in mm!
  7. MakerCAM is going to start near the origin, Easel is going to start machining far from the origin and JsCut is somewhere in between. Easel is moving so far because the interface assumes the Shapeoko2 and its associated machining area.
  8. MakerCAM assumes tool changer and Spindle Speed control with T0 and M3