Millimeters vs inches

On the fusion 360 FAQ (Using Fusion 360 with Carbide 3D machines), it says

Note: Although we prefer metric units, Carbide Motion will allow Imperial-based G-Code as well.

I have been using millimeters instead of inches, but it’s inconvenient when you use inches for everything else. My question is, why do they prefer metric, and does imperial give worse results? Does anyone know where this comes from?

Fusion 360 and Grbl in the past have disagreed about where the center was when calculating G2/G3 arcs. An easy fix was to use metric instead of Imperial measure, since the smaller unit usually resulted in the error not occurring — now that the error has been addressed, it should be okay to use Imperial, and so long as the precision is set reasonably high, results should be equivalent.

  1. The plain fact is that three decimal places of metric code is a higher resolution than four decimal places of imperial code.

  2. The plain fact is that 100% of all CNC machinery EVER MADE on planet Earth has always been natively metric. 100% of all imperial code must be transposed by the control to metric to run the axes.

Running imperial code is not efficient, and will always result in errors stacked on errors stacked on errors. You have to decide if those errors are within your tolerance.

I embrace the millimeter, and I am a red-blooded blue-collar American nephew of my Uncle Sam.


Do you have a cite for that?

The initial APT language seems to have been specced out in Imperial (Inch is ignorable, but there doesn’t seem to be a way to change to metric or to use millimeters) and there were certainly machines made which used it:

(and that file seems to include the plans and code for the infamous ashtray included in the press kits for the first demonstration of a CNC machine).

Since the inch was redefined in terms of the millimeter, conversion should be exact — do you have an example of an incorrect movement in Grbl?

some of it is about computers with small brains…

0.01mm and 0.01" are very different resolution, if the small brain has limited precision capabilities…

Metric and Imperial.
I liked using Metric with my 3018 CNC it was small and metric seemed best. Now that I have the SPXXL, I am changing over to Imperial. I do a lot of conversions.

Imperial times 25.4 = Metric
Metric divided by 25.4 = Imperial

For those who may not know 25.4mm = 1 inch.

This helps me determine if I am using the correct depth one way or another.

1 Like

That’s a fascinating historical document! However, you’re citing a paper written in the era of paper tape and punch cards, when even the term “NC” was theoretical. I’ve met plenty of old manual machinists (or machinist wannabes) that still use that term, because their relationship with computerized mills and lathes is with Prototrak or Anilam or some kind of conversational interface.

CNC is a different thing. I stand by my statement.

A perfect reason to remember conversions for when you need them. I have most of the common fractional values committed to memory, because I work for a living. You might be surprised to hear that except for my first job out of the Army running a simple second operation lathe, I have never worked in Inches in my entire career. I have worked in carbon fiber molds and tooling, I have made valves for Spaceships and I have done it all in millimeters, in America.

By that time, there had been a number of NC machines — the ones making helicopter blades at Sikorsky for example, so not theoretical, moreover, the APT language/system is described as:

a fully computer-controlled NC system

going on to note:

On 25 February 1959 the combined team held a press conference showing the results, including a 3D machined aluminum ash tray that was handed out in the press kit.


(fully) computer-controlled NC system

doesn’t equal CNC, what does?

Apparently there were a number of G-Code implementations preceding EMC as noted at: LinuxCNC - Wikipedia — It would certainly make sense for them to have been coded internally in metric, but one can’t help but wonder if there wasn’t at least one where the G21 command wasn’t supported due to memory constraints.

Do you have an example of a movement specified in Imperial using Grbl which does not result in an equivalent motion when measured in metric?

I use metric for CNC for the most part as well, for a number of reasons, but a concern about conversion is not one of them.


I get it. Folks go a long way to try to defend the theory of choice, like you’re doing here. Who am I to change your mind?

I’ll give you this: if all you make is simple prismatic parts with few features, any argument between metric and imperial is not especially relevant and it comes down to personal choice. But choosing inches says a lot more than you might realize, and there are consequences other than just about sine error or floating point error.

With CAM, a model can be any size or shape at all, and the imagination is the only limit. A part could have a dimension that is an infinite number of decimal places away from zero, and to take a metric model that is converted to inches and back twice in order to make it, it is up to powers beyond the user where the tool cuts.

Choosing inches basically means you’re going to have this same exact conversation over and over again. And again. And again. People are always going to say “I use millimeters, but sometimes I use inches too and that’s okay”, just like you did.

In the end, the machine doesn’t care what standard you feel like using. It’s going to cut out the part with millimeters either way.

It cuts the part with pulses to the stepper motor, not millimetres.


