Open-source, free nesting application

FREECAD WORKBENCH

From CAD parts
to a better layout.

A practical nesting workflow inside FreeCAD. Keep your original geometry, arrange your stock and inspect a result you can understand.

Source ZIP · manual installation · engine offered on first use. Tested with FreeCAD 1.0 and 1.1 on Windows x64.

The 1st Nesting workbench showing parts, material sheets and nesting controlsTHE REAL FREECAD WORKBENCH

GET STARTED

Three steps to your first launch.

01

Download and extract

Close FreeCAD. Download the source ZIP and extract it. Place the workbench files in a folder named 1stNesting, with InitGui.py directly inside it.

  • Keep a copy of existing job files and results when updating.
  • Avoid an extra nested archive folder.
02

Put it in FreeCAD’s Mod directory

On Windows, use C:\Users\YOUR_USER_NAME\AppData\Roaming\FreeCAD\Mod. On Linux and macOS, use the Mod folder inside FreeCAD’s user data directory. Run App.getUserAppDataDir() in FreeCAD’s Python console to find that directory.

Alternatively, open FreeCAD and choose Tools → Addon Manager. In the Addon Manager window, click the gear icon and choose Open Addons Folder. This opens FreeCAD’s add-ons directory. Close FreeCAD, then place the 1stNesting folder there, with InitGui.py directly inside it.

  • The workbench folder must be writable for jobs, logs and results.
  • The repository is called 1st-Nesting; use 1stNesting as the installation folder name.
1. In FreeCAD, choose Tools → Addon Manager.
1. In FreeCAD, choose Tools → Addon Manager.
2. Click the gear icon → Open Addons Folder.
2. Click the gear icon → Open Addons Folder.
03

Restart FreeCAD and select 1st Nesting

Restart FreeCAD and select 1st Nesting in the workbench selector. Accept the first-use offer to download the CLI-Nesting engine for your system. Then open Nesting Tool from the workbench toolbar or menu.

  • No separate Python installation is needed for normal workbench use.
  • Engine releases support Windows x64, Linux x64/ARM64 and macOS Universal 2; full workbench testing has been performed on Windows.

WHAT YOU CAN DO

Everything your layout needs.

Your real geometry

Add FreeCAD solids, including STEP models opened in FreeCAD, or import DXF and SVG outlines. Curved and concave perimeters are preserved rather than replaced with bounding boxes.

Sheets and reusable offcuts

Use rectangular sheets or irregular DXF stock. Set material quantities, edge margins, fractional part spacing and permitted rotations.

Texture that stays together

Arrange transparent part outlines in the Match texture editor. Snapping, collision checks and minimum spacing help you preserve the relationship between neighbouring parts.

A result you can inspect

Run a fast first solution or a continuous search. Review the reconstructed geometry in FreeCAD and export a coloured SVG report with part legends and sheet utilisation.

THE WORKFLOW, STEP BY STEP

Your first nesting project.

Follow the vertical blocks from adding parts to exporting the result. These screenshots show the real FreeCAD workbench; some earlier captures use its previous name.

18 steps
01

Add FreeCAD and STEP parts

Open your model or STEP file in FreeCAD. Select the bodies or solids in the model tree or 3D view; use Ctrl to select several objects. Open Nesting Tool and click Add Selected. Selected source objects may be added automatically when the tool opens.

Working copies appear in Nesting_Preview. Inspect the face facing upward, especially when drilling or grooves are present on only one side.

  • Source geometry stays separate from the nesting preview.
  • Check that every required part appears in the table.
FreeCAD workbench: Add FreeCAD and STEP parts
01 / Add FreeCAD and STEP parts View image ⤢
02

Import DXF and SVG outlines

Use Import DXF… or Import SVG… to load part profiles. DXF import can accept several files in one operation. Inspect the preview after import and check inner contours and scale.

For a DXF that represents stock rather than a part, use the material Add button later in the workflow.

  • Use closed, correctly scaled outlines.
  • Verify imported quantities before running a job.
FreeCAD workbench: Import DXF and SVG outlines
02 / Import DXF and SVG outlines View image ⤢
03

Review the parts table

The row number identifies each part or saved texture group. Click a row to select its preview geometry. Double-click Qty to enter a positive whole number, and double-click Rotations to edit permitted angles.

Use Remove Selected to remove unwanted rows. Row selection is different from the Select for rotation checkbox, which chooses targets for the preparation Rotate command.

  • Set the number of copies for each part.
  • Inspect the preview when changing orientation.
