pylinkage.joints package
Submodules
pylinkage.joints.crank module
Crank joint definition.
- class pylinkage.joints.crank.Crank(x=None, y=None, joint0=None, distance=None, angle=None, name=None)
Bases:
Joint
Define a crank joint.
- angle
- get_constraints()
Return the distance to the center of rotation.
- r
- reload(dt=1)
Make a step of crank.
- Parameters:
dt (float) – Fraction of steps to take (Default value = 1)
- set_anchor0(joint, distance=None)
First joint anchor and fixed distance.
- Parameters:
joint
distance – (Default value = None)
- set_constraints(distance=None, *args)
Set geometric constraints, only self.r is affected.
- Parameters:
distance (float) – Distance from the reference point. (Default value = None)
args – Unused, but preserves the object structure.
pylinkage.joints.fixed module
Fixed joint.
- class pylinkage.joints.fixed.Fixed(x=None, y=None, joint0=None, joint1=None, distance=None, angle=None, name=None)
Bases:
Joint
Define a joint using parents locations only, with no ambiguity.
- angle
- get_constraints()
Return the constraining distance and angle parameters.
- r
- reload()
Compute point coordinates.
We know point position relative to its two parents, which gives a local space. We know the orientation of local space, so we can solve the whole. Local space is defined by link[0] as the origin and (link[0], link[1]) as abscissas axis.
- set_anchor0(joint, distance=None, angle=None)
First joint anchor and characteristics.
- Parameters:
joint
distance – (Default value = None)
angle – (Default value = None)
- set_anchor1(joint)
Second joint anchor.
- Parameters:
joint – Joint to set as anchor
- set_constraints(distance=None, angle=None)
Set geometric constraints.
- Parameters:
distance – (Default value = None)
angle – (Default value = None)
pylinkage.joints.joint module
Definition of the different joints used for pylinkage.
- class pylinkage.joints.joint.Joint(x=0, y=0, joint0=None, joint1=None, name=None)
Bases:
ABC
Geometric constraint expressed by two joints.
Abstract class should always be inherited.
- coord()
Return cartesian coordinates.
- Return type:
tuple[float | None, float | None]
- abstract get_constraints()
Return geometric constraints applying to this Joint.
- joint0
- joint1
- name
- abstract set_constraints(*args)
Set geometric constraints applying to this Joint.
- set_coord(*args)
Take a sequence or two scalars, and assign them to object x, y.
- Parameters:
args (tuple[float, float] | tuple[tuple[float, float]]) – Coordinates to set, either as two elements or as a tuple of 2 elements
- x
- y
- class pylinkage.joints.joint.Static(x=0, y=0, name=None)
Bases:
Joint
Special case of Joint that should not move.
Mostly used for the frame.
- get_constraints()
Return an empty tuple.
- reload()
Do nothing, for consistency only.
- set_anchor0(joint)
First joint anchor.
- Parameters:
joint – Joint to set as anchor.
- set_anchor1(joint)
Second joint anchor.
- Parameters:
joint – Joint to set as anchor.
- set_constraints(*args)
Do nothing, for consistency only.
- Parameters:
args – Unused
pylinkage.joints.linear module
Definition of a linear joint.
- class pylinkage.joints.linear.Linear(x=0, y=0, joint0=None, joint1=None, joint2=None, revolute_radius=None, name=None)
Bases:
Joint
Define a point constrained by a prismatic joint and a revolute joint.
- get_constraints()
Return the only distance constraint for this joint.
- joint2
- reload()
Compute position of revolute joint, with the three linked joints.
- revolute_radius
- set_constraints(distance0=None)
Set the only distance constraint for this joint.
pylinkage.joints.revolute module
Definition of a revolute joint.
It is also called pin joint or hinge joint, and used to be called a pivot joint in this project.
- class pylinkage.joints.revolute.Pivot(x=0, y=0, joint0=None, joint1=None, distance0=None, distance1=None, name=None)
Bases:
Revolute
Revolute Joint definition.
Deprecated since version 0.6.0: This class has been de@recated in favor of Revolute which has a standard name. It will be removed in PyLinkage 0.7.0.
- r0
- r1
- class pylinkage.joints.revolute.Revolute(x=0, y=0, joint0=None, joint1=None, distance0=None, distance1=None, name=None)
Bases:
Joint
Center of a revolute joint.
- circle(joint)
Return the first link between self and parent as a circle.
- Parameters:
joint (Joint) – Parent joint you want to use
- Returns:
Circle is a tuple (abscissa, ordinate, radius).
- Return type:
tuple[float, float, float]
- get_constraints()
Return the two constraining distances of this joint.
- r0
- r1
- reload()
Compute the position of revolute joint, use the two linked joints.
- set_anchor0(joint, distance=None)
Set the first anchor for this Joint.
- Parameters:
joint (Joint | tuple[float]) – The joint to use as anchor.
distance (float) – Distance to keep constant from the anchor. The default is None.
- set_anchor1(joint, distance=None)
Set the second anchor for this Joint.
- Parameters:
joint (Joint | tuple[float]) – The joint to use as anchor.
distance (float) – Distance to keep constant from the anchor. The default is None.
- set_constraints(distance0=None, distance1=None)
Set geometric constraints.
- Parameters:
distance0 (float) – Distance to the first reference (Default value = None)
distance1 (float) – Distance to the second reference (Default value = None)
pylinkage.joints.static module
Static joint definition file.
- class pylinkage.joints.static.Static(x=0, y=0, name=None)
Bases:
Joint
Special case of Joint that should not move.
Mostly used for the frame.
- get_constraints()
Return an empty tuple.
- reload()
Do nothing, for consistency only.
- set_constraints(*args)
Do nothing, for consistency only.
- Parameters:
args – Unused
Module contents
Definition of joints.