All Frameworks  Class Hierarchy  This Framework  Previous  Next  Indexes

KinematicsInterfaces Interface CATIKinMechanism

System.IUnknown
  |
  +---System.IDispatch
    |
    +---System.CATBaseUnknown
      |
      +---CATIKinMechanism
 

Usage: an implementation of this interface is supplied and you must use it as is. You should not reimplement it.


interface CATIKinMechanism

Interface to get and set mechanism's information.
Role: A mechanism has a name and is composed of Joints, Commands and a fixed part. The state of the mechanism is represented by the values of its commands. The methods provided by this interface allow to access this information.


Method Index


o AddCommand(CATIKinJoint*,char*,CATIKinCmd**)
Creates a new command in a mechanism.
o AddJoint(char*,CATLISTP(CATBaseUnknown)*,boolean,CATIKinJoint**)
Creates a new joint in a mechanism.
o GetCmdList(CATLISTP(CATBaseUnknown)**)
Returns the list of commands of the mechanism.
o GetCmdValues(int*,double**)
Returns the values of each command of the mechanism.
o GetFixedProduct(CATIProduct**)
Returns the fixed product of the mechanism.
o GetJointList(CATLISTP(CATBaseUnknown)**)
Returns the list of joints of the mechanism.
o GetProductList(CATLISTP(CATBaseUnknown)**)
Returns the list of the products involved in the mechanism.
o GetProductMotion(CATIProduct*,double**)
Gets the motion of one product after calling a Set or ResetCmdValues.
o GetStatus(int*,int*,boolean*)
Returns the status of a mechanism.
o GetTimeParameter(CATICkeParm**)
Returns the time parameter of the mechanism.
o RemoveCommand(CATIKinCmd*)
Removes a command in the mechanism .
o RemoveJoint(CATIKinJoint*)
Removes a joint in the mechanism .
o ResetCmdValues()
Resets the values of each command of the mechanism to their initial position.
o SetCmdValues(int,double*)
Sets the values of each command of the mechanism and performs a solve with these values.
o SetFixedProduct(CATIProduct*,boolean)
Sets a new fixed product on mechanism.
o SetTimeParameter(double)
Sets the values of the time parameter of the mechanism and performs a solve with these value (only if mechanism can be simulated with laws).
o UpdateAllJoints()
Update all the mechanism joints.

Methods


