In mechanical design, a single component often needs to be available in multiple sizes. A spacer may come in several lengths, a bracket may have different mounting dimensions, and a housing may need different widths for different applications.
Creating a separate CAD model for every variation can quickly become difficult to manage. When a design change is required, you may need to update multiple files, increasing the risk of inconsistencies.
FreeCAD provides a more efficient approach using parametric modeling, spreadsheet-driven configuration tables, and variant links. These tools allow you to define a base design, specify which parameters can change, and create multiple configurations without rebuilding the entire component from scratch.
In this guide, you will learn how to create configurable mechanical parts in FreeCAD, set up different design variations, and understand when this workflow is useful.
What Are Variant Parts in FreeCAD?
Variant parts are different configurations of the same underlying design. Each configuration changes selected dimensions or properties while retaining the main design intent.
For example, imagine designing an aluminum spacer with a fixed outer diameter but several possible lengths.
| Configuration | Outer diameter | Inner diameter | Length |
|---|---|---|---|
| Short | 10 mm | 5.1 mm | 6 mm |
| Medium | 10 mm | 5.1 mm | 12 mm |
| Long | 10 mm | 5.1 mm | 20 mm |
Note: These are illustrative dimensions for a tutorial, not manufacturing specifications.
A configuration table stores the predefined parameter values, while a variant link or supported binder workflow can create an instance that uses a selected configuration.
Why Use Configurable Parts Instead of Separate Models?
Managing multiple versions of a component manually can introduce unnecessary work.
- Reduce duplication: Start with one master design instead of independently modeling every size.
- Improve consistency: Keep shared design logic and geometry together.
- Speed up revisions: Update the master model when a common feature needs to change.
- Support product families: Organize standard and custom sizes in a repeatable workflow.
- Improve reuse: Use configured parts in larger assemblies where appropriate.
The key is to distinguish between parameters that should vary between configurations and parameters that should remain common to all versions.
Step-by-Step: Create Multiple Configurations in FreeCAD
For this tutorial, we will create a configurable mechanical spacer with three length options. The same principle can be applied to brackets, mounting blocks, housings, and other parametric components.
Step 1: Create the Base Mechanical Part
- Open FreeCAD and create a new document.
- Switch to the Part Design workbench.
- Create a Body and start a sketch on the XY plane.
- Draw two concentric circles for the outer and inner diameters.
- Apply dimensional constraints to define the diameters.
- Use Pad to extrude the sketch and create the spacer.
For this example, use an outer diameter of 10 mm, an inner diameter of 5.1 mm, and an initial length of 6 mm. The goal is to build a fully constrained, editable parametric model rather than a static solid.
Step 2: Create a Spreadsheet for the Configurations
Switch to the Spreadsheet workbench and create a new spreadsheet. Rename its label to SpacerConfigs.
Enter the following example data:
| Cell | A: Variant | B: OuterDiameter | C: InnerDiameter | D: Length |
|---|---|---|---|---|
| Row 3 | Short | 10 mm | 5.1 mm | 6 mm |
| Row 4 | Medium | 10 mm | 5.1 mm | 12 mm |
| Row 5 | Long | 10 mm | 5.1 mm | 20 mm |
Keep the first row for column headings and leave row 2 available for the configuration table's active values. Configuration tables require a specific layout, so follow the setup dialog rather than simply creating a normal spreadsheet of values.
Step 3: Connect the Spreadsheet to the Model
The spreadsheet becomes useful when its values control actual model properties. For example, connect the Pad length to a spreadsheet parameter using an expression such as: SpacerConfigs.Length
- Assign the
Lengthalias to the appropriate active-value cell in row 2. - Select the Pad feature in the model tree.
- Locate its Length property.
- Click the expression control beside the property.
- Enter the spreadsheet expression using the actual spreadsheet label and alias.
- Confirm the expression and recompute the model.
Repeat this process for the sketch dimensions if you want the outer and inner diameters to vary between configurations.
Step 4: Set Up the Configuration Table
Once your model is connected to the spreadsheet:
- Right-click the designated configuration cell in row 2.
- Select Configuration table... from the context menu.
- In the setup dialog, identify the configuration-name column and the parameter columns that should change.
- Map the available configuration values to the appropriate properties.
- Confirm the setup.
FreeCAD will create a configuration selector for the configurable object. You can then choose Short, Medium, or Long to update the model's dimensions.
Step 5: Create Separate Variant Instances
Now you can create instances of the configured part. A typical workflow is:
- Create a Std Link to the configurable object.
- Set its Link Copy On Change property to Enabled.
- Change the link's placement so that it is visually separated from the original.
- Select a different configuration for the linked instance.
- Repeat for the remaining variants.
For example, one instance can use the Short configuration, another Medium, and a third Long. The official documentation also describes a PartDesign SubShapeBinder approach, using its Bind Copy On Change property instead.
Step 6: Test and Validate Each Configuration
Before using the variants in a production design, verify that each configuration behaves as expected:
- Switch between the available configurations.
- Check the dimensions in the property panel.
- Recompute the document and confirm the geometry updates correctly.
- Confirm that common design changes behave as intended.
- Check for broken expressions, invalid geometry, or unexpected dependencies.
- Save a backup before changing the configuration table's structure.
A configuration that produces valid geometry is not automatically suitable for manufacturing. Check clearances, strength, tolerances, and material requirements separately.
Configuration Tables vs. Manual Copies
| Feature | Configuration table workflow | Separate manual copies |
|---|---|---|
| Define predefined sizes | Yes | Yes |
| Switch between predefined parameter sets | Yes | Usually manual |
| Reuse the underlying design logic | Yes | Depends on how copies are made |
| Manage multiple sizes consistently | Easier when configured correctly | More repetitive |
| Initial setup effort | Higher | Lower |
Configuration tables are especially useful when the same design must be reused in many sizes. Manual copies can still be appropriate when the designs need to evolve independently.
Common Mistakes to Avoid
- Spreadsheet values do not update the model: Check that the property expressions reference the correct spreadsheet label and cell alias, then recompute the document.
- A configuration changes more dimensions than intended: Review which properties are included in the configuration table. Only designate dimensions that should vary.
- Linked variants behave unexpectedly after editing the original: Review the link's copy-on-change settings and understand which changes are shared and which are local to the variant.
- The model fails at certain sizes: Check sketch constraints, minimum wall thickness, feature dependencies, and whether the geometry remains valid across all parameter combinations.
Where Can You Use FreeCAD Variant Parts?
This approach is useful across several engineering workflows:
- Mechanical design: spacers, shafts, brackets, and mounting plates.
- Product development: housings, enclosures, and product families.
- Manufacturing: standard component sizes and configurable fixtures.
- Assembly design: reusable parts with different dimensions or configurations.
- Engineering education: demonstrating parametric design and design intent.
It is particularly useful when the geometry is largely shared but a few parameters need to change for different applications.
Conclusion
FreeCAD's configuration tables and variant links provide a practical way to create multiple versions of one parametric design. Instead of managing a collection of unrelated files, you can define parameter sets, connect them to your model, and create configured instances for reuse.
Start with a simple spacer or mounting bracket, test a few configurations, and then apply the same workflow to more complex mechanical components. The key is to build a stable parametric model first and clearly define which dimensions should change between configurations.
Learn More with CADArtifex
Want to improve your FreeCAD modeling skills and work on practical CAD projects? Explore the Complete FreeCAD for Beginners – No Experience Needed course from CADArtifex.
Explore the FreeCAD Course