SP Tooling 360 SP TOOLING APPS 360 SOLUTIONS
Okuma OSP-P500 · Multus Software and pricing →

ISO 1 · ASME B89.6.2 · 20 °C

Your print is dimensioned at 68 °F. Your shop is not.

Every dimension on a drawing is defined at 20 °C, whether or not the drawing says so. A measurement taken at any other temperature is not the dimension the print calls out — it is that dimension plus a thermal offset you have to back out. We read the offset off the machine, in real time, and take it out of the number.

Thermal offset · live dev = L · α · (T − 68) / 1.8
+0.00807in80.7 tenths

What the control writes

        

Records the machine itself puts in the results file, at the moment the point is probed.

Coefficients are the shared table the post processor, the scaler and the report all read. Plastics carry a band, not a single number.

The choice

Chill the building, or measure what it costs you.

A 20 °C metrology lab is the right answer and almost nobody has one on the floor. The shop runs at whatever the season and the spindle give it, the coolant runs warmer than the shop, and the part comes out of the machine warmer than both.

So there are three honest options. Hold 68 °F everywhere, which is a building project. Ignore it, and argue about tenths with your customer's inspection department. Or measure the temperature at the moment of the cut and at the moment of the probe, and take the arithmetic out of the argument.

The third one is a software problem, and it is the one we solved on our own two Multus U3000W machines before we sold it to anybody.

The chain · sensor to signed report

Five steps, none of them typed by hand.

01

Sense

Wireless sensors report shop ambient, machine enclosure and coolant. Channels are addressed by name, so adding a sensor is a pairing job, not a rebuild. A channel with no sensor publishes a sentinel, never zero — a dead sensor can never be read as a very cold shop.

Machine Shop1 Temp
Multus 2 Enclosure Temp
Multus 2 Coolant Temp
missing → −9999
02

Write it into the control

MachinePulse 360 runs on the OSP itself and writes each channel into a common variable. From that moment the temperature is machine data — readable by the program that is running, not by a spreadsheet afterwards.

VC[196] shop ambient
VC[197] enclosure
VC[198] coolant
03

Stamp it on the measurement

The program, posted by our Multus post processor, writes the temperature and the stock material into the results file beside each probed point. Coolant outranks enclosure, which outranks ambient, because coolant is the closest thing on the machine to the temperature of the part.

TEMPCLNT 75.9 F
TEMPAMB  79.0 F
MATERIAL ALUMINUM 6061
04

Probe it on the machine

Renishaw inspection posted straight out of CAM. Protected positioning only — no raw rapid ever moves the stylus — and the numbers are written by the control at the moment of contact, so the record is the measurement rather than a transcription of it.

O9810 protected move
O9814 bore / boss
O9833 disarm
05

Correct it, and forecast it

Inspection Reporter reads the file and gives every point a second row at 68 °F, with its own margin and its own pass or fail. That row is the forecast: what the feature will measure when the part reaches the inspection room, before it ever gets there.

N4   dev −0.00288 OK
@68F dev −0.00306 OK

Two directions

Correct the measurement, or pre-load the G-code.

After the cut → the report

dev₆₈ = dev − L · α · (T − 68) / 1.8

The part was measured warm. The report subtracts the growth that was in it at the moment of the probe and reports the dimension the print actually calls out. Nothing about the program changes.

Where a material's coefficient is too loosely defined for the tolerance in front of it, the correction is withheld and the reason is printed. A number nobody can defend is worse than no number.

Before the cut → the model

k = 1 + α · (T − 68) / 1.8  →  L_cut = L₆₈ · k

CTE Scaler makes a marked manufacturing copy of the model, scaled about the setup's own work origin, and you post from that. In a cold shop k is less than one and the copy is deliberately small; the part grows into nominal as it warms. The master model is never touched, so the CMM still has the truth.

Fusion clamps a scale factor to five decimal places, so the record carries the k that was measured off the geometry, not the k that was requested.

The temperature the copy is scaled for is the one the programmer enters, and the part is cut hours or days later. Whatever separates that number from the temperature the part is actually at leaves a residual of L · α · (Tscale − Tpart) / 1.8 — which is precisely the term the report measures and prints. A poor estimate shows up as a deviation on the record instead of hiding in the metal. Feeding the scaler the coolant temperature the control is already holding, and then forecasting it for the scheduled run, is the next piece of work.

And they can never both happen to the same part.

A program posted from a scaled model already carries shop-temperature nominals, so its raw deviations are already 68 °F deviations. Correcting them again subtracts the growth twice — roughly ten tenths on six inches of aluminum in a 55 °F shop, silent, and in the scrap direction.

So the post stamps CTESCALE k material tempF into the results file, and the report refuses to correct on the presence of that stamp — not on parsing it successfully. A stamp that is garbled still stops the second correction. That is why the scaler, the post and the report are sold and versioned as one system.

The report

Every point twice. Measured, and at 68 °F.

The corrected value is its own row, not a column — because a derived number sitting in a column beside measured ones starts to read as another measurement once the report is printed and filed.

AIR-P120 · main spindle · part temp 75.9 °F (coolant) · shop ambient 79.0 °F
N4    X 0.8749  Y 0.2530   dev −0.00288   OK
@68F  corrected — thermal growth +0.00018 removed    −0.00306   OK

N5    X 1.6255  Y 0.2530   dev −0.00051   OK
@68F  corrected — thermal growth +0.00033 removed    −0.00084   OK

N6    Ø 1.2497            dev −0.00046   OK
@68F  corrected — thermal growth +0.00025 removed    −0.00071   MARGINAL

Real output. Material, temperature and coefficient are carried on the record itself, so the report is reproducible a year later.

The rest of it, also live

Temperature is one signal. The others run the same way.

ToolSync 360

The tool library, pot by pot

What is actually in the magazine right now: pot number, gauge length, diameter, corner radius, flute count, holder and accumulated cutting time. Pushed to a floor screen within a second of the control writing it, and checked against the program before it runs.

MachinePulse 360

Temperature on the control

Ambient, enclosure and coolant, written straight into the OSP common variables where a running program can read them. Values are blanked on exit, so a closed application can never leave a stale temperature behind for the next part.

Post processor

Probing, posted not written

Renishaw cycles, thermal records, collision-avoidance geometry and tool gauge data emitted from CAM for Multus and OSP-P500 — protected moves throughout, and the B axis retracted before it is ever repositioned.

Inspection Reporter

The corrected report

Reads the file the machine wrote and produces the inspection record, with the 68 °F forecast on every point. Temperature and material can be filled in by hand when a machine has no sensor — but anything the file recorded always wins.

CTE Scaler

The pre-scaled copy

A Fusion 360 add-in that builds the manufacturing copy, scales it about the right origin, regenerates the toolpaths and marks the result so nobody can confuse it with the master.

Shared

One material table

The coefficients live in one place and are read by the post, the scaler and the report. A test asserts all three offer the same materials in the same order — ordered by coefficient, so a grade you cannot find sits beside one that expands like it.

SP Tooling Inc.

If you cannot hold your machine and your coolant at 68 °F, compensate for it.

Built on Okuma Multus U3000W and OSP-P500, in a real shop, on real parts. If you run a Multus, most of this is a licence and an afternoon.

The software catalog sits behind a passcode. Ask for one and we will send it the same day.