Model Element |
||||||||||||||||||||||||||||||||||||||||||||||||||||
Class NameMarker Description |
||||||||||||||||||||||||||||||||||||||||||||||||||||
Marker 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. The Newtonian reference frame (Ground) is considered to be a special case of a rigid PART. |
||||||||||||||||||||||||||||||||||||||||||||||||||||
Attribute Summary
Usage |
||||||||||||||||||||||||||||||||||||||||||||||||||||
#1: Defined completely in the input file Marker (body=objBody, optional_attributes)
#2: Defined in a compiled user-written subroutine Marker (body=objBody, function=userString, routine=string, optional_attributes)
#3: Defined in a Python script Marker (body=objBody, function=userString, routine=functionPointer, optional_attributes) |
||||||||||||||||||||||||||||||||||||||||||||||||||||
Attributes |
Description |
|||||||||||||||||||||||||||||||||||||||||||||||||||
Defined completely in the input file |
||||||||||||||||||||||||||||||||||||||||||||||||||||
body |
Reference to an existing Part, PointMass or FlexBody object Specifies an already existing PART, POINT_MASS or FLEX_BODY object to which the Marker belongs. The body attribute is mandatory |
|||||||||||||||||||||||||||||||||||||||||||||||||||
qp |
A Location object or a list of 3 doubles Specifies the coordinates of the origin of the Marker in the RM Marker coordinate system. The qp attribute is optional. When not specified, it is assumed to be coincident with the global origin, i.e. (0, 0, 0). |
|||||||||||||||||||||||||||||||||||||||||||||||||||
zp |
A Location object or a list of 3 doubles Specifies the coordinates of a point on the z-axis of the Marker in the RM Marker coordinate system. The zp attribute is optional. When not specified, the point is assumed to be on the z-axis of the RM Marker. The zp/xp attribute is exclusive to reuler and function. Only one of them may be specified. |
|||||||||||||||||||||||||||||||||||||||||||||||||||
xp |
A Location object or a list of 3 doubles Specifies the coordinates of a point on the x-axis of the Marker in the RM Marker coordinate system. The xp attribute is optional. When not specified, the point is assumed to be on the x-axis of the RM Marker. The zp/xp attribute is exclusive to reuler and function. Only one of them may be specified. |
|||||||||||||||||||||||||||||||||||||||||||||||||||
usexp
|
Boolean The usexp attribute is optional.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
reuler |
A list of 3 doubles Specifies the body-fixed 3-1-3 Euler angles, in radians, of the Marker with respect to the RM Marker. The reuler attribute is optional. When not specified, it is assumed to be (0,0,0), i.e. the Marker has the same orientation as the RM Marker. The reuler attribute is exclusive to zp/xp and function. Only one of them may be specified. |
|||||||||||||||||||||||||||||||||||||||||||||||||||
Defined in a compiled user-written subroutine |
||||||||||||||||||||||||||||||||||||||||||||||||||||
body |
Reference to an existing Part, PointMass or FlexBody object Specifies an already existing PART, POINT_MASS or FLEX_BODY object to which the Marker belongs. The body attribute is mandatory |
|||||||||||||||||||||||||||||||||||||||||||||||||||
function |
String The list of parameters that are passed from the data file to the user-defined subroutine. The function attribute is mandatory |
|||||||||||||||||||||||||||||||||||||||||||||||||||
routine |
String Specifies an alternative name for the user subroutine. The name consists of two pieces of information, separated by “∷”. The first is the pathname to the shared library containing the function that computes the response of the user-defined Surface. The second is the name of the function in the shared library that does the computation. An example is: routine=”/staff/Altair/engine.dll∷myMarker”
The attribute routine is optional. When not specified, routine defaults to MARKER_READ. The attribute routine is optional. When function is specified, but routine is not, routine defaults to MARKER_READ. |
|||||||||||||||||||||||||||||||||||||||||||||||||||
Defined in a Python script |
||||||||||||||||||||||||||||||||||||||||||||||||||||
body |
Reference to an existing Part, PointMass or FlexBody object Specifies an already existing PART, POINT_MASS or FLEX_BODY object to which the Marker belongs. The body attribute is mandatory |
|||||||||||||||||||||||||||||||||||||||||||||||||||
function |
String The list of parameters that are passed from the data file to the user-defined subroutine. The function attribute is mandatory |
|||||||||||||||||||||||||||||||||||||||||||||||||||
routine |
Pointer to a callable function in Python An example is: routine= myMarker
The attribute routine is optional. When not specified, routine defaults to MARKER_READ. |
|||||||||||||||||||||||||||||||||||||||||||||||||||
Optional Attributes – Available to all description methods |
||||||||||||||||||||||||||||||||||||||||||||||||||||
id |
Integer Specifies the element identification number. This number must be unique among all the Marker 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 Marker object. This attribute is optional. When not specified, MotionSolve will create a label for you. |
|||||||||||||||||||||||||||||||||||||||||||||||||||
rm |
Reference to an existing Marker Defines the reference coordinate system in which the MARKER location and orientation are described. If you want to specify the position and orientation of the MARKER in the global reference frame, use RM=0. The rm attribute is optional. When not specified, the position and orientation of the MARKER is assumed to be with respect to the LPRF of the hosting body. |
|||||||||||||||||||||||||||||||||||||||||||||||||||
floating
|
Boolean Specifies whether the MARKER is a floating marker or not. The attribute, floating, is optional. When not specified it is set to "FALSE". |
|||||||||||||||||||||||||||||||||||||||||||||||||||
node |
Integer Specifies the node on the flexible body to which the MARKER is attached. The node attribute is required only when a Marker is to be placed oat a node on a flexible body. It is not to be used for rigid bodies or point mass bodies. |
|||||||||||||||||||||||||||||||||||||||||||||||||||
Comments
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
Examples
m1012 = Marker (id=1012, label="marker 1012", body=p1000, qp=[1.414,3.142,1.618], zp=[101.327,3.142,-2.545], xp=[1.414, 3.142, 101.618])
m30303 = Marker (label="joint 3-marker-i", body=p30303)
m30102040 = Marker (id=30102040, label="Marker 2", body=p30102, function="user(1, -0.5, 0.3, 0., 1.57079633, 1.57079633, -1.57079633)", routine=marker_read) The script marker_read.py is defined below: def marker_read (id, par, npar): |
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
# DVs qpy = Dv (label="Y coordinate of Point B", b=200) qpz = Dv (label="Z coordinate of Point B", b=350)
# QP qp = [qpx, qpy, qpz]
# ZP is along x-axis
# XP is along z-axis
# Now define the Marker and hold it in the Python variable markerB markerB = Marker (body=p1, qp=qp, zp=zp, xp=xp, label="markerB") |
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
m2 = Marker (body=p2, qp=m1.qp, zp=m1.zp, xp=m1.xp, label="m2") |
||||||||||||||||||||||||||||||||||||||||||||||||||||