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}]