# *UJoint()

Creates a universal joint.

## Syntax

*UJoint(joint_name, "joint_label", body_1, body_2,
origin,
SHAFT|CROSSPIN,
POINT|VECTOR,
point_1|vector_1,
SHAFT|CROSSPIN,
POINT|VECTOR,
point_2|vector_2,
[ALLOW_COMPLIANCE])

## Arguments

joint_name
The variable name of the universal joint.
Data type: varname
joint_label
The descriptive label of the universal joint.
Data type: label
body_1
The first body constrained by the universal joint.
Data type: Body
body_2
The second body constrained by the universal joint.
Data type: Body
origin
The location of the universal joint.
Data type: Point
SHAFT|CROSSPIN
This argument orients the first shaft or crosspin of the universal joint.
POINT|VECTOR
A keyword that indicates the alignment method.
point_1|vector_1
An entity variable referring to a Point or Vector which is based on the above keyword.
Data type: Point or Vector
SHAFT|CROSSPIN
This argument orients the second shaft or crosspin of the universal joint.
POINT|VECTOR
A keyword that indicates the alignment method.
point_2|vector_2
An entity variable referring to a Point or Vector which is based on the above keyword.
Data type: Point or Vector
ALLOW_COMPLIANCE
An optional argument that indicates the joint can be made compliant.

## Example

*Body(b_tierod, "Tie rod",
p_1)
*Body(b_rack, "Rack",
p_2)
*Point(p_itrb, "Inner tie rod")
*Point(p_otrb, "Outer tie rod")
*Vector(v_x, "X vector")
*UJoint(itrj, "Inner tierod joint",
b_tierod,
b_rack,
p_itrb,
SHAFT,
POINT,
p_otrb,
CROSSPIN,
VECTOR,
v_x,
ALLOW_COMPLIANCE) 

## Properties

Table 1.
Property Returns Data Type Description
b1 Body The first body constrained by the universal joint.
b2 Body The second body constrained by the universal joint.
i Marker The marker on b1.
id long integer Solver identification number.
j Marker The marker on b2.
label string The descriptive label of the universal joint.
state boolean Control state (TRUE or FALSE).
type string Unique joint type.
varname string The variable name of the universal joint.