The funny thing, conversions and issues representing numbers are a big part of why I mostly design and work in Imperial units — if I need for example, 1/3rd of an inch, I switch over to measuring in (PostScript) points and set the dimension as 24 points — then, switch over to metric for doing CAM and writing out toolpaths.

Discussions like this really make me wish that more programs would be like TeX and use integer math for internal calculations (and yes, I’ve had typesetting tasks which required using scaled points (sp) 1/65536th of a point).

Yes, but the pulses will be done in terms of microsteps which map to # of steps/mm, so 1/40th of an mm for X and Y when using GT2 2mm pitch belts and 20 tooth count pulleys on an SO2 or later.

That said, 1 inch (25.4mm) will result in 1,016 micro-steps, so should be an exact and replicable motion.

Okay, can’t resist carrying this to the logical conclusion, so:

1/2" == 508 micro-steps
1/4" == 254 micro-steps
1/8" == 127 micro-steps

and one can’t hold an odd sixteenth of an inch w/o being off by half a micro-step (1/40th of an mm)

Continuing w/ metric we get:

0.5mm == 20 micro-steps
0.25mm == 10 micro-steps
0.125mm == 5 micro-steps

and again, one can’t hold an odd sixteenth of an mm w/o being off by half a micro-step, but given the rarity of specifying thus, metric gets the nod here.

Are pulleys w/ 16 teeth available? They’d move a bit slower, but the grid would better match up w/ dimensions, or should we go the other way and try pulleys w/ 32 teeth?


I already geared my X axis to use an effectively smaller drive belt pulley to get less stepper deflection after finding that I’d killed most of the belt deflection and the stepper was now the major offender. (It’s actually a larger belt pulley to reduce belt strain but with a gearing down from the stepper)

I hoped for a nice round number like 60 steps per mm up from the 40 standard on the machine but it came out more like 66.1XX when I finally got the pulleys selected and did a proper measurement and calibration. Carbide motion doesn’t quite hit the 0.025mm steps any more and sometimes in a job I see X=3.003mm instead of X=3.000mm, I’m not sure I can live with myself having caused these huge errors, perhaps I should move to inches where they’ll all be in fractions instead :wink:

But seriously, once you calibrate the machine you’re unlikely to be on a number of steps per any unit which cleanly divides down in the floating point logic the GRBL is running on, whether you’re in rods, perches, knots & slugs or rational SI units.

On Imperial vs SI, I personally draw the line at 100 meters (109 yards 14 and 2/5th inches) it’s SI < 100m but > 100m I think in miles.


The calibration issue is a good point — this is an argument some folks use for not calibrating, but instead leaving a roughing clearance when cutting, then adjusting the file to arrive at the desired dimensions using a finishing pass.

Thanks for all the different points of view. To summarize,

  1. There’s a historical bug that has been fixed. The old workaround was using metric.
  2. By default metric is to three decimal places, and imperial is to four four decimal places. So metric is more precise by default.
  3. Stepper units are in steps/mm, so you can only be “exact” in metric. But if you calibrate your steppers then you lose this property.

Seems to me that if I can get fusion 360 to output more decimal places, the gcode will be a bit longer but there should be no other side effect. Does that sound right? Do you know if gcode is sent as binary or as ascii? Sending longer gcode could result in stutters I suppose.

I found a thread on increasing precision here Solved: Post processor decimal places - Autodesk Community, I’ll try what is in there.

1 Like

G-Code is ASCII (plain text).

1 Like

I was very loosely making this same point. I was rebutting the idea that the machine cut in millimetres by saying it cut using yet another measurement. I left the connection that there would therefore need to be a unit conversion, no matter what your controller logically measured in, to the reader.

Plus, it was bedtime:)


As a machinist, I really don’t care much about HOW a machine works so much that it works when I take care of it. It is, however, useful to know how to fix it when things go wrong, and similarly how to optimize my process to best take advantage of its features.

This is why I am totally confused by debates like this. I feel like doing anything in inches in CNC is like wearing lead underwear. Who does it benefit? What possible advantage could it be?

I think everybody agrees that some people prefer it for whatever reason, but other than that it exists, why would you CHOOSE it?

Familiarity and experience. Same reason you’d probably prefer to read in your native language than another (though there are interesting exceptions to that).

In this group, most are not simply operating a CNC. They are building things. So if they’ve 30+ years of experience thinking and measuring objects in inches, inches are going to be easier to think about and work when they come to designing and building.

Also, the CNC might produce a part that fits into another thing, and that other thing might be 12" long because of history or region.

I work with metric exclusively, and find anything smaller than an inch confusing. But if others find it easier to work in inches because of their history, machines are happy to help them. And that’s what machines are for - to make things easier for people.