Std LinkMake is a powerful feature in FreeCAD that creates a Link (a reference) to an existing object instead of duplicating its geometry. Links are lightweight, memory-efficient, and update automatically when the original object changes.
creates an App Link (App::Link
class), a type of object that references or links to another object in the same document, or in another document. It is especially designed to efficiently duplicate a single object multiple times, which helps with the creation of complex assemblies from smaller subassemblies, and from multiple reusable components like screws, nuts, and similar fasteners.
Use Cases for Std LinkMake in FreeCAD-:
-
Creating Arrays & Patterns
-
Use with Draft Array or PartDesign PolarPattern for efficient duplication.
-
Example: Bolts in a flange, repeated columns in architecture.
-
-
Assemblies
-
Reuse the same part (e.g., screws, nuts) multiple times without memory bloat.
-
-
Referencing External Files
-
Link objects from another FreeCAD file (useful for modular designs).
-
-
Non-Destructive Editing
-
Modify the original, and all linked instances update automatically.
-
How to Create a Std LinkMake in FreeCAD-:
GUI Method-:
-
Select an object in the Model Tree or 3D View.
-
Click Menu → Std → LinkMake (or press the Link button in the toolbar).
-
A new
Link
object appears in the tree (indicated by a small arrow icon ➔).
Python Console Method-:
import FreeCAD as App
doc = App.ActiveDocument
obj = doc.MyObject # Original object
link = doc.addObject("App::Link", "MyLink")
link.LinkedObject = obj # Set the linked object
doc.recompute()
Key Features of Std LinkMake in FreeCAD-:
✔ Parametric: Changes to the original propagate to all linked copies.
✔ Memory Efficient: Links reuse geometry data instead of duplicating it.
✔ Transformable: Each link can have its own placement (position, rotation, scale).
✔ Supports Arrays & Assemblies: Useful for patterns (e.g., bolts in a circular pattern).
✔ Works Across Documents: Links can reference objects in other .FCStd
files.
Link Properties & Customization-:
In the Property Editor, a Link has:
-
Linked Object: The source object being referenced.
-
Placement: Adjust position, rotation, and scale independently.
-
Show Element: If the source is a compound (e.g., a Part container), you can select which sub-shape to display.
-
Link Transform: Apply scaling/rotation relative to the original.
How to use Std LinkMake in FreeCAD-:
With selection:
- Select an object in the tree view or 3D view for which you wish to create a Link.
- Press the
Make link button. The produced object has the same icon as the original object, but has an arrow overlay indicating it is a Link.
Without selection:
- If no object is selected, press the
Make link button to create an empty
Link.
- Go to the property editor, then click on the Linked Object property to open the Link selection dialog to choose an object, then press OK.
- Instead of choosing an entire object in the tree view, you can also pick subelements (vertices, edges, or faces) of a single object in the 3D view. In this case, the Link will duplicate only these subelements, and the arrow overlay will be different. This can also be done with
Std LinkMakeRelative.
Use Cases for Std LinkMake in FreeCAD-:
Link vs. Clone vs. Simple Copy
Feature | Link | Clone | Simple Copy |
---|---|---|---|
Parametric | ✅ Yes | ✅ Yes | ❌ No |
Memory Usage | ⚡ Low | ⚡ Low | 🟡 Medium |
Editable Placement | ✅ Yes | ✅ Yes | ❌ No (fixed) |
Cross-Document | ✅ Yes | ❌ No | ❌ No |
Shape Modification | ❌ No* | ✅ Yes** | ✅ Yes |
*Links cannot modify the original geometry but can apply transforms (scale/rotate).
**Clones can apply modifiers (e.g., Part Offset) while staying parametric.
Limitations & Troubleshooting of Std LinkMake in FreeCAD-:
⚠ Circular References: Avoid linking objects in a loop (FreeCAD may crash).
⚠ Broken Links: If the source object is deleted, the link becomes invalid.
⚠ Performance: Too many links in complex assemblies may slow down rendering.
“Thank you for reading! If you found this article insightful and valuable, consider sharing it with your friends and followers on social media. Your share can help others discover this content too. Let’s spread knowledge together. Your support is greatly appreciated!”