跳转至

TCoordinateTransform

坐标系变换参数结构体

结构体说明:

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。

相关指令:

GTN_GetGroupCoordinateTransform