How to go from a raw 3D scan of a physical molding, carving, or trim piece to a clean, lightweight, parametric CAD file ready for CNC reproduction.
Primary tool covered: Autodesk Fusion 360 · Also referenced: MeshLab, Geomagic, Rhino, VXelements
Historic buildings are full of irreplaceable millwork that was hand-carved or run on molding machines that no longer exist. When a piece is damaged or needs to be matched for a renovation, the only faithful way to reproduce it is to capture its exact geometry. A 3D scan turns a physical artifact into a digital mesh, and with the right workflow, that mesh becomes a parametric CAD model that can be CNC-cut as many times as needed.
The goal is a file that is lightweight enough to email and share, dimensionally accurate enough to match the original, and parametric so that it can be scaled or adjusted for new applications — all without losing the character of the original design.
Structured-light scanners (like the Einscan series, Revopoint, or Artec Eva) work well for millwork because they capture fine surface detail at close range. Laser-line scanners (like FARO arms or Creaform) are better for larger pieces or in-situ scanning where the molding is still installed. LiDAR on a phone can capture overall form but typically lacks the resolution to reproduce detailed profiles.
Prep the surface.
If the piece is dark, glossy, or translucent, apply a thin coat of scanning spray (e.g., AESUB Blue) or developer spray. This creates a matte white surface that scanners can track. The spray evaporates in hours and leaves no residue.
Use reference targets.
Place adhesive tracking targets around the piece if your scanner supports them. This helps the software stitch multiple passes together accurately, especially on long runs of molding.
Overlap your passes.
Move slowly and ensure at least 30% overlap between scan passes. Holes in the mesh are much harder to fix later than spending an extra minute scanning.
Scan a clean cross-section if possible.
For linear moldings (crown, base, casing), scanning a cleanly cut end grain reveals the profile clearly. If you can remove a short sample, scan it as a standalone piece — this is much easier to digitize than trying to extract the profile from a long run.
Tip: Export your raw scan as both a high-resolution OBJ (with normals) and a reduced STL. Keep the high-res version as an archive, and use the reduced version for modeling.
Fusion 360 can import OBJ, STL, and 3MF mesh files. STL is the most widely supported, but OBJ retains vertex normals and texture coordinates if you need them later. For initial modeling work, STL is usually fine.
A raw scan might contain millions of triangles and weigh hundreds of megabytes. Before bringing it into Fusion, you want to clean it up and reduce its polygon count without losing the detail that matters.
Tools like MeshLab (free), Geomagic Wrap, or VXelements are built for mesh editing and are faster and more capable than Fusion at this stage. The key operations:
Hole filling
Close any gaps from areas the scanner missed. Most tools can auto-detect and fill holes. Review filled areas to make sure the interpolated surface is reasonable.
Noise removal & smoothing
Apply a light Laplacian smooth to remove scan noise without blurring sharp edges. Be conservative — over-smoothing erases the crisp arrises that define molding profiles.
Decimation (polygon reduction)
This is the big win. In MeshLab, use Quadric Edge Collapse Decimation(Filters > Remeshing > Simplification). A 1-million-triangle mesh can often be reduced to 100k–200k triangles with minimal visual difference. Flat and gently curved areas lose triangles; detailed areas keep them.
Alignment & scaling
Orient the mesh so the profile’s cross-section lies along a primary axis (e.g., the molding runs along X). Verify scale against a known measurement, like the overall width of the molding.
For CNC reproduction of millwork, a mesh between 50k and 200k triangles is usually sufficient. The CNC toolpath resolution is limited by the bit diameter (typically 1/8″ or 1/16″), so sub-millimeter mesh detail won’t translate to the physical cut. Reduce aggressively on flat surfaces but preserve detail on ornamental areas.
The core idea: use the mesh as a visual reference and trace over it with sketch geometry, then use Fusion’s solid and surface modeling tools to build clean parametric bodies. Do not try to directly convert the mesh to a solid — the result is almost always an unusably heavy, non-parametric body.
Import the mesh.
Insert > Insert Mesh. Choose your cleaned STL or OBJ. Fusion will show it as a mesh body in the browser. Make sure the units are correct (mm vs inches).
Slice the mesh with section sketches.
This is the critical step. Go to Mesh > Create > Create Mesh Section Sketch. Place a construction plane through the mesh at the cross-section you want to capture. For a linear molding, one good cross-section may be all you need. For a 3D piece, create multiple section planes at regular intervals.
Fit curves to the section.
Use Mesh > Create > Fit Curves to Mesh Section. Fusion will trace the intersection line and convert it into sketch geometry — arcs, lines, and splines. You can adjust the tolerance to control how closely the curves follow the mesh. Tighter tolerance = more control points = heavier file. For most millwork profiles, a tolerance of 0.1–0.5 mm is a good starting point.
Clean up the sketch.
The auto-fitted curves will have extra spline points and small artifacts. Simplify by replacing complex splines with arcs and lines where the geometry is clearly circular or straight. Add constraints (tangent, perpendicular, equal) to make the sketch fully parametric. This is where most of your time goes, and it’s where the quality of the final file is determined.
Extrude, revolve, sweep, or loft.
Once you have a clean profile sketch, use standard solid modeling operations to build the 3D body. For a linear molding, a simple extrude to the desired length is all you need. For turned elements (rosettes, column capitals), revolve. For elements that follow a curved path (arched casing), sweep.
Compare against the mesh.
Use Fusion’s Inspect > Section Analysis or simply toggle the mesh body’s visibility to overlay your new solid against the original scan. Look for areas where your simplified geometry deviates noticeably. Adjust sketch dimensions as needed.
Tip: Because section planes are in Fusion’s parametric timeline, you can go back and move them, add new ones, or adjust their angle at any time. This makes it easy to iterate.
Warning: Avoid using Mesh > Modify > Convert Mesh (mesh-to-BRep) for complex millwork. It converts every triangle to a surface face, producing bodies with thousands of faces that are slow, non-parametric, and nearly impossible to edit. This tool is better suited for very simple, low-poly meshes.
Much of architectural millwork is built from repeating motifs — dentil blocks, egg-and-dart patterns, fluting, bead-and-reel moldings. Rather than modeling the entire piece, model one repeat unit and then pattern it.
Identify the repeat unit.
Look at the mesh and find the smallest section that, when repeated, creates the full pattern. For a dentil band, it’s one block plus one gap. For egg-and-dart, it’s one egg and one dart.
Model just that unit as a solid body.
Use the section-sketch workflow above, focusing your section planes on one repeat. Build a clean, fully-constrained parametric solid.
Use Rectangular or Circular Pattern.
Fusion’s Create > Pattern > Rectangular Patterncan repeat your unit along any axis. Set the distance to the repeat pitch (measured from the scan) and the quantity needed. If the pattern follows a curve (e.g., around a rosette), use the Pattern Along Pathtool instead.
A Fusion pattern is parametric — change the unit and every instance updates. Change the pitch or count and the band grows or shrinks. This makes it trivial to adapt an 8-foot dentil run to fit a 6-foot window header.
Not everything can be rebuilt as parametric geometry. A hand-carved acanthus leaf capital, a figural bracket, or a freeform floral panel contains organic shapes that don’t reduce to arcs, lines, and extrudes. For these pieces, you keep the mesh — but optimize it for CNC.
For complex one-off carvings, the most practical path is often to skip parametric modeling entirely and instead prepare the mesh itself for CNC toolpath generation.
Decimate aggressively but intelligently
Use MeshLab’s Quadric Edge Collapse or Geomagic’s mesh doctor to reduce polygon count. Target 50k–150k faces for a typical carving panel. Preview at each stage and compare against the original to spot quality loss.
Remesh for uniform topology
Isotropic remeshing replaces the irregular scan triangles with uniformly-sized faces. This produces smoother toolpaths and more predictable machining. In MeshLab: Filters > Remeshing > Isotropic Explicit Remeshing.
Ensure watertight geometry
Fill all holes, fix non-manifold edges, and remove internal faces. CAM software needs a watertight mesh to generate reliable toolpaths. Use Mesh Repair tools in your software of choice or Fusion’s built-in Mesh repair.
Generate toolpaths from the mesh
Software like MeshCAM, Fusion 360 Manufacturing, Vectric Aspire, or RhinoCAM can generate 3-axis and 5-axis toolpaths directly from mesh geometry. For deep undercuts or full 3D carvings, a 5-axis machine is significantly more capable.
For carvings that have a geometric base (like a capital with an identifiable bell shape) topped by organic detail (acanthus leaves), consider a hybrid approach: model the base parametrically for dimensional accuracy, then overlay the organic mesh for the detail pass. This gives you the best of both worlds — a resizable base and faithful surface detail.
For very high-value pieces that need to be resizable and editable, consider retopology in Rhino with Grasshopper, or ZBrush/Blender for SubD (subdivision surface) modeling. These tools let you lay a clean, editable surface over the scan that preserves the organic form while being dramatically lighter than the raw mesh. This is the most skilled approach and typically the most time-consuming.
Tip: For architectural reproduction, Approach A (optimized mesh direct to CAM) is the fastest and most common path for ornate carvings. Save Approach C for museum-grade reproductions or when the carving will be adapted into multiple sizes or configurations.
Whether you built a parametric solid or optimized a mesh, the file needs to be CNC-ready. Here are the key considerations:
File format
For parametric solids, export as STEP (.stp) for maximum compatibility with CAM software. For meshes going direct to CAM, STL at the appropriate resolution is standard. Some shops prefer 3MF.
File size targets
A parametric STEP file of a molding profile should be under 1 MB. An optimized mesh STL for an ornate carving should be under 20 MB. If your files are larger, further decimation or simplification is warranted.
Orientation and datum
Orient the model so the machining face is up (Z-positive). Place the origin at a logical datum — typically one corner of the stock material. Include the stock bounding box dimensions in your file metadata or file name.
Undercuts and draft
If the piece will be cut on a 3-axis router, verify there are no undercuts (geometry that the bit can’t reach from above). Fusion’s draft analysis tool can highlight problem areas. For complex carvings, 5-axis machining or a two-sided flip operation may be necessary.
Tool diameter awareness
The smallest detail the CNC can cut is limited by the smallest tool bit. A 1/16″ ball-nose endmill can reproduce detail down to about 1.5 mm radius. Smaller detail exists in the file but won’t appear in the physical cut. Keep this in mind when deciding how much mesh detail to preserve.
The goal is not to preserve every polygon from the scanner — it’s to preserve every detail that the CNC machine can actually reproduce. A 50 MB file and a 5 MB file will produce the same physical piece if the difference between them is in sub-millimeter surface noise that no router bit can cut.
Fusion 360 has a full Python and C++ API that supports third-party add-ins. The Autodesk App Store hosts hundreds of community and commercial plugins, and Autodesk provides open-source skeletons and documentation for building your own.
Add-ins can create custom commands, add UI panels, automate repetitive operations, and integrate with external services. This opens up some interesting possibilities for the MillworkDatabase community:
Direct library integration
A Fusion add-in that connects to the MillworkDatabase API, letting users browse and insert millwork profiles directly into their Fusion timeline without leaving the application.
Automated scan-to-profile
A workflow assistant that automates the section-sketch + fit-curves + cleanup pipeline for linear molding profiles, reducing what is currently a manual 30-minute process to a few clicks.
Profile matching
Upload a scan and let the plugin compare it against the MillworkDatabase library to find existing profiles that match — potentially saving the user from digitizing something that’s already been done.
These are future roadmap ideas. Fusion’s API is mature enough to support all of them — add-ins can access mesh data, create sketches, run commands, and make HTTP requests to external services. The Autodesk App Store provides a distribution channel. If you’re a developer interested in contributing to this effort, reach out via our contact page.
This guide was informed in part by the following tutorial on mesh-to-CAD workflows in Fusion 360. It walks through the section sketch and fit curves approach in detail:
Watch: Mesh to CAD in Fusion 360Once you’ve built a clean parametric file from your scan, upload it to the MillworkDatabase so the community can benefit. Every profile shared is a piece of architectural heritage preserved.