Integra Dental NC Partial Extraction

Restart the cut.Not the whole job.

When a mill stops halfway through a long zirconia job, you should not have to go back to CAM, recalculate every toolpath and run roughing again. This tool edits the program you already have: it writes a new file that starts where you need it, with the machine state the original had at that point, and checks it before it saves.

Free and open source from Integra Dental, dental CAD/CAM distributor and authorized Arum dealer.

CASE_4UNIT_BRIDGE.nc1,012,365 lines, 3 tools
T1 ROUGHING
T2 FINISHING
T3  SUPPORT CUT OFF
Where the mill stoppedReplayed safely from the last rapid moveT1 never runs again
At the millOne alarm at line 482,113. The restart picks up just before it.
One program. Only the part you need.
  • Restart after a stop
  • One tool
  • One operation
  • Line ranges
  • File checks

The problem

Two ways back from a stop.Only one reruns the whole case.

An air pressure alarm, a broken tool or a power cut leaves a program half done. The usual fix treats it as new work. This tool treats it as an edit.

Back to CAM

Recalculate and repost the whole job

  1. Open the case again in CAM
  2. Recalculate every toolpathThe CAM station is busy for the full calculation again.
  3. Post a new NC file
  4. Transfer it, reload it, check offsets
  5. Run T1 roughing againIn air if you are lucky, in material if you are not.
  6. Finally reach line 482,113 again

Everything before the alarm runs again.

Integra Dental NC Partial Extraction

Edit the program you already have

  1. Map the program into tool phases and operations
  2. Pick the restart line, block number, phase or operation
  3. Write the partial programPreamble, tool change, restored state, safe approach, original toolpath unchanged, clean end.
  4. Verify its state against the originalNothing is saved if anything differs.
  5. Resume cutting with the blank still clamped

About 16 seconds for a million line program in our tests.

The new file

What a restart program contains.Line by line.

The start of a real output from the synthetic sample in the repository, restarted at line 300 during T2. The marked lines are the ones the tool adds.

%O1001(PARTIAL PROGRAM BY INTEGRA DENTAL NC EXTRACTION V0.1.0)(KEEPS SOURCE LINES 249 TO 638 PHASE 2 T2)(ENTRY RESTART AT RAPID LINE 248)G90 G17 G21 G40 G80 G94G53 G0 Z0.G54                     (set in T1, restored)T2 M6T3S24000 M3M8G0 A0. B0.G0 X0. Y0.G43 H2 Z15.S22000 M3               (changed mid phase)G53 G0 Z0.              (safe retract)G0 A15. B90.            (rotaries at height)G0 X-6. Y-6.G0 Z2.                  (then down in Z)G0 F1800.G1 Z-1.500 F600.0       (original toolpath)G1 X6.000 Y-6.000 F1200.0X6.000 Y-5.600...M30%
  • Original preambleProgram number, units, plane and anything machine specific, copied as is.
  • The phase’s own tool changeT2, spindle, coolant and length offset exactly as the CAM post wrote them.
  • State the original had at that pointWork offset set by an earlier tool, a speed changed mid phase, coolant, feed and motion mode.
  • Safe approachRetract to your own machine Z, turn the rotary axes up there, position X and Y, then come down in Z.
  • Original toolpath, byte for byteStarting from the last rapid move before the stop, so the tool comes in the way CAM planned it.
  • Clean endRetract, M5, M9 and M30 when your selection does not already include the program end.

What you can ask for

Four everyday jobs.One file you already have.

  1. 01

    Restart after a stop

    From a line or a block number to the end, or only to the end of the phase.

    restart JOB.nc --block 48210
  2. 02

    Run one tool

    Rerun a finishing tool, or one phase of several, without the others.

    extract JOB.nc --tool T2
  3. 03

    Run one operation

    The final support cut off pass so the parts drop, or any operation CAM named.

    extract JOB.nc --op-match support
  4. 04

    Check a file that won’t load

    Missing M30, code after the end, stray characters, mixed line endings.

    check JOB.nc
With the skill installedYou do not type these. Tell Claude what happened at the machine and it maps the file, asks what it needs, runs the tool and walks you through the restart.

Safety

Built to refuse a bad restart.And to say why.

Checks on every file

  • Simulates the new program and compares units, plane, work offset, tool, length offset, spindle, coolant, feed, motion mode and every axis position with the original at the restart point.
  • Copies the original toolpath lines unchanged and confirms it did.
  • Never overwrites your source file.
  • Keeps your line endings and always writes a decimal point in the moves it adds.

Refuses, and explains

  • A restart inside G91 incremental moves.
  • A restart inside an active drilling cycle.
  • A restart with cutter compensation on.
  • A restart with coordinate rotation, scaling, G52 or G92 active.
  • A restart with no safe retract known, until you give one.

Keep the blank clamped. Open the new program in your CAM simulator first and check the first approach. Leave the blank clamped exactly where the job stopped, and do not remove the part or the tool, or the restart will not line up. Confirm the work offset, tool and length offset match the original job, then run the restart program.

Install

Free and MIT licensed.No dependencies.

Source, tests and synthetic sample programs are on GitHub.

Claude Code

Add the marketplace and install the plugin.

/plugin marketplace add integra-dental/nc-partial-extraction
/plugin install integra-dental-nc-partial-extraction@integra-dental

Claude apps

Zip the skills/integra-dental-nc-partial-extraction folder and upload it as a skill in Claude’s settings, under Capabilities. Code execution must be on.

Command line

Python 3.8 or newer, standard library only.

python3 skills/integra-dental-nc-partial-extraction/scripts/nc_extract.py map JOB.nc

Looking at a new mill or need CAM help

Start with Integra.

We sell, install and support Arum milling systems,
train operators and mill for labs every day.