Assembly project

Here the project plan for the Assembly modul

Purpose and principles
This is a software development project aimed to implement a Assembly and product creation capabilities. Its about implementing some core features into the CAD modules of FreeCAD, Part and Assembly.

The development steps are planed here and tracked in the Issue tracking system to get a well formed change log: Issue tracker

Outcome
Aim of the project is to enable FreeCAD accomplish a design task like this one:



This will be achived by using the Assembly to put all the different kind of parts together with constraints.

Another aim is to utilize ODE for kinematics.

Multi model
A key feature to real world designs is the ability to split a design into handleable pieces. Its impossible to work on all aspects of a design at the same time or alone. That is true for the geometry and also for engineering tasks like FEM or CAM. There for FreeCAD need the ability to split models. That opens some possibilities:
 * Late loading - Only need resources like Graphics and main memory for the piece you work on.
 * Concurrent engineering - allows many people to work on the same design
 * Fine grained Version control - better control over various aspects of the design
 * and many more....

A multi model design could look like that:



ISO 10303
The ISO 10303 (STEP) is very important in this field. Its the only good standardized and widly discussed and recognized definition of product structures I know of.

Here some links with info:
 * ISO 10303 on Wikipedia
 * WikiStep.org with a lot of basic info but mostly toward STEP-NC
 * Some examples about STEP
 * ISO 10303-11 about the modeling language (EXPRESS)
 * A wikipedia article about product modeling