How to Make Half Tone Photos on My CNC Machine
This guide walks through the full path from a photo file to a machined dot pattern: grayscale prep, dot pitch math, depth mapping, tool selection, and the errors that ruin a panel. It is written for engineers and machinists who need a repeatable process, not a one-off experiment.

Key takeaways
How a halftone pattern works on a mill
A halftone turns a continuous-tone image into discrete cells. In printing, each cell holds an ink dot of a fixed size inside a rotated grid. On a CNC machine, the same grid is cut as a physical feature: a pocket, a dimple, or a V-groove. Dark areas get larger or deeper cells, light areas get smaller or shallower ones.
The image is not read at the machine. It is sampled first. A 300 mm wide panel at 1.0 mm pitch gives 300 cells across. That is the real resolution of the finished part, not the pixel count of the source file. A 4,000 × 4,000 px photo downsampled to 300 cells loses most of its detail, and that is expected.
Viewing distance sets the pitch. A panel seen from 2 m can use 1.5 mm cells and still look smooth. A hand-held part seen at 300 mm needs 0.6 mm or finer, which pushes tool tip radius down and cycle time up.
The tonal range comes from depth, not just width. A shallow 0.05 mm cell catches less shadow than a 0.25 mm cell of the same diameter. Combining both variables gives roughly 16 to 32 usable gray levels before the pattern turns muddy.
- 1Grid angleUse 45° or 15° cell rotation. A 0°/90° grid aligns with the toolpath and shows banding.
- 2Cell shapeRound, square, and diamond cells give different edge sharpness. Square holds the darkest tones best.
Preparing the photo before it reaches CAM
Start with a grayscale conversion, not a desaturation. A plain desaturate keeps colors that map to similar gray values, which flattens contrast. Use a channel mixer or a luminance-weighted conversion so reds and blues separate cleanly.
Set the black and white points manually. If the darkest part of the photo is only 20% gray, the machined panel will have no deep cells and look washed out. Stretch the histogram so pure black sits at the shadow end and pure white at the highlight end.
Sharpen with restraint. A small unsharp mask at radius 1–2 px helps edges survive downsampling. Heavy sharpening creates halos that become visible rings of dots on the part.
Crop to the final aspect ratio before you convert. Resampling after conversion mixes gray levels and softens the dot edges you just tuned.
- 1Bit depthWork in 16-bit gray until the final export. 8-bit banding shows as stair-stepped tone bands.
- 2Target sizeExport at 2× the cell count, then let the CAM resample down. It reduces aliasing.
Tool selection and cutting parameters
A V-bit cuts a cone, so depth and diameter are linked. That linkage is useful: one Z move sets both the shadow depth and the dot width. It also means a worn tip silently changes the tone. Measure the tip radius every 20,000 cells and replace the cutter when it grows past 0.05 mm.
A ball nose cutter cuts a spherical dimple. The depth-to-width relationship is flatter, so tonal control is easier but the darkest blacks need deeper cuts. Use it when the material is prone to chipping at sharp V tips, such as cast aluminum or some coppers.
Spindle speed matters less than chip clearance. Small cells trap chips. Add a strong air blast and keep the depth of cut per pass under 0.05 mm. Pecking every 0.1 mm of total depth is usually enough.
Coolant is a trade-off. Mist helps on aluminum but leaves residue in shallow pockets that is hard to clean out before anodizing. Air blast alone keeps the cells dry and inspection simple.
- 1Aluminum 60618,000–12,000 rpm, 800–1,500 mm/min, air blast, 0.05 mm per pass.
- 2Brass C360006,000–9,000 rpm, 600–1,000 mm/min. Cuts clean with a 60° bit.
- 3Stainless 3044,000–6,000 rpm, 300–500 mm/min, mist coolant. Expect shorter tool life.
- 4PMMA / ABS10,000–14,000 rpm, 1,200–2,000 mm/min. Slow down on ABS to avoid smearing.
Material behavior and finishing
Aluminum 6061 is the default. It cuts crisp cell walls, anodizes evenly, and holds a clear contrast between the cut face and the parent surface. Hardcoat anodizing darkens the machined cells more than the untouched surface, which increases apparent contrast by roughly one tonal step.
Brass and copper cut with a burr-free edge at moderate speeds. They also tarnish, so an electroless nickel or clear lacquer layer is worth planning before you commit to a fine pitch. Coating thickness of 5–10 μm can close a 0.4 mm cell by 5%.
Stainless steel 304 and 316 work but demand slower feeds and fresh tooling. Cell edges on stainless tend to be sharper than aluminum, which reads well under grazing light but can be too bright in direct light.
Plastics are the difficult case. PMMA machines cleanly if you keep the feed high and the depth per pass low. ABS and POM smear and leave fuzz that fills shallow cells. If the part must be plastic, increase the pitch to 1.5 mm or more.
For contrast, laser marking is a different process and does not produce the same depth-based tonal range. It creates a surface color change with a minimum character height of 1.5 mm, so it suits text and logos, not photographic halftones.
- 1AnodizingClear, color, and hardcoat all shift tone slightly. Test on a coupon.
- 2Bead blastingUse only before machining, or mask the dot area entirely.
Step by step: photo to machined panel
Follow the order. Skipping a step usually shows up as banding or broken dot walls.
- 11. Fix the viewing distance and panel sizeDecide where the part will be seen. For 300–500 mm viewing, use 0.6–0.8 mm pitch. For 1–2 m, use 1.0–1.5 mm. Write the pitch down before touching the image.
- 22. Convert to grayscale and stretch levelsLuminance conversion, then set black point and white point so the histogram spans 0–255. Check that midtones are not clipped.
- 33. Downsample to the cell gridResample to the exact cell count in both axes, using bicubic. For a 300 mm panel at 1.0 mm pitch, that is 300 × 300 cells.
- 44. Map gray value to cell depth and widthWhite = 0.05 mm depth, black = 0.25–0.30 mm. Keep cell width between 40% and 80% of pitch so walls stay intact.
- 55. Generate the dot geometry in CAMUse a drilling or pocketing cycle per cell, or a V-carve for graduated depth. Sort the toolpath by nearest-neighbor to cut rapid moves by 40–60%.
- 66. Pick the tool and set feeds30° V-bit with 0.2 mm tip for fine pitch, 60° with 0.5 mm tip for coarse work. Aluminum: 8,000–12,000 rpm, 800–1,500 mm/min, 0.05 mm per pass.
- 77. Cut a test coupon firstMachine a 50 × 50 mm patch at the same pitch. Inspect under raking light and compare with the source image before running the full panel.
Which halftone method fits your part
Match the method to the material, viewing distance, and finish you plan to apply.
| Method | Best for | Pitch range | Watch out for |
|---|---|---|---|
| V-bit engraved dots | Fine detail, small parts | 0.4–0.8 mm | Tip wear shifts tone over a long run |
| Ball nose dimples | Softer tonal gradients | 0.8–1.5 mm | Needs deeper cuts for true black |
| Flat-bottom pockets | Even shadow, easy inspection | 1.0–2.0 mm | Visible steps at cell borders |
| Anodized two-tone | Decorative panels, signage | 0.6–1.2 mm | Masking accuracy limits the finest dots |
| Bead-blasted recess | Large architectural panels | 1.5–3.0 mm | Blasting rounds the cell edges |
The short answer
Choose one pitch, one tool, and one depth range, then cut a test coupon before the real panel. Most failed halftone jobs come from changing more than one variable between the test and the production run.
Common questions
How many gray levels can a machined halftone really show?
With a single V-bit and a 0.05–0.30 mm depth range, plan on 16 to 32 usable levels. Beyond that, adjacent cells differ by less than the tool can repeat, and the pattern flattens into noise.
If you need more range, widen the depth span or use two passes with different tools.
Can I cut a halftone on a 3-axis machine?
Yes. A halftone is a flat array of Z-depth features, so 3-axis machining handles it well, provided the panel face is flat and the pitch is constant.
Use 5-axis only when the halftone wraps onto a curved or angled surface.
What is the smallest dot I can machine reliably?
A 0.2 mm tip radius on a 30° V-bit cuts cells down to about 0.4 mm pitch. Below that, chip clearance and tool runout start to dominate.
Repeatability is the real limit, not the cutter geometry. Keep ±0.005 mm on the Z axis.
Why does my finished panel look darker than the source image?
Machined cells scatter light and read darker than paper. The effect grows with depth and with a rough as-machined finish.
Compensate by lifting the midtones 5–10% in the source image before conversion, or reduce the maximum depth by 0.05 mm.
Does the halftone survive anodizing or powder coating?
Anodizing preserves it and often improves contrast. Powder coating is too thick and will fill cells under 1.0 mm, so use it only on coarse pitches or mask the pattern.
A 5–10 μm coating can close a fine cell by around 5%, which is visible on a graded panel.
How long does a 300 mm halftone panel take to machine?
At 1.0 mm pitch, the panel holds about 90,000 cells. With a sorted toolpath and a 0.05 mm depth per pass, a typical cycle runs several hours.
Toolpath sorting and a coarse pitch are the two biggest levers on cycle time.
Send us your halftone project
Share the image, panel size, and material. We return a quotation and a free DFM analysis within 12 hours, with no minimum order quantity.
12-hour quote100% inspectionNDA on request