Tutorial KinematicSkeleton
Tutorial |
Topic |
---|
Assembly3, a kinematic skeleton |
Level |
Basic knowledge of Assembly3 and Sketcher tools is helpful |
Time to complete |
40 minutes |
Authors |
FBXL5 |
FreeCAD version |
0.20 and later |
Example files |
None |
See also |
None |
Introduction
This tutorial is about how to set up a simple 2D mechanism and attach 3D objects, mainly with the tools from the external Assembly3 Workbench.
This tutorial does not use the skeleton sketch principle. See notes for reasons.
Instead we will use PartDesign Bodies containing only one Sketch each, to build a 2D mechanism, a multi sketch skeleton.
The dimensions and the colours as well are taken from the SolveSpace tutorial which is referred to on the Assembly3 GitHub page Create-Skeleton-Sketch.
Multi sketch skeleton
This so called multi sketch skeleton consists of several individual Bodies and an Assembly container. To be able to attach further objects each body is put into a separate Assembly container.
2D Body objects
The bodies or rather their contours that are used with this assembly:
- A base plate (green)
- A crank (blue)
- Two movable plates (red and grey)
- Four connecting rods (white, yellow, purple, and brown)
All eight sketches individually coloured and manually positioned by moving their parent bodies
The geometry can deviate from the real part's shape, except the position of the joint defining geometry.
Assembly containers
Parent Assembly
To fix or control the positions of all bodies we need an Assembly object. It adds an assembly branch to the Tree View.
- Press the Create assembly button to create an Assembly branch in the Tree View.
Sub-Assemblies
Repeat above action to create an Assembly object for each Body and drag the Body into its Parts container. Then fix the Body to its Assembly:
- Activate the Assembly object (double-click).
- Select a circle/arc belonging the Body object.
- Press the Create "Locked" contraint button to fix the Body in its sub-assembly.
The Crank-Assembly e.g. should look like this:
The Crank's sub-assembly branch in the Tree view and the Crank with its locked Element in the 3D view
Assembly tree
In the Tree view drag all sub-assembly branches into the Parts container of the parent Assembly object.
Assembly branch in the Tree view
Now they are ready to get arranged.
Fixed base plate
At first we need a fixed part. To fix the Base completely we would usually select a face, but in this case a circle will do as well.
- Select a circle of the Base.
- Press the Create "Locked" contraint button to fix the Base.
Selected circle → Fixed Base with the created Element object and element coordinate system (ECS) displayed (green)
Joints
For hinge-like joints we select one circle of each sketch and use the Plane Coincidence constraint. It does not only set both Element's XY planes coplanar, but set their Z axes colinear, too.
- Select a circle of each object to connect.
- Press the Create "Plane Coincidence" contraint button.
Base - Crank joint
Circles on Base and Crank selected → Relocated Crank with the created Element objects and ECSs displayed (green)
Base - UpperPlate joint
Circles on Base and Upper Plate selected → Relocated Upper Plate
Previously created joints are represented by their constraint representations (red).
Base - Upper Plate joint
Circles on Crank and Rod 1 selected → Relocated Rod 1 and tilted Crank
Upper Plate - Rod 1 joint
The last link in a kinematic chain connects two Elements with their Z directions already defined and a Point on line constraint is all we need.
- Select a circle of each object to connect.
- Press the Create "PointOnLine" contraint button.
Circles on Upper Plate and Rod 1 selected → Relocated Rod 1, and tilted Crank and Upper Plate
If there are 3 joints in line (those belonging to Crank and Rod 1), the solver might fail to rearrange the objects. In such case we need to help the solver and tilt one object (e.g. the Crank) manually using the Axial move tool.
Upper Plate - Rod 2 joint
Another kinematic (sub-)chain starts with Plane Coincidence constraints.
Circles on Upper Plate (or Base) and Rod 2 selected → Relocated Rod 2
Rod 2 - Lower Plate joint
Circles on Rod 2 and Lower Plate selected → Relocated Lower Plate and tilted Rod 2
Upper Plate - Rod 3 joint
Circles on Upper Plate and Rod 3 selected → Relocated Rod 3 and rearranged upper kinematic sub-chain
Lower Plate - Rod 3 joint
And this kinematic (sub-)chain ends with a Point on line constraint, too.
Circles on Lower Plate and Rod 3 selected → Relocated Rod 3 and rearranged ukinematic sub-chains
To connect both kinematic sub-chains we use Rod 4 with a Plane Coincidence constraint on one end and a Point on line constraint on the other.
Crank - Rod 4 joint
Circles on Crank and Rod 4 selected → Relocated Rod 4
Lower Plate - Rod 4 joint
Circles on Lower Plate and Rod 4 selected → Relocated Rod 4 and final layout of kinematic assembly
Actuator
Since Assembly3 doesn't provide any means to control kinematic assemblies, we need external assistance such as this kinematic controller. To use this controller we need to mark one constraint's label with the suffix "Driver"
to make it a driving constraint. It may be separated by a "."
or "-"
for clarity, as the controller will only check if the label ends with "Driver"
.
Thus the Base-Crank joint will be labeled Base-Crank.Driver
.
Finished skeleton
The finished kinematic assembly with deactivated representation of Elements and Constraints should look like this:
Finished assembly in the Tree view and the 3D view
GIF animation made from an image sequence from this kinematic controller
Attaching 3D geometry
Coming soon...