Coupler (hwx.inspire.motion)¶
Simulates the rotational or translational movements of connected parts.
A coupler allows us to specify a mathematical ratio which affects the movement of parts. It is useful for conceptual prototyping and general motion modeling.
- Inherits:
MotionObject (hwx.inspire.motion)
Attributes¶
active: Bool
color: Color
entities: Attribute
entity1: Attribute
entity2: Attribute
entity3: Attribute
name: Attribute
reverse3rdDirection: Bool
reverseDirection: Bool
scale1: EnumUnion (type1)
scale2: EnumUnion (type2)
scale3: EnumUnion (type3)
scales: Attribute
type1: Enum
type2: Enum
type3: Enum
types: Attribute
visible: Bool
Properties¶
Public Methods¶
static getAxisJoint (obj, axisHint=None, ignore=None)
static getUnambiguousJointType (joint)
static inferRatio (a, b=None)
static isAmbiguous (joint)
classmethod getCandidates (cls, part, skip=None, distance=0)
classmethod getExistingCouplerBetweenParts (cls, *args)
classmethod showCouplers (cls, on=True)
flipEntities (self)
getRatioString (self)
Attribute Details¶
active : Bool¶
Returns or sets the object activeness.
Setting this on or off sets all children. Setting to True sets all the parents active too.
color : Color¶
Color of the coupler.
entities : Attribute¶
List of joint entities coupled.
entity1 : Attribute¶
The first joint entity used for coupling.
entity2 : Attribute¶
The second joint entity used for coupling.
entity3 : Attribute¶
The third joint entity used for coupling.
name : Attribute¶
Returns or sets the name of the object.
It can be any text string, including spaces, although it’s best to avoid using the following characters: ” ‘ * ? and $.
While these characters are allowed, they could create difficulties when you export the model to other applications.
reverse3rdDirection : Bool¶
Reverses the direction for Joint 3 Coupling, if True.
reverseDirection : Bool¶
Reverses the direction of Rotation or Translation of the coupler, if True.
scale1 : EnumUnion (type1)¶
Scale for the Joint 1 Coupling.
By default the scale is 360 deg for Rotational and 100 mm for Translational coupling.
scale2 : EnumUnion (type2)¶
Scale for the Joint 2 Coupling.
By default the scale is 360 deg for Rotational and 100 mm for Translational coupling.
scale3 : EnumUnion (type3)¶
Scale for the Joint 3 Coupling.
By default the scale is 360 deg for Rotational and 100 mm for Translational coupling.
scales : Attribute¶
Specifies the scale value to determine the coupler ratio.
type1 : Enum (ROTATION, TRANSLATION)¶
Type of coupling used for the first joint entity.
The Type can be Rotational or Translational.
type2 : Enum (ROTATION, TRANSLATION)¶
Type of coupling used for the second joint entity.
The Type can be Rotational or Translational.
type3 : Enum (ROTATION, TRANSLATION)¶
Type of coupling used for third joint entity.
The Type can be Rotational or Translational.
types : Attribute¶
Specifies the type of coupling for each coupled entities.
visible : Bool¶
Determines whether the object is visible in the graphics window.
Setting this on or off sets all children. Setting to True sets all the parents visible too.
Property Details¶
- property entityset¶
Returns a frozenset of entities used to create the coupler.
- property location¶
Returns the mid-location of all the joints used to create a coupler.
Method Details¶
- static getAxisJoint(obj, axisHint=None, ignore=None)¶
Returns a candidate joint with axis(allows the connecting parts to move).
Raises ValueError if no candidate joint can be found.
- param obj
obj can be an AnalyticalShape instead of a Part, in which case data from it will be used to pick a better candidate. This will never raise when given an AnalyticalShape if it doesn’t on the part that AnalyticalShape is made from; if the data from the AnalyticalShape prove that none of the candidates it would have returned otherwise make sense, it will just return one of them anyway.
- type obj
AnalyticalShapeData, Part
- param axisHint
Is an approximation of the rotation axis of the part, and it is used to enhance the heuristic results.
- type axisHint
math.Vector
- param ignore
To skip any specific candidate.
- type ignore
CouplerCandidates
- static getUnambiguousJointType(joint)¶
Return “ROTATION” if the given joint or entity with implicit joints can be coupled rotationally, “TRANSLATION” if it can only be coupled translationally, or None if it cannot be coupled at all.
- static inferRatio(a, b=None)¶
Given two parts, or a free joint with two parts, try to give two integer values that define their relative movement ratio, i.e. giving a rack and a pinion will return a and b where the pinion rotating b degrees moves the rack a meters.
If scales can not be inferred, return None.
If a free joint is provided, and shape identification fails on the parts, this will attempt to use the surface information in the free joint to infer the ratio.
- static isAmbiguous(joint)¶
Return True if the given joint/entity /w implicit joint would be a valid subject for both rotational and translational coupling.
- classmethod getCandidates(cls, part, skip=None, distance=0)¶
Scan out from the passed in part through the part-joint connectivity graph and return all coupleable entities.
- param part
Part or parts to scan for finding coupleable entities.
- type part
list[Part]
- param skip
Part or parts to skip from the scan.
- type skip
list[Part]
- param distance
Distance of the couple entity on the scan. Defaults to 0.
- type distance
float
- classmethod getExistingCouplerBetweenParts(cls, *args)¶
Returns the coupler that (probably) couples the given parts, or None. If there are multiple existing couplers, this picks one arbitrarily.
- param **parts
List of parts to find the couplers from.
- classmethod showCouplers(cls, on=True)¶
Show graphics for the contact while in the context
- flipEntities(self)¶
Reverses the order of entities used to create a coupler. Also revereses the ratio to match.
- getRatioString(self)¶
Return a string of the format {scale1} : {scale2} [: {scale3}]