FreeCAD workbench: Review the parts table
03 / Review the parts table View image ⤢
04

Add rectangular sheets

Click Add in the material section. Enter the sheet dimensions and the number of available sheets. Set the Sheet margin and Part spacing in the main window.

Select a material row and click Edit to revise it. Select and remove a row when that stock is no longer available for this job.

  • Dimensions can be displayed in millimetres or inches; jobs use millimetres internally.
  • Part spacing can include hundredths of a millimetre.
FreeCAD workbench: Add rectangular sheets
04 / Add rectangular sheets View image ⤢
05

Use irregular stock and offcuts

Add stock using a DXF outline when the available material is not rectangular. Inspect its contour, available quantity, grain direction and excluded inner regions.

Use the stock Edit action to review or change an imported outline before nesting.

  • Treat an offcut as stock, not as a part to place.
  • Inspect holes or excluded regions before running the job.
FreeCAD workbench: Use irregular stock and offcuts
05 / Use irregular stock and offcuts View image ⤢
06

Prepare the part orientation

Select the parts with Select for rotation, choose X or Y as the horizontal rotation axis, choose the angle and press Rotate. These preparation rotations change which face points upward; they are separate from the allowed nesting angles in the Rotations column.

180° — Flip over: turn a 3D part over when you want to drill holes or mill pockets on its opposite side. Check that the intended machining face is now facing upward.

90° — Correct the upward-facing side: 1stNesting initially aligns the largest face upward. Some parts have a side face larger than their intended top face. Rotate such a part by 90° around the appropriate X or Y axis to place the intended face upward, then check the preview.

  • Use 180° to expose machining on the opposite side.
  • Use 90° to correct a part that was aligned on a larger side face.
  • Preparation rotations do not change the permitted in-plane nesting angles.
FreeCAD workbench: Prepare the part orientation
06 / Prepare the part orientation View image ⤢
Illustration comparing a 180-degree flip over and a 90-degree change of the upward-facing part side
Illustration comparing a 180-degree flip over and a 90-degree change of the upward-facing part side
07

Choose allowed nesting rotations

Edit the Rotations value for a part to control which in-plane orientations the nesting engine may use. Standard options include a single orientation, four quarter-turn orientations, 45° increments and a custom list such as [0, 180].

Restrict rotations when grain or another directional constraint matters.

  • Allowed rotations are engine constraints.
  • They do not replace the 3D preparation Rotate command.
FreeCAD workbench: Choose allowed nesting rotations
07 / Choose allowed nesting rotations View image ⤢
08

Set texture direction and a custom angle

Enable Texture direction and choose the part’s local X or Y direction. The preview rotates the part and its direction arrow so that the arrow stays horizontal. Direction-constrained parts use [0, 180].

For another direction, also enable Custom angle and use Set custom angle. Inspect the preview arrow after making the selection.

  • Use grain constraints where material direction must be preserved.
  • Saved texture groups keep their relative arrangement.
FreeCAD workbench: Set texture direction and a custom angle
08 / Set texture direction and a custom angle View image ⤢
09

Mark usable holes

Select a part row and use Mark selected part holes. Choose the appropriate through holes that the nesting geometry should consider. Review the highlighted inner contours before continuing.

  • Use row selection for this command.
  • Check that the selected contours correspond to the intended through holes.
FreeCAD workbench: Mark usable holes
09 / Mark usable holes View image ⤢
10

Arrange a texture group

Select the related parts and open Match texture. Drag their transparent outlines into position; inner holes remain visible. The invisible grid aligns neighbouring parts, while collision checks preserve the configured minimum spacing.

Select a part and press Rotate to turn it 90° clockwise. Press Save group when the arrangement is ready.

  • The invisible grid is proportional to the smallest part and rounded to whole millimetres.
  • Parts cannot overlap or move inside the required spacing.
FreeCAD workbench: Arrange a texture group
10 / Arrange a texture group View image ⤢
11

Review or remove matching

A saved Texture matched parts group appears as a numbered table row. It nests as one arranged perimeter, preserving the displayed positions of its members.

Open the matching editor and press Remove matching to release the selected group’s parts back into the table. Check texture direction and rotation constraints again if you change the arrangement.

  • Groups use the same nesting workflow as individual parts.
  • The result reconstructs the original member geometry.
FreeCAD workbench: Review or remove matching
11 / Review or remove matching View image ⤢
12

Choose First or Continuous search

Choose First (fast) to stop after an initial valid solution. Choose Continuous to keep searching for improvements; set a time limit when you want a bounded run.

