# createUJoint

Modeling FunctionDefines a universal joint between two bodies.

## Description

createUJoint creates the I and J marker and returns the joint object created. All properties of a universal joint are supported by keyword arguments.

## Signature

joint = createUJoint(ibody, jbody, location, ishaft, jshaft, **kwds)

## Input Arguments

ibody
The first body on which the joint is created.
jbody
The second body on which the joint is created.
location
The location where the joint is created.
ishaft
The direction of ishaft if a Vector is given, otherwise it defines the end point.
jshaft
The direction of jshaft if a Vector is given, otherwise it defines the end point.
kwds
Keyword arguments that define other properties of the joint.

## Return Value

joint
The spherical joint created.

## Usage

# Create a universal Joint at (1,1,1), ishaft=(1,0,0), jshaft=(0,0,1)
# Method 1: ishaft & jshaft defined by Vector
part1 = Part(mass=1, ip=[10,10,10], cm=Marker())
part2 = Part(mass=1, ip=[10,10,10], cm=Marker())
joint = createUJoint(
ibody = part1,
jbody = part2,
location = Point(1,1,1),
ishaft = Vector(1,0,0),
jshaft = Vector(0,0,1),
)
# Method 2: ishaft & jshaft defined by Point
part1 = Part(mass=1, ip=[10,10,10], cm=Marker())
part2 = Part(mass=1, ip=[10,10,10], cm=Marker())
joint = createUJoint(
ibody = part1,
jbody = part2,
location = Point(1,1,1),
ishaft = Point(2,1,1),
jshaft = Point(1,1,2),
)