Previous section-----Next section

2.3.2 2D Basic Constraints

The Modeler2D basic constraints specify elementary geometric relationships between points and lines on mechanism bodies. Elementary relationships are used for the majority of simple mechanical joints. A shaft spinning in a bearing is modeled by specifying that two points are coincident. A connecting rod can be modeled by specifying a constant distance between two points. A guide pin in a slot is modeled by specifying that a point on one body lies on a line on another body. A piston in a cylinder is modeled by specifying that two lines on two different bodies are colinear.
Many seemingly different mechanical joints are often modeled with the same constraint, such as a connecting rod versus a guide pin in a circular track; both are modeled by specifying the distance between two points on two different bodies. It is up to the user to determine the true nature of the kinematic relationships that make up a mechanism.
The entire set of Modeler2D constraint functions is quite redundant; all basic 2D mechanisms could, in fact, be modeled with a small subset of the Modeler2D constraints. The goal in this is to provide a constraint that is similar in form to the actual mechanical joint being modeled. Thus, the readability of the model can be improved.

Local coordinate constraints directly control the local coordinates of specified bodies.

Point-on-line constraints force a point on a body to travel along a specified line.

Point-at-position constraints force a point on a body to lie at a specified position.

Angular constraints control the angle between the direction vectors of two lines.

Compound constraints enforce multiple geometric relationships simultaneously.

There are several other compound constraints available for modeling gears and cams, these are discussed in Chapter 6.
To demonstrate the ambiguity in determining which constraint is the correct constraint, the set of four constraints used in the crankshaft-piston model are examined. The first constraint, Revolute2, could be modeled with a pair of constraints with one degree of freedom each; a RelativeX1 to control the X coordinate of the crankshaft axis, and a RelativeY1 to control the Y coordinate.

This loads the Modeler2D package.

The Revolute2 constraint is functionally identical to a pair of one degree of freedom constraints.

The second constraint, RotationLock1, could be modeled by constraining the angle between two lines, one on the crankshaft and one on the ground.

Here are two equivalent constraints.

The RelativeDistance1 constraint, in this application, cannot be replaced by the use of any other constraint. It is somewhat unique, geometrically.

This constraint has no functional equivalent.