o AddCommand
public virtual HRESULT __stdcall AddCommand(CATIKinJoint* iJoint,
const char* iCmdType,
CATIKinCmd** oCmd) const=0
Creates a new command in a mechanism.
Parameters:
iJoint
The joint supporting the command.
iCmdType
The type of the command to create (the basic types are defined in CATKinDefs).
oCmd
The created command.
See also:
CATIKinJoint, CATIKinCmd
o AddJoint
public virtual HRESULT __stdcall AddJoint( const char* iJointType,
CATLISTP(CATBaseUnknown)* iConnectorList,
boolean iCreateConstraints,
CATIKinJoint** oJoint) const=0
Creates a new joint in a mechanism.
Parameters:
iJointType
The type of joint to create (the basic types are defined in CATKinDefs).
iConnectorList
The list of elements on which the joint is created. The list of input elements connectors except for Rigid joint, which must be products.
Here is the table of elements you have to give for each type of joint :
e.g.: "Line (1)" means that the geometry type must be a line and must belong to the 1st product.
Type Element 1 Element 2 Element 3 Element 4 Element 5 Element 6 Element 7 Element 8
Prismatic Line (1) Line (2) Plane (1) Plane (2)
Revolute Line (1) Line (2) Plane (1) Plane (2)
Rigid Product (1) Product (2)
Spherical Point (1) Point (2)
Point Curve Point (1) Curve (2)
Slide Curve Curve (1) Curve (2)
Roll Curve Curve (1) Curve (2)
Cylindrical Line (1) Line (2)
Screw Line (1) Line (2)
Universal Line (1) Line (2) Line (1 or 2), optional
CV Joint Line (1) Line (2) Line (3)
Point-Surface Point (1) Surface (2)
Planar Surface Plane (1) Plane (2)
Gear Joint Line (1) Line (3) Plane (1) Plane (3) Line (2) Line (3) Plane (2) Plane (3)
Rack Joint Line (1) Line (3) Plane (1) Plane (3) Line (2) Line (3) Plane (2) Plane (3)
Cable Joint Line (1) Line (3) Plane (1) Plane (3) Line (2) Line (3) Plane (2) Plane (3)
Notes :
  • for Prismatic Joint : Plane 1 must contain Line 1 and Plane 2 must contain Line 2
  • for Revolute Joint : Line 1 must be normal to Plane 1 and Line 2 must be normal to Plane2
  • for Universal Joint : Connector 3 is the cross-pin axis. It must belong to product 1 or 2 and must be orthogonal to Line (1) or Line (2). it is optional.
  • for CV Joint : the angle between Line (1) and Line (2) must be the same as the angle between Line (2) and Line (3)
  • for Gear Joint : it is seen as a Revolute joint between Product 1 and Product 3, and a Revolute joint between Product 2 and Product 3
  • for Rack Joint : it is seen as a Prismatic joint between Product 1 and Product 3, and a Revolute Joint between Product 2 and Product 3
  • for Cable Joint : it is seen as a Prismatic joint between Product 1 and Product 3, and a Prismatic Joint between Product 2 and Product 3
  • iCreateConstraints
    The boolean to set to TRUE if you want to create the associated assembly constraints and FALSE if not.
    oJoint
    The created joint.
    See also:
    CATLISTP(CATBaseUnknown), CATIKinJoint
    o GetCmdList
    public virtual HRESULT __stdcall GetCmdList(CATLISTP(CATBaseUnknown)** oCmdlist) const=0
    Returns the list of commands of the mechanism.
    Parameters:
    oCmdList
    The list of commands (allocated by the method).
    See also:
    CATLISTP(CATBaseUnknown)
    o GetCmdValues
    public virtual HRESULT __stdcall GetCmdValues(int* oSize,
    double** oCmdValues) const=0
    Returns the values of each command of the mechanism.
    Parameters:
    oSize
    The size of the list.
    oCmdValues
    The list of values (allocated by the method).
    o GetFixedProduct
    public virtual HRESULT __stdcall GetFixedProduct(CATIProduct** oFixedProduct) const=0
    Returns the fixed product of the mechanism.
    Parameters:
    oFixedProduct
    The fixed product.
    See also:
    CATIProduct
    o GetJointList
    public virtual HRESULT __stdcall GetJointList(CATLISTP(CATBaseUnknown)** oJointList) const=0
    Returns the list of joints of the mechanism.
    Parameters:
    oJointList
    The list of joints (allocated by the method).
    See also:
    CATLISTP(CATBaseUnknown)
    o GetProductList
    public virtual HRESULT __stdcall GetProductList(CATLISTP(CATBaseUnknown)** oProductList) const=0
    Returns the list of the products involved in the mechanism.
    Parameters:
    oProductList
    The list of products (allocated by the method).
    See also:
    CATLISTP(CATBaseUnknown)
    o GetProductMotion
    public virtual HRESULT __stdcall GetProductMotion(CATIProduct* iProduct,
    double** oMotion) const=0
    Gets the motion of one product after calling a Set or ResetCmdValues.
    Note : the motion returned is always relative to the initial position
    Parameters:
    iProduct
    The product for which you want to know the motion
    oMotion
    The motion of the product. The 12 double vector (allocated by the method) is set as following :
  • Position 0 to 2 : the first column of the rotation matrix
  • Position 3 to 5 : the second column of the rotation matrix
  • Position 6 to 8 : the third column of the rotation matrix
  • Position 9 to 11 : the tranlsation vector
  • o GetStatus
    public virtual HRESULT __stdcall GetStatus(int* oDOFWithoutCmd,
    int* oDOFWithCmd,
    boolean* oSimulationReady) const=0
    Returns the status of a mechanism.
    Parameters:
    oDOFWithoutCmd
    The degree of freedom without any command
    oDOFWithCmd
    The degree of freedom with commands
    oSimulationReady
    The boolean returning TRUE if the mechanism can be simulated and FALSE if not
    o GetTimeParameter
    public virtual HRESULT __stdcall GetTimeParameter(CATICkeParm** oTimeParameter) const=0
    Returns the time parameter of the mechanism.
    Parameters:
    oTimeParameter
    The time parameter.
    See also:
    CATICkeParm
    o RemoveCommand
    public virtual HRESULT __stdcall RemoveCommand(CATIKinCmd* iCmd) const=0
    Removes a command in the mechanism .
    Parameters:
    iCommand
    The Command to remove.
    o RemoveJoint
    public virtual HRESULT __stdcall RemoveJoint(CATIKinJoint* iJoint) const=0
    Removes a joint in the mechanism .
    Parameters:
    iJoint
    The Joint to remove.
    o ResetCmdValues
    public virtual HRESULT __stdcall ResetCmdValues()const=0
    Resets the values of each command of the mechanism to their initial position.
    Note : to get the displacements of each product, use GetProductDisplacement
    o SetCmdValues
    public virtual HRESULT __stdcall SetCmdValues(int iSize,
    double* iCmdValues) const=0
    Sets the values of each command of the mechanism and performs a solve with these values.
    Note : to get the motion (displacement) of each product, use GetProductMotion
    Parameters:
    iSize
    The size of the list.
    iCmdValues
    The list of values.
    o SetFixedProduct
    public virtual HRESULT __stdcall SetFixedProduct(CATIProduct* iFixedProduct,
    boolean iCreateFixConstraint) const=0
    Sets a new fixed product on mechanism.
    Parameters:
    iFixedProduct
    The fixed product.
    Note : if iFixedProduct is NULL, the Fixed Product is unset.
    iCreateFixConstraint
    The boolean to set to TRUE if you want to create the associated assembly fix constraint and FALSE if not.
    See also:
    CATIProduct
    o SetTimeParameter
    public virtual HRESULT __stdcall SetTimeParameter(double iTimeParameter) const=0
    Sets the values of the time parameter of the mechanism and performs a solve with these value (only if mechanism can be simulated with laws).
    Note : to get the motion (displacement) of each product, use GetProductMotion
    Parameters:
    iTimeParameter
    The time parameter.
    o UpdateAllJoints
    public virtual HRESULT __stdcall UpdateAllJoints()= 0
    Update all the mechanism joints.

    This object is included in the file: CATIKinMechanism.h
    If needed, your Imakefile.mk should include the module: CATKiiKinematicsItf

    Copyright © 2003, Dassault Systèmes. All rights reserved.