Current version 0.9.8, 2020-09-02
This assembly workbench allows to integrate into a single container under a single coordinate system other FreeCAD objects and place them relative to the assembly and to each-other. The principle of Assembly4 is that App::Part
and PartDesign::Body
container objects are linked into a host parent assembly called Model and of type App::Part
using the App::Link
interface introduced in FreeCAD v0.19. The parts that are linked can invariably be in the same document as the assembly or an external document.
As an Assembly4 model is a standard FreeCAD App::Part
object, it can be used and manipulated with any FreeCAD tool handling App::Part
objects. In particular, it can be inserted into another Assembly4 Model to create nested assemblies. It can also contain solids and datum objects. An Assembly4 Model can be a stand-alone part, an assembly, a sub-assembly, and any combinations of these.
Parts and linked parts are placed to each-other in the host parent assembly by matching their Datum Coordinate Systems (PartDesign::CoordinateSystem
called LCS for Local Coordinate System) using the built-in FreeCAD ExpressionEngine. No geometry is used to place and constrain parts relative to each other, thus avoiding a lot of the topological naming problems.
Please Note: objects in the same document as the linked part but outside the App::Part
container will not be inserted.
Please Note: only Part and Body containers at the root of a document can be inserted. Objects inside containers cannot be used directly by Assembly 4.
Assembly 4 is available through the FreeCAD Addon Manager (menu Tools > Addon Manager). It is called Assembly4 in the Addon Repository.
Important Note: Assembly 4 is not compatible with FreeCAD v0.18 and before, needs FreeCAD >= v0.19.18353
. Pre-built binaries on the v0.19 development branch can be found here
You can get more information in the user instructions, the technical manual, and you can use the provided example assemblies to experiment with this workbench's features. There are also online tutorials :
- a quick assembly from scratch
- a cinematic assembly in one file, using a master sketch
- a Lego assembly
- Some examples to play with
-
2020.09.02 (0.9.8) :
Small usability improvements -
2020.06.29 (0.9.7) :
Native Fasteners, included Task to change parameters -
2020.06.23 (0.9.6) :
Improved Measure tool -
2020.06.19 (0.9.5) :
Added new Measure tool
Added preliminary BoM, PartList and PartInfo functions
Minor bugfixes and improvements -
2020.05.25 (0.9.4) :
Minor update for Fasteners (simplified format, should be backwards compatible) -
2020.05.18 (0.9.3) :
Bugfixe: create Body/Part didn't place them in the selected App::Part container -
2020.05.08 (0.9.2) :
The UI windows are now in the Task Panel. -
2020.05.03 (0.9.1) :
Bugfixes -
2020.04.15 (0.9.0) :
PartDesign::Body can be directly imported (linked), no need to wrap them in App::Part container -
2020.03.15 (version 0.8.1) :
Added slider for animation
Reversed Document#Label (Name) to Document#Name (Label) -
2020.02.13 (version 0.8.0) :
All dialogs are now resizable
Various bugfixes
Made the Asm4 properties of all objects homogeneous
Moved examples and tutorials to dedicated repository (some users ran into trouble for updating the WB because they had modified the local files) -
2020.01.25 (version 0.7.12) :
Refined datum and variables creation -
2020.01.22 (version 0.7.11) :
Added version info to the Help dialog -
2020.01.21 (version 0.7.10) :
bug-fix to not fall for random criss-cross linking of objects -
2020.01.20 (version 0.7.9) :
(silly) bug-fix -
2020.01.18 (version 0.7.8) :
added "release attachments" button
various small fixes -
2020.01.06 (version 0.7.7) :
Moved the turorials to the Resources directory
import libAsm4 as Asm4
Added a Help command (dummy placeholder)
Ported example2 to the latest Asm4 format -
2019.12.12 (version 0.7.6) :
Improved animation and datum import. -
2019.12.02 (version 0.7.5) :
Minor (but useful !) refinements for variables and animation. -
2019.11.24 (version 0.7.4) :
Added Animation command -
2019.11.19 (version 0.7.3) :
Added linkArray, a wrapper for Draft::LinkArray
Fixes for the Fasteners command -
2019.11.14 (version 0.7.2) :
Bug-fix for importDatum -
2019.11.11 (version 0.7.1) :
Bug-fix -
2019.11.05 (version 0.7.0) :
Support for screws & nuts from the Fasteners workbench
Added Variables to the Model
The model file format has changed, former assembly models can be opened but must be re-assembled. -
2019.10.11 (version 0.6.4) :
Improved assembly in single file
Various small fixes -
2019.10.11 (version 0.6.3) :
It is now possible to link parts from the same document as the assembly itself, allowing to make 1-file assemblies and still use all the other tools. -
2019.10.11 (version 0.6.2) :
Added page for Tutorial 1.
Fine-tuned some functions
Renamed icons in a consistent way -
2019.10.07 (version 0.6.1) :
Moved the code that was in Mod_Asm4 to the root, to be compatible with the FreeCAD AddonManager -
2019.10.05 (version 0.6) :
Ported to FreeCAD-v0.19-pre, with new syntax for the ExpressionEngine -
2019.07.23 (version 0.5.5) :
Fixed a bug in partLCSlist.findItems
New Datum Point in the Model -
2019.07.18 (version 0.5.4) :
A cosmetic update to fix a 25 year old Windows bug:
some UTF-8 characters in the comments were not accepted on some Windows 10 machines -
2019.06.15 (version 0.5.3) :
Now the LCS can be renamed, and they show up in the LCS list in the command placeLink as such.
It's only visual, the ExpressionEngine still uses the LCS.Name though -
2019.05.07 (version 0.5.2) :
added insertDatumCmd -
2019.03.18 (version 0.5.1) :
Part can now be linked without being placed: this is then a raw interface with App::Link
The instance can be moved manually with the 'Transform' dragger -
2019.03.12 (version 0.5) :
moved the actual code to Mod_Asm4 -
2019.03.11 (version 0.4.1) :
Added placement of Datum Point -
2019.03.09 (version 0.4) :
FreeCAD now imports as App
insert_Link launches place_Link -
2019.03.05 (version 0.3.1) :
added the RotX-Y-Z buttons -
2019.02.20 (version 0.3)
mostly working version -
2019.02.18 (version 0.1) :
initial release of Assembly 4 WB
Please offer feedback or connect with the developers in the dedicated FreeCAD forum thread.
This addon is hosted on a GitHub repository.
LGPLv2.1 (see LICENSE)