How to Use 'freeCAD'?
by
A-S Koh
curriculum vitae (resume)
askoh@askoh.com
http://www.askoh.com
Page updated: 2003/07/10
What
coordinate system does 'freeCAD' use?
How
to create an assembly?
How to create a part?
How
to attach a marker to an assembly?
How to
attach a marker to a part?
How to
apply joints or constraints?
What
are redundant constraints?
How to
apply the curve-curve contact?
How to apply motions?
How
to apply spring, dampers, forces and/or torques?
What is a
kinematicIJ?
Disclaimer
What coordinate system does 'freeCAD' use?
'freeCAD' uses the right hand Cartesian coordinate system, XYZ or xyz,
represented by Red, Green and Blue axes in the graphics view. Relative
translation is described by moving xyz origin from XYZ origin by X
units, Y units, Z units along XYZ axes. To specify relative
orientation:
Start with xyz parallel with XYZ. Rotate xyz about x axis by Bryant1
radians using the right hand rule. Rotate xyz about the current y axis
by Bryant2 radians using the right hand rule. Finally, rotate xyz about
the current z axis by Bryant3 radians using the right hand rule.
Rotations in this manner are called Bryant angles or Euler angles in
xyz convention. All units are SI units: kilograms, meter, second,
radians. Angles can be in degrees when indicated so.
An alternative method of specifying relative orientation involves
specifying relative directions. Start with xyz parallel with XYZ.
Define
a direction vector in XYZ components that z axis must parallel to. The
xyz frame is not yet fully oriented because it is still free to spin
about the z axis. To fix the orientation fully define a another
direction vector in XYZ components that the x axis or the xz plane must
be parallel to. Note that, only the directions of the direction vectors
are important. Their magnitudes can be any value greater than zero.
How to create an assembly?
The goal is to create an empty assembly and populate it with parts.
Then, markers are attached at pertinent points in the assembly and
parts. The assembly and parts are then connected by joints,
constraints,
actuators and/or forces between the markers. Contacts connect parts
through face profiles. The required sequence of actions in 'freeCAD'
are:
Click File/New/Assembly/ to create an empty assembly. A dialog
allows you to specify a unique name. You can change the name anytime
from the Tree View.
Click Select/Plane/x=X y=Y/ to select the XY plane of the
assembly. XYZ is the reference frame. xyz is the frame is being
oriented
relative to XYZ. In this case, XYZ is the world frame represented by
the
long axes in 'freeCAD'. With this selection, xyz coincides with XYZ.
Click Insert/Part/New/ to insert a new part on the selected
plane, i.e. xy plane. A dialog allows you to specify a unique name.
Click Insert/Sketch/ to insert a sketch on the new part. A
dialog allows you to specify a unique name.
Click Draw/Rectangle/ to select the rectangle tool. In the
drawing area, click and drag toward the positive quadrant (increasing x
and y) to create a rectangle. There are three handles (black squares)
that you can drag to move, resize and rotate the rectangle in the
sketch
plane. Dragging anywhere in the rectangle will also move the rectangle.
Optionally, RightClick/Position/Angle/ over the rectangle to
get
a dialog to specify the rectangle position and size precisely.
Click Insert/Feature/Extrusion/ to extrude the drawing
perpendicular to the sketch plane. A dialog allows you to specify the z
coordinates for extrusion.
Clicking on the 3D solid part will select a face under the cursor.
There are two handles for tilting and rotating the solid part. Dragging
anywhere in the solid will also move the solid. Optionally, RightClick/Position/Direction/
over the solid part to get a dialog to specify its position precisely.
To add another part:
Select Assembly1 from the TreeView.
Then repeat steps Select/Plane/x=X y=Y/ on down. See below for
how to create markers and connections.
How to create a part?
See how to create an assembly above.
Alternatively,
Select Assembly1 from the TreeView.
Click Select/Plane/x=X y=Y/ to select the XY plane of the
assembly.
Click Insert/Part/File/ to insert a new part from a *.prt file
on the selected plane. A dialog allows you to specify a unique name.
How to attach a marker to an assembly?
Select Assembly1 from the TreeView.
Click Select/Plane/x=X y=Y/ to select the XY plane of the
assembly. Another plane can do. This will be the guide plane.
Click View/Y up/X right/ to avoid viewing the guide plane on
edge.
Click Insert/Marker/. A dialog allows you to specify a unique
name. A RedGreenBlue (RGB) marker representing the xyz axes appears at
the assembly origin. The xy plane of the marker is constrained in the
guide plane of the assembly. There is one handle that you can drag to
move the marker. Dragging anywhere on the marker will also move it in
its guide plane. You can also rotate the marker about any axis by RightClick/Rotate/.
Other
RightClick
commands allow precise placement of the marker
relative to the assembly frame.
Click Edit/Marker Size/ to set the marker sizes appropriate for
the assembly.
How to attach a marker to a part?
Select Assembly1Part1 from the TreeView.
Click Select/Plane/x=X y=Y/ to select the XY plane of the
part. This will be the guide plane.
Click Insert/Marker/. A dialog allows you to specify a unique
name. A RedGreenBlue (RGB) marker representing the xyz axes appears at
the part origin.
Alternatively,
Click a face of a solid to select and highlight it.
Click Insert/Marker/. A dialog allows you to specify a unique
name. A marker appears at the origin of the face. Its guide plane is
also the face plane.
How to apply joints or constraints?
Joints are applied to connect markers. Every marker is created and
attached to a part or an assembly.
Click Kinematic/Joint/RevoluteZ/ to select the revolute joint
tool. In the drawing area, click on a marker, drag to another marker on
another part or assembly, release the button. A dialog allows you to
specify a unique name. A rubber band line connects the 'i' and 'j'
markers with an label 'rev' to denote the presence of a revolute joint
between the 'i' and 'j' markers. A revoluteZ joint constraints the
origins of 'i' and 'j' to be coincident and the z axes of 'i' and 'j'
to
be parallel. Only one rotational degree of freedom exists between 'i'
and 'j'.
Click Kinematic/Explain/ to see the function of various joints.
What are redundant constraints?
All real machines are made from non rigid parts that allow flexibility,
even if the flexibility is invisible to the eye. This flexibility
allows
us to use imperfect and redundant joints without severe restrictions.
For example, a door usually have two or more hinges which are not
perfectly aligned, yet the door swings open and shut to our
expectation.
In multibody dynamics simulation, however, the mathematical parts
and joints are perfect. Parts are rigid. Joints are unyielding to
motion
that they are meant to restrict. Hence, redundant constraints must be
removed before the mathematics can converge to a solution. For example,
a mathematical door needs one hinge only to work as expected. Extra
hinges actually prevent a mathematical solution.
'freeCAD' has an advanced algorithm for automatic redundant
constraint removal that works well for multibody dynamics. But the user
needs to be aware of the problem when unexpected simulations occur.
Then
the user must define joints that eliminate redundant constraints from
the assembly. For example, a mathematical door with two hinges defined
may be jammed (no swinging) even though a huge force or torque is
applied to it and the simulation runs without problems. The user need
to
realize that the extra hinge is redundant and slight misalignment
between the two hinges caused the door to jam.
How to apply the curve-curve contact?
A curve-curve contact is applied to connect a face on one part with
another on a different part. The faces need to be maintained parallel
by
other joints or constraints. The vertices of each planar face are
connected with a fifth order spline to create a smooth cross sectional
profile for contact. The profiles can slide on each other without inter
penetration. Lift off is permitted. Hard collision is permitted and
rebound is calculated based on the user specified coefficient of
restitution. A common use for contact is the cam-follower system. To
start the simulation with the profiles in contact, move the profiles to
overlap before starting the simulation. If contact behavior during
simulation is not reliable, delete the contact, increase the number of
vertices in the curve profiles, reconnect the contact profiles and
resimulate.
Click Kinematic/Joints/Curve on Curve/ to select the contact
tool. Click on a face of a part and drag to another face on a different
part, release the button. Dialogs allows you to specify a unique name
for the contact, the first curve marker, the second curve marker and
the
coefficient of restitution. A rubber band line connects the 'i' and 'j'
markers with an label 'cvcv' to denote the presence of a curve-curve
contact between the 'i' and 'j' curve markers.
How to apply motions?
Motions are applied to joints.
Click Kinematic/Motion/RotationZ/ to select the z rotation
tool.
Click on a revolute or cylindrical joint to apply the prescribed
rotation. A dialog allows you to specify a user defined function of
time
describing the angle of the 'j' x-axis relative to the 'i' x-axis.
Valid
expressions using +, -, *, /, ^, pi, cos, sin, tan, arctan, exp, ln,
log, sqrt are acceptable.
Click Kinematic/Explain/Motion/ to see the function of other
motions.
How to apply spring, dampers, forces and/or torques?
Click menu item Dynamic/ForceTorque/General/ to select the
general forceTorque tool. Connect markers 'i' and 'j'. A dialog allows
you to specify arbitrary functions describing the forceTorque acting on
'i'. An equal and opposite reaction is applied to the part containing
'j' at the point coincident with 'i'. The general forceTorque
abbreviation is 'ftg'. The user can define all three components of
force
and torque as functions of time, displacements and velocities of any
pairs of markers in the assembly. You may enter zero terms or constant
expressions for clarity because the parser simplifies the user
functions
before internal use.
Click menu item Dynamic/ForceTorque/InLine/ to select the
inline forceTorque tool. Connect markers 'i' and 'j'. A dialog allows
you to specify arbitrary functions describing the forceTorque acting on
'i'. Positive force and axial torque vectors are directed from 'i' to
'j'. An equal and opposite inline reaction is applied to marker 'j'.
The
inline forceTorque abbreviation is 'fti'. The user can define the
tension and twist as functions of time, displacements and velocities of
any pairs of markers in the assembly. You may enter zero terms or
constant expressions for clarity because the parser simplifies the user
functions before internal use. Warning: Inline ForceTorque is ill
defined when 'i' and 'j' are near coincidence.
What is a kinematicIJ?
It is a connector to hold vector type data from marker 'i' to marker
'j'. It can be used in formulas describing constraint relationships or
force values. After the simulation, it can be used for plotting.
Disclaimer
'freeCAD' is provided 'AS-IS' with no warranty as to its use or
performance. By using it, you agree to indemnify the author from any
liabilities that you may incur from the use of the software.
Copyright (C) 2000-2003, A-S Koh, All Rights Reserved.