volmdlr_tools.graph.kinematics package#

Kinematics analysis tools for finding joints and computing torsors between solids.

Submodules#

volmdlr_tools.graph.kinematics.findjoint module#

Specific module to find the joint between two solids using only geometric constraints.

class volmdlr_tools.graph.kinematics.findjoint.JointFinder(geometric_constraints: list[GeometricConstraint], solid1: Solid, solid2: Solid, name: str = '')#

Bases: DessiaObject

Class to find joint between two solids.

analyse_intersection_result() KinematicTorsor#

Analyze the vector from the intersection of subspaces.

static analysis(torsor: Torsor, solid1: Solid = None, solid2: Solid = None, geometric_constraints: GeometricConstraint = None) <module 'volmdlr_tools.graph.utils.joint_types' from '/builds/dessia/sdk/volmdlr_tools/src/volmdlr_tools/graph/utils/joint_types.py'>#

Return the type of joint from the type of equivalent torsor.

check_direction(tol: float = 0.001) bool#

Check if constraints are globally aligned with reference frame.

check_displacement() Torsor#

Force to displace plane when there is plane and cylindrical constraints.

construct_matrix_dof() ndarray#

Construct the matrix of all constraints.

static count_dof_constraints(torsors: Torsor, threshold: float = 0.01)#

Compute the numbers of blocked degree of freedom.

create_torsor_from_unconstrained() Torsor#

Generate a Torsor from the dof that have never been blocked.

detect_minimal_constraints() dict[str, int]#

Return which constraints is never blocked.

equivalent_torsor() Torsor#

Compute the equivalent torsor between all the constraints.

find_subspace_intersection(matrix: ndarray, subspace_dims: list[int]) ndarray | None#

Compute the intersection between constraints.

get_dict_constraints_name() dict[str, Torsor]#

Link the name of the geometric_constraints to his torsor.

get_kinematic_list() list[ndarray]#

Return the list of cinematic torsor.

get_most_unknown() int#

Get the key of a constraint with the most static unknown.

get_torsor_kinematic_list() list[KinematicTorsor]#

Return the list of KinematicTorsor object.

get_torsor_static_list() list[StaticTorsor]#

Return the array corresponding of static torsor.

joint_torsor() KinematicTorsor#

Compute the equivalent torsor between two solids.

merge_torsors(torsor: Torsor) Torsor#

Compute the merge of the equivalent torsor and the torsor of unblocked dof.

should_merge_torsors(merge_threshold: float = 0.9) bool#

Check if the mechanism is deeply connected or not.

volmdlr_tools.graph.kinematics.torsor module#

Class to represent and manipulate torsor object.

class volmdlr_tools.graph.kinematics.torsor.DynamicTorsor(resultant: Vector3D, moment: Vector3D, position: Point3D, name: str = '')#

Bases: Torsor

Class to represent and manipulate Dynamic Torsor.

static type() str#

Get Torsor type.

class volmdlr_tools.graph.kinematics.torsor.GeometricTorsor(resultant: Vector3D, moment: Vector3D = None, position: Point3D = None, name: str = '')#

Bases: Torsor

Class to represent and manipulate Geometric Torsor.

classmethod from_kinematic_torsor(kinematic_torsor: KinematicTorsor) GeometricTorsor#

Return GeometricTorsor from a Kinematic Torsor.

geometric_torsor_matrix() list[GeometricTorsor]#

Return the matrix that contains all GeometricTorsor.

geometric_torsor_rotation_x() GeometricTorsor#

Geometric torsor of rotation along x.

geometric_torsor_rotation_y() GeometricTorsor#

Geometric torsor of rotation along y.

geometric_torsor_rotation_z() GeometricTorsor#

Geometric torsor of rotation along z.

geometric_torsor_translation_x() GeometricTorsor#

Geometric torsor of translation along x.

geometric_torsor_translation_y() GeometricTorsor#

Geometric torsor of translation along y.

geometric_torsor_translation_z() GeometricTorsor#

Geometric torsor of translation along z.

static type() str#

Get Torsor type.

class volmdlr_tools.graph.kinematics.torsor.KinematicTorsor(resultant: Vector3D, moment: Vector3D, position: Point3D, name: str = '')#

Bases: Torsor

Class to represent and manipulate Kinematic Torsor.

static type() str#

Get Torsor type.

class volmdlr_tools.graph.kinematics.torsor.KineticTorsor(resultant: Vector3D, moment: Vector3D, position: Point3D, name: str = '')#

Bases: Torsor

Class to represent and manipulate Kinetic Torsor.

static type() str#

Get Torsor type.

class volmdlr_tools.graph.kinematics.torsor.StaticTorsor(resultant: Vector3D, moment: Vector3D, position: Point3D, name: str = '')#

Bases: Torsor

Class to represent and manipulate Static Torsor.

static type() str#

Get Torsor type.

class volmdlr_tools.graph.kinematics.torsor.Torsor(resultant: Vector3D, moment: Vector3D, position: Point3D, name: str = '')#

Bases: DessiaObject

Class to represent and manipulate Torsor.

addition(other: Torsor) Torsor#

Compute the sum of two vectors.

check_direction_dof() bool#

Check if the equivalent torsor is rotation and translation.

check_rotary() bool#

Check if the equivalent torsor is only rotation.

comparison_unknown(other: Torsor) tuple[Torsor, Torsor]#

Compare two torsors and sort.

compute_norm() float#

Compute the norm of a Torsor to count dof.

copy() Torsor#

Return deepcopy of the torsor.

classmethod dict_to_object(dict_: dict[str, Any], **kwargs) SerializableObject#

Deserialize a dictionary to a Torsor object.

equivalent_torsor(others: list[Torsor]) Torsor#

Compute the equivalent torsor for several torsors.

get_unknown() int#

Compute the number of unknown.

moment_dual() Vector3D#

Convert the resultant from a torsor to the moment of another.

resultant_dual() Vector3D#

Convert the moment from a torsor to the resultant of another.

to_dict(use_pointers: bool = True, memo=None, path: str = '#', **kwargs) dict[str, Any]#

Convert the Torsor object to a serializable dictionary.

to_dual() Torsor#

Return the dual torsor.

torsor_to_column(reference_position: Point3D) ndarray#

Convert torsor to column vector with 6 components.

transport_moment(position: Point3D, tolerance: float = 1e-09) Vector3D#

Compute the new torsor at the position.

transport_resultant(position: Point3D) Vector3D#

Compute the transport of moment for a torsor.

Module contents#

Kinematics module.