You are on page 1of 5

10/21/2018 Defining Kinematic Relationships

Defining Kinematic Relationships


The Kinematic Relations command is used to define kinematic relationships for non-command joints
relative to the command joints. Mechanism parameters such as link lengths, link offsets and user-
defined variables may be defined.

Usage of this command requires a mechanism with a fixed part, joints and commands.

1. Click Kinematic Relations to display a dialog box listing the non-command joints of the
mechanism:

2. Select a joint from the list of non-command joints (or directly in the 3D viewer) for which a
kinematic relation is to be defined, and click Add/Edit Relation button to define and compile
the kinematic expression. If the selected joint already has a kinematic expression defined for
it, this expression will be displayed in the expression editor. The existing expression may then
be edited, if necessary.

file:///C:/Program%20Files%20(x86)/Dassault%20Systemes/B22doc/English/online/dbgug_D2/dbgugat1300.htm 1/5
10/21/2018 Defining Kinematic Relationships

Joint expressions may be typed directly into the Define Joint Kinematic Relationship dialog
without using the supplied dictionaries.

3. Click OK to apply the defined relationship and close the dialog box.

Dictionary types
The substrings used to compile a kinematic expression are categorized into various dictionaries as as
shown in the Define Joint Kinematic Relationship dialog. Each dictionary contains a predefined set of
strings.
The contents of the Degree of Freedom (DOF) dictionary is dependent upon the number of DOFs of
the mechanism. For a mechanism with N degrees of freedom, the Degree of Freedom dictionary will
have DOF(1), DOF(2), ...DOF(N).
The User Variables dictionary will list all of the user-defined variables that have been created.
The members of the Math, Operators, and Functions dictionaries are defined as follows:

Operators

; Separator for expressions. Useful in case of multiple


expressions for a non-command joint.

, Arguments separator in a function

= Assignment

+ Unary plus, binary addition

- Unary minus, binary subtraction

* Binary multiplication

/ Binary division

^ Exponent

% Module operator

( Opening parenthesis

) Closing parenthesis

Math

abs(x) returns absolute value

acos(x)
asin(x) returns arc cos, sin, tan in degrees
atan(x)

acosr(x)
asinr(x) returns arc cos, sin, tan in radians
atanr(x)

cos(x)
sin(x) Returns cos, sin, tan in degrees
tan(x)

cosr(x)
sinr(x) Returns cos, sin, tan in radians
tanr(x)

exp(x) Returns e raised to power x

file:///C:/Program%20Files%20(x86)/Dassault%20Systemes/B22doc/English/online/dbgug_D2/dbgugat1300.htm 2/5
10/21/2018 Defining Kinematic Relationships

int(x) Returns integer value resulting from truncation

sqrt(x) Returns square root

floor(x)
Returns floor, ceiling of x
ceil(x)

log(x)
Returns natural logarithm, logarithm base 10
log10(x)

Functions

The following functions are useful for solving triangles given three
sides of the triangle (s1, s2, s3) and one of its angle (a1). Note that
all angles are in radians.

sasa(s1,a1,s2) returns angle opposite side s1

sass(s1,a1,s2) returns length of side opposite angle a1

sssa(s1,s2,s3) returns angle opposite side s1

The following functions are useful for solving convex quadrilaterals


given four sides (s1, s2, s3, s4) and two of its angles (a1, a2). Note
that all angles are in radians.

sasasa(s1,a1,s2,a2,s3) returns angle between sides s3 and s4

sasass(s1,a1,s2,a2,s3) returns length of unknown side s4

sasssa1(s1,a1,s2,s3,s4) returns angle between sides s2 and s3

sasssa2(s1,a1,s2,s3,s4) returns angle between sides s3 and s4

A ramp function will assist in calculating the joint values of a joint


whose upper and lower bounds are dependant on the values of
another joint.

yy = returns yy as a linear function of xx,


ramp(xx,x1,y1,x2,y2) where the inputs x1, y1, x2, y2 are
used to define the ramp.

inrange(a,b,c) returns 1 if b <= a < c and 0 otherwise

range(a,b,c) returns a if b < a, c if b > c and b


otherwise

For a list of the values used in converting radians to degrees (or vice versa), plus the value of PI
used in this software, click here.

Managing User Variables


User Variables can be created, edited, and deleted using the Create, Edit,and Delete buttons in the
User Variable section of the dialog box. For example, click Create to display the Create/Edit User
Variable dialog box:

file:///C:/Program%20Files%20(x86)/Dassault%20Systemes/B22doc/English/online/dbgug_D2/dbgugat1300.htm 3/5
10/21/2018 Defining Kinematic Relationships

Newly created variables are added to the User Variables dictionary and may subsequently be used in
the kinematic expression of a joint. The following image shows that the variable defined above
(MyVariable) has been added to the User Variables dictionary:

When an item of the User Variable dictionary is selected, click Edit to display existing values in the
editor.

Notes
The definition of kinematic relationship is only allowed for non-command joints and these
joints must only be of Prismatic or Revolute type. For example, a Cylindrical joint cannot
have a kinematic relation.

It is not mandatory to define kinematic relationship expressions for all the non-command
joints. Non-command joints without a kinematic relationship are ignored.

User-defined variable names in the kinematic relation may not have these special
characters: tilde, exclamation mark, rate, hash, ampersand, underscore, question mark (~ !
@ # & _ ?).

file:///C:/Program%20Files%20(x86)/Dassault%20Systemes/B22doc/English/online/dbgug_D2/dbgugat1300.htm 4/5
10/21/2018 Defining Kinematic Relationships

Whenever the mechanism is simulated, if kinematic relationships are already defined for at
least one of the non-command joints of the mechanism, the forward kinematics solver for
the mechanism will be based on the Device Building user-defined kinematic relationship
rather than the DMU Kinematics automatic closed-chain solution algorithm which is typically
the default. This also implies that mechanisms defined in Device Building workbench with
kinematic relationships can not be simulated in DMU Kinematics workbench. The reason for
this difference is that the kinematic relations functionality is a simplified abstraction that is
required for high performance resource simulation (to predict motion and collision issues)
whereas the DMU Kinematics workbench requirement is for detailed design of the
mechanism, not the simplified abstraction.

file:///C:/Program%20Files%20(x86)/Dassault%20Systemes/B22doc/English/online/dbgug_D2/dbgugat1300.htm 5/5

You might also like