Generalized Coordinate Package Appendix

A. Modified Mechanical Systems Pack Symbols

Additional definitions are made by the Generalized Coordinate modeling package for several standard Mech symbols. The new definitions do not change the usage of these symbols in any way, the standard usage is simply extended so as to work correctly with generalized coordinates. 

The letter "G" is appended to the $MechVersion string to indicate that the Generalized Coordinate Package has been loaded.

B. Listing of Generaized Coordinate Package Objects

GenConstraint						2D/3D

GenConstraint[cnum, point1, point2, rot, {sym, guess}] returns a constraint object which introduces a slave body represented by generalized coordinates into the model. A point on the slave body, point1, is constrained to be coincident with a point on the master, point2. The angular orientation of the slave with respect to the master is specified by rot. In Mech2D, rot is a counterclockwise angle. In Mech3D, rot is specified in the {ang, axis} format, and it can be a single rotation or a sequence of rotations of the form used by RotationLock3. {sym, guess}, or {sym1, guess1}, {sym2, guess2}, ..., are generalized coordinate symbols and their associated initial guesses which are added to the model.

GenConstraint is used to create user-defined generalized coordinate relationships. Mech generalized coordinate constraints do not actually constrain any degrees of freedom or add any algebraic constraints to the model, they simply set up the necessary coordinate transformations so that a new slave body can be recognized appropriately by Mech's modeling engine.  ##  See also: Constraint.

GenCylindrical4						3D

GenCylindrical4[cnum, axis1, axis2, {alpha, guess}, {beta, guess}] returns a constraint object that introduces a slave body into the model represented by two generalized coordinates alpha and beta. The axis1 body is a slave to the axis2 body with one degree of rotational freedom and one degree of translational freedom. The two axes are constrained to be colinear and the distance from the origin of axis2 to that of axis1, in the direction of axis2, is represented by alpha. The angle from the projection of the reference direction of axis2 to that of axis1, in the right-hand sense, is represented by beta.

Note that GenCylindrical4 actually adds two DOF to the model, as opposed to constraining four.  ##  See also: Cylindrical4.

GenOrthoRevolute4					3D

GenOrthoRevolute4[cnum, axis1, axis2, {alpha, guess}, {beta, guess}] returns a constraint object that introduces a slave body into the model represented by two generalized coordinates alpha and beta. The axis1 body is a slave to the axis2 body with two degrees of rotational freedom.  The origins of the two axes are constrained to be coincident, and the axes are constrained to be orthogonal.  The symbol alpha represents the angle between axis1 and the reference direction of axis2, and beta represents the angle between axis2 and the reference direction of axis1.

Note that GenOrthoRevolute4 actually adds two DOF to the model, as opposed to constraining four.  ##  See also: OrthoRevolute4.

GenRevolute2						2D

GenRevolute2[cnum, axis1, axis2, {sym, guess}] returns a constraint object that introduces a slave body into the model represented by a single generalized coordinate sym. The axis1 body is a slave to the axis2 body with one degree of rotational freedom.  The origins of the two axes are constrained to be coincident, and the counterclockwise angle from axis2 to axis1 is represented by sym.

Note that GenRevolute2 actually adds one DOF to the model, as opposed to constraining two DOF like Revolute2.  ##  See also: Revolute2.

GenRevolute5						3D

GenRevolute5[cnum, axis1, axis2, {sym, guess}] returns a constraint object that introduces a slave body into the model represented by a single generalized coordinate sym. The axis1 body is a slave to the axis2 body with one degree of rotational freedom. The two axes are constrained to be parallel and their origins are constrained to be coincident. The angle from the projection of the reference direction of axis2 to that of axis1, in the right-hand sense, is represented by sym.

Note that GenRevolute5 actually adds one DOF to the model, as opposed to constraining five.  ##  See also: Revolute5.

GenTranslate2						2D

GenTranslate2[cnum, axis1, axis2, {sym, guess}] returns a constraint object that introduces a slave body into the model represented by a single generalized coordinate sym. The axis1 body is a slave to the axis2 body with one degree of translational freedom. The two axes are constrained to be colinear, and the distance from the origin of axis2 to that of axis1, in the direction of axis2, is represented by sym.

Note that GenTranslate2 actually adds one DOF to the model, as opposed to constraining two DOF like Translate2.  ##  See also: Translate2.

GenTranslate5						3D

GenTranslate5[cnum, axis1, axis2, {sym, guess}] returns a constraint object that introduces a slave body into the model represented by a single generalized coordinate sym.  The axis1 body is a slave to the axis2 body with one degree of translational freedom.  The two axes are constrained to be colinear, and the distance from the origin of axis2 to that of axis1, in the direction of axis2, is represented by sym.  The projections of the reference directions of the two axes are constrained to be parallel.

Note that GenTranslate5 actually adds one DOF to the model, as opposed to constraining five.  ##  See also: Translate2.

JoinRows							2D/3D

JoinRows[mat1, mat2, ...] returns a new matrix composed of the mati with their rows joined.  The mati must all have the same number of rows.

JoinRows effectively joins matrices left-to-right, instead of top-to-bottom.  ##  See also: Join, MapThread.