This manual provides a detailed list and usage information regarding command statements, model statements, functions and
the Subroutine Interface available in MotionSolve.
Model ElementCoupler defines an algebraic relationship between the degrees of freedom of two or three joints. This constraint element
may be used to model idealized spur gears, rack and pinion gears, and differentials as simple constraints that relate
the displacements in a set of joints.
Model ElementThe DeformCurve element allows you to represent a curve defined in the model as a DeformableCurve element. The graphic is defined by a number of straight line segments connecting vertices on the curve defined by
DeformableCurve reference.
Model ElementThe DeformSurface element allows you to represent a deformable surface defined in the model as a DeformSurface element. The graphic is defined by a number of straight line segments connecting vertices on the surface defined
by DeformSurface reference.
Model ElementDv defines a special type of solver state variable. It is used in the evaluation and computation of design sensitivity
as a design parameter. Its value is modified during the simulation in case of Design Sensitivity Analysis.
Model ElementEquilibrium defines the solution control parameters for Static and Quasi-static analysis. These parameters control the accuracy
the solution and the method to be used for solution.
Model ElementField defines a force and torque acting between two markers, I and J. The force and torque can only be a function of time
and the relative displacement between the I and J markers. The six components (three forces and three moments) are defined
in the coordinate system of the J marker.
Model ElementFlexBody defines a flexible body object in MotionSolve. This entity has mass and inertia properties, like a rigid body. In addition, it has flexibility properties that
allow it to deform under loads.
Model ElementThe Friction element is used to specify joint friction in a specific joint in your model. Friction is supported only in the following
types of joints: revolute, spherical, translational, cylindrical and universal. MotionSolve uses the LuGre (Lundt-Grenoble) model for friction.
Model ElementThe Frustumelement allows you to represent the portion of a cone that remains after its upper part has been cut off by a plane
parallel to its base, or that is intercepted between two such planes.
Model ElementThe GCON element is used to specify a user defined general constraint. Your constraint equations may involve position as well
as velocity measures of the system. Although MotionSolve provides a large set of constraints to choose from (see JOINT), there are situations that require non-standard constraints.
Model ElementGse is an abstract modeling element that defines a generic dynamic system. The dynamic system is characterized by a vector
of inputs u, a vector of dynamic states x, and a vector of outputs y. The state vector x is defined through a set of differential equations.
Model ElementJprim is used to remove degrees of freedom between two bodies by specifying
conditions in which the relative translational or rotational motion can occur. Jprim differs from JOINT in that the former specifies mathematical constraints, which may not have
concrete physical realizations like the latter.
Model ElementThe LineMesh element connects a number of vertices in space with straight lines. It is similar to the Outline element except it does not require markers. You can pass coordinates to the LineMesh geometry.
Model ElementMarker defines an orthonormal, right-handed coordinate system and reference frame in MotionSolve. A Marker must belong to a part. The body can be any type: rigid, flexible, or point.
Model ElementMate is used to specify general mating constraints between geometric
primitives. Mate differs from JOINT and JPRIM in that it specifies more general constraints based on distance, tangency,
and coincidence relations between mating
geometries.
Model ElementNforce defines a force and torque acting between many markers. The force and the torque can only be linear functions of
the relative displacement and velocity of the various markers.
Model ElementThe ParamCurve element allows you to represent a curve defined in the model as a Curve element. The graphic is defined by a number of straight line segments connecting vertices on the curve defined by
Curve reference.
Model ElementPtcv defines a higher pair constraint. A fixed point on one body slides on a curve that is fixed on a second body. The
point is not allowed to lift off the curve.
Model ElementPTSF defines a higher pair constraint. A fixed point on one body slides on a surface that is fixed on a second body. The
point is not allowed to lift off the surface.
Model ElementRv defines a special type of solver state variable. It is used in the evaluation and computation of design sensitivity
as a response variable.
Model ElementSfsf defines a higher pair constraint. The constraint consists of a surface on one body rolling and sliding on a surface
on a second body. The surfaces are required to have a unique contact point.
Model ElementThe UserMsg element allows you to control the output of MotionSolve messages. Any message that MotionSolve prints to standard output goes through the
This manual provides a detailed list and usage information regarding command statements, model statements, functions and
the Subroutine Interface available in MotionSolve.
Model ElementPart defines a rigid body object in MotionSolve. This entity has mass and inertia properties.
Class Name
Part
Attribute Summary
Name
Property
Modifiable by
command?
Designable?
id
Int
()
label
Str
()
Yes
ground
Bool
()
planar
Enum
("XY YZ ZX YX ZY XZ")
qg
Location (Point ())
Yes
zg
Location ()
Yes
xg
Location ()
Yes
zv
Location ()
Yes
xv
Location ()
Yes
reuler
Angles ()
Yes
mass
Double ()
Yes
Yes
cm
Reference ("Marker")
Yes
im
Reference ("Marker")
Yes
ip
Ips
()
Yes
Yes
material
String ("Steel")
vx
Double (None)
Yes
FD Only
vy
Double (None)
Yes
FD Only
vz
Double (None)
Yes
FD Only
wx
Double (None)
Yes
FD Only
wy
Double (None)
Yes
FD Only
wz
Double (None)
Yes
FD Only
vm
Reference ("Marker")
FD Only
wm
Reference ("Marker")
FD Only
exact
Exact ()
function
Function ("MASS_READ()")
routine
Routine
Usage
Part (optional_attributes)# All attributes are optional
Attributes
id
Integer
Specifies the element identification number. This number must be unique
among all the Part objects in the model.
This attribute is optional. MotionSolve will
automatically create an ID when one is not specified.
Range of values: id > 0.
label
String
Specifies the name of the Part object.
This attribute is optional. When not specified, MotionSolve will create a label for you.
ground
Boolean
Specifies whether the Part being defined is the Ground
PART or not.
The value True indicates that the PART being defined is the
Ground PART. The value False indicates
that the Part is not the Ground
Part.
This attribute is optional. When not specified, it defaults to
False.
Valid range of values: True, False.
mass
Double
Specifies the mass of the PART object.
The attribute mass is optional. If a
Part is fully constrained and you are not interested
in the constraint forces, then mass needs not to be specified. When not
specified, mass is set to zero.
Valid range of values: mass ≥ 0.0
cm
Reference to a Marker
Specifies the Marker that is located at the
center-of-mass of the PART.
The attribute cm is optional. If a
Part is fully constrained and you are not interested
in the constraint forces, then mass and inertia need not to be specified.
When these are not specified, you must not specify
cm.
Note: In order to remove circular
references, the body is created in two steps. First, the body is defined
without a CM marker. Then, the CM attribute is explicitly defined. See
examples 3-5.
im
Reference to a Marker
Specifies the Marker in whose coordinate system the
inertia matrix for the PART is computed.
The attribute im is optional. When not specified,
im defaults to the CM marker.
Note: The
IM attribute is defined in two steps. First the
body is defined without an IM marker. Then the IM
attribute is explicitly defined. See examples 5.
ip
List of three doubles or a list of six doubles.
Specifies the mass moments of inertia matrix for the PART
about the x, y, z-axes of the IM marker.
The ip attribute is optional. When not specified, it is
assumed to be the zero matrix. If a Part is fully
constrained and you are not interested in the constraint forces, then
ip need not be specified.
You may choose to specify only the diagonal entries [Ixx, Iyy, Izz] or the
full matrix [Ixx, Iyy, Izz, Ixy, Ixz, Iyz] in the order shown.
qg
A Location object or a list of three doubles.
Specifies the coordinates of local part reference Marker. This Marker is
used as the reference coordinate system for all Markers defined on this
PART.
The qg attribute is optional. When not specified, it is
assumed to be coincident with the global origin, i.e. (0, 0, 0).
zg
A Location object or a list of three doubles.
Specifies the coordinates of a point on the z-axis of the local part
reference Marker. This Marker is used as the reference coordinate system for
all Markers defined on this Part.
The zg attribute is optional. When not specified, the
point is assumed to be on the global z-axis.
The zg/xg attribute is exclusive to
zv/xv, reuler,
and function. Only one of them may be specified.
xg
A Location object or a list of three doubles.
Specifies the coordinates of a point on the x-axis of the local part
reference Marker. This Marker is used as the coordinate system for all
Markers defined on this Part.
The xg attribute is optional. When not specified, the
point is assumed to be on the global x-axis.
The zg/xg attribute is exclusive to
zv/xv, reuler,
and function. Only one of them may be specified.
zv
A Location object or a list of three doubles.
Specifies the z-axis of the local part reference Marker. This Marker is used
as the reference coordinate system for all Markers defined on this
Part.
The zv attribute is
optional. When not specified, the z-axis is assumed to be the global
z-axis.
The zv/xv attribute
is exclusive to zg/xg,
reuler, and function. Only one
of them may be specified.
xv
A Location object or a list of three doubles.
Specifies the x-axis of the local part reference Marker. This Marker is used
as the coordinate system for all Markers defined on this
Part.
The xv attribute is optional. When not specified, the
x-axis is assumed to be the global x-axis.
The zv/xv attribute is exclusive to
zg/xg, reuler,
and function. Only one of them may be specified.
reuler
A list of three doubles.
Specifies the body-fixed 3-1-3 Euler angles of the local part reference
Marker with respect to the global coordinate system. This Marker is used as
the reference coordinate system for all Markers defined on this
Part.
The reuler attribute is optional. When not specified, it
is assumed to be (0,0,0), i.e. the local part reference Marker has the same
orientation as the global coordinate system.
The reuler attribute is exclusive to
function,
zg/xg, and
zv/xv. Only one of them may be
specified.
vm
Reference to a Marker.
Specifies the Marker whose axes system would be used to define the initial
translational velocities of the PART
(vx, vy,
vz).
When not specified, vm defaults to Global coordinate
system.
vx
Double
Specifies the initial translational velocity of the PART
along the x-axis of the VM marker.
The vx attribute is optional.
When not specified, MotionSolve will
perform an internal computation to ensure that all Part velocities
are consistent with the first time derivative of the
constraints.
When specified, MotionSolve will try to
maintain the value specified as it perform the internal computation
to ensure that all Part velocities are consistent with the first
time derivative of the constraints.
vy
Double
Specifies the initial translational velocity of the PART
along the y-axis of the VM marker.
The vy attribute is optional.
When not specified, MotionSolve will
perform an internal computation to ensure that all Part velocities
are consistent with the first time derivative of the
constraints.
When specified, MotionSolve will try to
maintain the value specified as it perform the internal computation
to ensure that all Part velocities are consistent with the first
time derivative of the constraints.
vz
Double
Specifies the initial translational velocity of the PART
along the z-axis of the VM marker.
The vz attribute is
optional.
When not specified, MotionSolve will
perform an internal computation to ensure that all Part velocities
are consistent with the first time derivative of the
constraints.
When specified, MotionSolve will try to
maintain the value specified as it perform the internal computation
to ensure that all Part velocities are consistent with the first
time derivative of the constraints.
wm
Reference to a Marker
Specifies the Marker whose axes system would be used to define the initial
angular velocities of the PART (wx,
wy, wz).
When not specified it defaults to PART CM coordinate
system.
wx
Double
Specifies the initial angular velocity of the PART about
the x-axis of the WM marker.
The wx attribute is optional.
When not specified, MotionSolve will
perform an internal computation to ensure that all Part velocities
are consistent with the first time derivative of the
constraints.
When specified, MotionSolve will try to
maintain the value specified as it perform the internal computation
to ensure that all Part velocities are consistent with the first
time derivative of the constraints.
wy
Double
Specifies the initial angular velocity of the PART about
the y-axis of the WM marker.
The wy attribute is optional.
When not specified, MotionSolve will
perform an internal computation to ensure that all Part velocities
are consistent with the first time derivative of the
constraints.
When specified, MotionSolve will try to
maintain the value specified as it perform the internal computation
to ensure that all Part velocities are consistent with the first
time derivative of the constraints.
wz
Double
Specifies the initial angular velocity of the PART about
the z-axis of the WM marker.
The wz attribute is optional.
When not specified, MotionSolve will
perform an internal computation to ensure that all Part velocities
are consistent with the first time derivative of the
constraints.
When specified, MotionSolve will try to
maintain the value specified as it perform the internal computation
to ensure that all Part velocities are consistent with the first
time derivative of the constraints.
planar
One of the following strings : "XY" "YZ" "ZX"
"YX" "ZY" "XZ"
Specifies that this body is constrained to move in a plane and the plane in
which it moves.
The attribute planar is optional.
Legal values: "XY" or "YZ" or
"ZX" or "YX" or "ZY"
or "XZ"
function
String
Specifies the list of parameters that are passed from the data file to the
user-written defined.
The attribute function is optional.
The function attribute is exclusive to
reuler and
zg/xg. Only one of them may be
specified.
routine
String or a pointer to a function
Specifies an alternative name for the user subroutine.
The attribute routine is optional. The default name of
the user subroutine is MASS_READ.
Examples
Create a Ground
PART.
ground = Part (ground=True)
Create a dummy PART with zero mass & inertia at the
global origin.
Note: In order to remove circular references, the body is created in
two steps. First the body is defined without a CM marker. Then the CM
attribute is explicitly defined.
Using the "dot" operator to "get" the attributes of a
PART.
Assume that a rigid body object has been created
using the fifth example. The dot operator may be used as shown below to get
the attributes for a
part:
cm = body0.cm # The CM marker for the part body0
mass = body0.mass # The mass of the part body0
ip = body0.ip # The inertia matrix for part body0
Comments
See Properties
for an explanation about what properties are, why they are used, and how you can
extend these.
For a more detailed explanation about rigid bodies,
see Body: Rigid.