# siconos.mechanics.joints.CylindricalJointR (Python class)¶

class siconos.mechanics.joints.CylindricalJointR(*args)[source]

Bases: siconos.mechanics.joints.NewtonEulerJointR

This class implements a cylindrical joint between one or two Newton/Euler Dynamical system.

It is similar to a PrismaticJointR but allows for rotation around the axis.

From a given axis, we construct two unit othorgonal vectors to the axis V1 and V2 such that (axis,V1,V2) is an orthogonal frame

Generated class (swig), based on C++ header Program listing for file mechanics/src/joints/CylindricalJointR.hpp.

Constructors

CylindricalJointR()

Empty constructor.

The relation may be initialized later by setPoint, setAbsolute, and setBasePositions.

CylindricalJointR(array_like (np.float64, 1D) P, array_like (np.float64, 1D) A, bool absoluteRef, NewtonEulerDS d1=NewtonEulerDS(), NewtonEulerDS d2=NewtonEulerDS())

Constructor based on one or two dynamical systems, a point and an axis.

Parameters: d1 – first DynamicalSystem linked by the joint. d2 – second DynamicalSystem linked by the joint, or NULL for absolute frame. P – SiconosVector of size 3 that defines the point around which rotation is allowed. A – SiconosVector of size 3 that defines the cylindrical axis. absoluteRef – if true, P and A are in the absolute frame, otherwise P and A are in d1 frame.
Jd1(double X1, double Y1, double Z1, double q10, double q11, double q12, double q13) → None[source]
Jd1d2(double X1, double Y1, double Z1, double q10, double q11, double q12, double q13, double X2, double Y2, double Z2, double q20, double q21, double q22, double q23) → None[source]
computeJachq(double time, Interaction inter, BlockVector q0) → None[source]
computeJachqDoF(double time, Interaction inter, BlockVector q0, array_like (np.float64, 2D) jachq, int axis) → None[source]

Compute the jacobian of linear and angular DoF with respect to some q.

computeV1V2FromAxis() → None[source]
computeh(double time, BlockVector q0, array_like (np.float64, 1D) y) → None[source]
computehDoF(double time, BlockVector q0, array_like (np.float64, 1D) y, int axis) → None[source]

Compute the vector of linear and angular positions of the free axes.

numberOfConstraints() → int[source]

Get the number of constraints defined in the joint.

Returns: the number of constraints
numberOfDoF() → int[source]

Return the number of degrees of freedom of this joint.

Returns: the number of degrees of freedom (DoF)
setBasePositions(array_like (np.float64, 1D) q1, array_like (np.float64, 1D) q2=array_like (np.float64, 1D)()) → None[source]

Initialize the joint constants based on the provided base positions.

Parameters: q1 – A SiconosVector of size 7 indicating translation and orientation in inertial coordinates. q2 – An optional SiconosVector of size 7 indicating translation and orientation; if null, the inertial frame will be considered as the second base.
twistCount() → int[source]
typeOfDoF(int axis) → DoF_Type[source]

Return the type of a degree of freedom of this joint.

Returns: the type of the degree of freedom (DoF)