Skip to content

dogheadbone/FreeCAD_Assembly4

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FreeCAD Assembly 4 workbench

Current version 0.9.8, 2020-09-02

Overview

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.

Installation

FreeCAD Addon manager status

Addon Manager (recommended)

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

Getting Started

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 :

Release notes

  • 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

Discussion

Please offer feedback or connect with the developers in the dedicated FreeCAD forum thread.

Addon Repository

This addon is hosted on a GitHub repository.

License

LGPLv2.1 (see LICENSE)

About

Assembly 4 workbench for FreeCAD

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 99.6%
  • HTML 0.4%