跳转至

GTN_GetGroupCoordinateTransform

指令原型:

GT_API GTN_GetGroupCoordinateTransform(short core,short group, short coordSystem,short *pEnable,TCoordinateTransform *pPrm)

指令类型:

group指令。

指令说明:

读取group的笛卡尔坐标系变换参数。

指令参数说明:

core 核号,正整数,取值范围请参照核号参数范围一栏。
group group号,正整数,取值范围请参照group号参数范围一栏。
coordSystem 需要进行变换的笛卡尔坐标系类型。 ``` COORD_SYSTEM_PCS(0):工件坐标系,描述PCS相对MCS的关系。 COORD_SYSTEM_TCS(3):刀具坐标系,对于机器人,描述TCS相对FCS的关系,对于三轴或者五轴模型,描述TCS相对MCS的关系。 COORD_SYSTEM_PCS_USER_DEFINE(30):用户定义工件坐标系或者特征坐标系,描述了该坐标系相对PCS的关系。 COORD_SYSTEM_TCS_USER_DEFINE(20):用户定义工具坐标系,描述了该坐标系相对MCS的关系,应用于五轴模型中的刀具方向进退刀功能。
pEnable 是否使能变换,0;不使能,1:使能。
pPrm 坐标系变换参数结构体指针。详情说明请参照TCoordinateTransform
TCoordinateTransform
typedef struct CoordinateTransform
{
    short mode;
    short reserve[3];
    TCoordinateTransformUnion data;
}TCoordinateTransform;
mode:坐标系变换参数描述模式。
COORD_TRANS_TYPE_ACS_POS(5):通过ACS的位置描述坐标系变换。
COORD_TRANS_TYPE_EULER(1):欧拉角描述,每次都是绕旋转后的坐标系轴旋转。
COORD_TRANS_TYPE_EULER_FIX(11):固定角描述,每次都是绕固定坐标系的坐标轴旋转。
COORD_TRANS_TYPE_TOOL_DIR(20):刀具方向描述。
COORD_TRANS_TYPE_OFFSET(30):偏移值描述。
COORD_TRANS_TYPE_POINTS(40):三点模式。
COORD_TRANS_TYPE_TWO_VECTORS(50):两个矢量模式。
COORD_TRANS_TYPE_PROJECT_ANGLE(60):投影角模式。
reserve:保留参数,必须为0。
当mode为COORD_TRANS_TYPE_EULER(1),reserve[0]描述欧拉角或者固定角的模式,也就是描述旋转次序:
EULER_MODE_ZYX(0)
EULER_MODE_ZXZ(3)
当mode为COORD_TRANS_TYPE_EULER(11),reserve[0]描述欧拉角或者固定角的模式,也就是描述旋转次序:
EULER_MODE_ZXZ(3)
EULER_MODE_XYZ(4)
data:坐标系变换参数。详情说明请参照TCoordinateTransformUnion
TCoordinateTransformUnion
typedef union CoordinateTransformUnion
{
    TCoordinateTransformAcsPos acsPos;
    TCartesianParameter euler;
    TCoordinateTransformToolDir toolDir;
    TCoordinateTransformOffset offset;
    TCoordinateTransformPoints points;
    TCoordinateTransformTwoVectors twoVectors;
    TCoordinateTransformProjectAngle projectAngle;
    double value[20];
} TCoordinateTransformUnion;
acsPos:通过ACS的位置描述坐标系变换。详情说明请参照TCoordinateTransformAcsPos
TCoordinateTransformAcsPos
typedef struct CoordinateTransformAcsPos
{
    double prm[8];
    double reserve[12];
}TCoordinateTransformAcsPos;
mode:各个轴的ACS位置值,以设置的位置和姿态作为变换后坐标系的零点。单位:直线轴为mm,旋转轴为度。
reserve:保留参数,必须为0。
euler::欧拉角描述坐标系变换。详情说明请参照TCartesianParameter
TCartesianParameter
typedef struct CartesianParameter
{
    double transX;
    double transY;
    double transZ;
    double rotAngle1;
    double rotAngle2;
    double rotAngle3;
}TCartesianParameter;
transX:X轴偏移量。单位:mm。
transY:Y轴偏移量。单位:mm。
transZ:Z轴偏移量。单位:mm。
rotAngle1:旋转角度1。单位:度。
rotAngle2:旋转角度2。单位:度。
rotAngle3:旋转角度3。单位:度。
toolDir:刀具方向描述坐标系变换。通过刀具方向描述的坐标系定义为:将MCS和刀具侧旋转轴一起旋转得到新的坐标,再在旋转后的坐标系上绕Z轴旋转alpha角度。该模式只允许在五轴模型下设置,且只能设置在COORD_SYSTEM_PCS(0)或者COORD_SYSTEM_PCS_USER_DEFINE(30)下。详情说明请参照TCoordinateTransformToolDir
TCoordinateTransformToolDir
typedef struct CoordinateTransformToolDir
{
    double transX; // 相对PCS原点的X轴平移量
    double transY; // 相对PCS原点的Y轴平移量
    double transZ; // 相对PCS原点的Z轴平移量
    double rotAngle1; // 刀具侧第一个旋转轴的旋转角
    double rotAngle2; // 刀具侧第二个旋转轴的旋转角
    double alpha; // 绕Z轴旋转的角度
    double reserve[14];
}TCoordinateTransformToolDir;
transX:X轴偏移量,相对PCS的坐标。单位:mm。
transY:Y轴偏移量,相对PCS的坐标。单位:mm。
transZ:Z轴偏移量,相对PCS的坐标。单位:mm。
rotAngle1:第一个刀具侧旋转轴的旋转角度。单位:度。
rotAngle2:第二个刀具侧旋转轴的旋转角度。单位:度。
alpha:根据rotAngle1和rotAngle2确定的坐标系,再绕其Z轴旋转alpha度。单位:度。
reserve:保留参数,必须为0。
offset:偏移值描述坐标系变换,通过描述各个轴的零点偏移量来描述坐标系偏移。该模式只允许在五轴模型下设置,且只能设置在COORD_SYSTEM_PCS(0)下。详情说明请参照TCoordinateTransformOffset
TCoordinateTransformOffset
typedef struct CoordinateTransformOffset
{
    double prm[8];
    double reserve[12];
}TCoordinateTransformOffset;
prm:分别描述各个轴的零点偏移量,单位:直线轴为mm,旋转轴为度。。
reserve:保留参数,必须为0。
points:三点模式描述坐标系变换,根据平面内的三个点指定初始特征坐标系,再在初始特征坐标系上进行平移和旋转得到最终的特征坐标系。该模式只允许在五轴模型下设置,且只能设置在COORD_SYSTEM_PCS_USER_DEFINE(30)下。详情说明请参照TCoordinateTransformPoints
TCoordinateTransformPoints
typedef struct CoordinateTransformPoints
{
    double point1[3];
    double point2[3];
    double point3[3];
    double offset[3];
    double gama;
    double reserve[7];
}TCoordinateTransformPoints;
point1:第1点,初始特征坐标系的零点,坐标值为相对原始PCS的位置。单位:mm。
point2:第2点,初始特征坐标系X轴正方向上的点,坐标值为相对原始PCS的位置。单位:mm。
point3:第3点,坐标值为相对原始PCS的位置。单位:mm。
offset:最终特征坐标系的原点相对第1点的偏移量,偏移值为相对初始特征坐标系的位置。单位:mm。
gama:绕特征坐标系Z轴旋转的角度。单位:度。范围:(-360,360)。
reserve:保留参数,必须为0。
当三点中存在相同点,或者三点中的1点与其他两点相连的直线距离小于0.1mm,或者三点共线时,不允许设置坐标系。
twoVectors:,根据两个矢量指定坐标系,通过Z矢量方向和X矢量方向的矢量积得到Y轴方向,再根据XY的右手法则得到Z方向。:该模式只允许在五轴模型下设置,且只能设置在COORD_SYSTEM_PCS_USER_DEFINE(30)下。详情说明请参照TCoordinateTransformTwoVectors
TCoordinateTransformTwoVectors
typedef struct CoordinateTransformTwoVectors
{
    double offset[3]; // 特征坐标系的原点相对原始PCS的位置
    double vector1[3]; // 特征坐标系X轴正向的矢量方向,单位为量纲1
    double vector2[3]; // 特征坐标系Z轴正向的矢量方向,单位为量纲1
    double reserve[11];
}TCoordinateTransformTwoVectors;
offset:特征坐标系的原点相对原始PCS的位置。单位:mm。
vector1:特征坐标系X轴正向的矢量方向,单位为量纲1。
vector2:特征坐标系Z轴正向的矢量方向,单位为量纲1。
reserve:保留参数,必须为0。
当vector1或vector2不满足单位矢量的条件,或者vector1和vector2为同一方向,即夹角小于1度或者大于179度时,不允许设置坐标系。
projectAngle:投影角模式坐标系变换。该模式只允许在五轴模型下设置,且只能设置在COORD_SYSTEM_PCS_USER_DEFINE(30)下。详情说明请参照TCoordinateTransformProjectAngle
TCoordinateTransformProjectAngle
typedef struct CoordinateTransformProjectAngle
{
    double offset[3];
    double alpha;
    double beta;
    double gama;
    double reserve[14];
}TCoordinateTransformProjectAngle;
offset:特征坐标系的原点相对原始PCS的位置。单位:mm。
alpha:X轴绕原始坐标系的Y轴旋转的角度。单位:度。范围:(-360,360)。
beta:Y轴绕原始坐标系的X轴旋转的角度。单位:度。范围:(-360,360)。
gama:绕特征坐标系Z轴旋转的角度。单位:度。范围:(-360,360)。
reserve:保留参数,必须为0。
当围绕Y轴旋转角度–alpha后的X轴与围绕X轴旋转角度beta后的Y轴所构成的角度小于1度或者大于179度,不允许设置坐标系。
reserve:保留参数,必须为0。

指令返回值:

请参照通用返回值说明