A zero Continuous deadline means unlimited search. Cancel can stop a run while leaving an already published valid layout available.

  • Start with First (fast) to confirm your job setup.
  • Use Continuous when you want additional search time.
FreeCAD workbench: Choose First or Continuous search
12 / Choose First or Continuous search View image ⤢
13

Select CPU or optional GPU processing

The main window exposes the processor controls used for the nesting job. CPU processing is available; OpenCL GPU processing is optional. Use Show GPUs to inspect detected devices before selecting one.

GPU availability depends on a compatible installed driver and OpenCL support.

  • A GPU is optional, not a requirement for normal nesting.
  • Inspect detected devices rather than assuming every GPU is supported.
FreeCAD workbench: Select CPU or optional GPU processing
13 / Select CPU or optional GPU processing View image ⤢
14

Run nesting and follow progress

Click Run nesting when the part list, stock, spacing, margins and rotation rules are ready. Follow the progress display while the engine searches.

Use Cancel if you want to stop. When a valid result has already been published, it can remain available for inspection.

  • Review quantities and available stock before starting.
  • Correct geometry or constraints if no valid layout is found.
FreeCAD workbench: Run nesting and follow progress
14 / Run nesting and follow progress View image ⤢
15

Inspect the FreeCAD result

The Nesting_Result document opens the completed arrangement and fits the result into view. Review the used sheets, part positions, orientations and texture-group relationships.

The workbench reconstructs original geometry, so curved edges and machining details remain available for inspection.

  • Inspect the CAD result before manufacturing.
  • Compare directional parts against the intended material grain.
FreeCAD workbench: Inspect the FreeCAD result
15 / Inspect the FreeCAD result View image ⤢
16

Connect parts with cutting bridges

Bridges join neighbouring parts into one connected outline. In CAM, that outline can be cut as one continuous cut across several parts, reducing separate starts and unnecessary laser-head retracts or travel moves. Hole cuts and machine-specific cutting paths are still configured in CAM.

Run nesting, then click Create bridges beside Match texture. Choose the sheet and enter the bridge width in the selected mm or inch units. Click an outer edge of the first part, then an outer edge of the second part to add a bridge. The editor checks that the full bridge width does not cross another part or a hole.

Use the mouse wheel to zoom, drag with the left mouse button to pan and press Fit all to see the sheet. Select an incorrect bridge in the list and press Delete selected. Press OK to create Nesting_Bridges. Each connected group becomes one joined 3D solid or 2D cutting profile, ready to export to CAM.

  • Create bridges after obtaining a nesting result.
  • Bridge widths are converted internally to millimetres.
  • A connected outer perimeter can be cut continuously; internal holes require their own cuts.
Create bridges editor showing two coloured parts connected by an orange bridge and an editable bridge list
16 / Connect parts with cutting bridges View image ⤢
17

Export a coloured SVG report

Press Export nesting result to SVG after obtaining a result. Choose the output file location. The report gives parts individual colours and includes legends, positions, angles, areas, placed/unplaced information and sheet utilisation.

The SVG is a layout report. Create and verify machine-specific toolpaths separately in your manufacturing workflow.

  • Keep the SVG with your job records.
  • Use Export to DXF for CAD/CAM contours.
  • Generate and verify machine-specific toolpaths in CAM.
FreeCAD workbench: Export a coloured SVG report
17 / Export a coloured SVG report View image ⤢
18

Export the nesting result to DXF

Press Export to DXF beside the SVG export button and choose a filename. The exporter uses the actual placed CAD geometry, preserving lines, circles, arcs and splines rather than rebuilding them from sampled nesting polygons. FreeCAD parts and imported STEP, DXF and SVG geometry use the same export workflow.

Keep Nesting_Result active to export the nesting arrangement. To export connected parts, keep Nesting_Bridges active. Each part or joined bridge group has its own sheet/part layer, and multiple sheets retain their displayed positions. The file uses millimetres even when the interface displays inches.

The DXF is a 2D top-view drawing with visible holes and machining details. Open it in your CAD/CAM program and select the intended cutting or milling contours. Stock borders, labels and unplaced parts are not exported.

  • Export SVG for a coloured layout report; export DXF for CAD/CAM contours.
  • Check DXF units as millimetres in the receiving application.
  • Inspect the selected contours before generating machine-specific toolpaths.

YOUR NEXT STEP

Put your parts to work.

Download FreeCAD plugin ↓

Contact

Have a question about 1stNesting? Feel free to email us.

info@1nesting.com