TCoordinateTransformParameterEx¶
坐标系变换结构体
结构体说明:
typedef struct
{
TKinematicTransform kinTrans;
short enablePcsTrans;
short enableTcsTrans;
short enableUserPcsTrans;
short reserve1[5];
TCoordinateTransform pcsTrans;
TCoordinateTransform tcsTrans;
TCoordinateTransform userPcsTrans;
double acsKinOffset[8];
short inputCoordSystem;
short inputOriMode;
short configIndex;
short outputOriMode;
double preAcsPos[8];
short reserve2[4];
double reserve3[8];
}TCoordinateTransformParameterEx;
TKinematicTransform
typedef struct KinematicTransform
{
short type;
short reserve[3];
TKinematicParameter kinPrm;
}TKinematicTransform;
KIN_TYPE_ORTHOGONAL(0):标准正交三轴结构。
KIN_TYPE_NON_ORTHOGONAL(1):非正交结构。(暂时不支持)
KIN_TYPE_PARALLEL(2):平行轴结构。
KIN_TYPE_ROBOT(10):机器人结构。
KIN_TYPE_FIVE_AXIS(20):五轴结构。
KIN_TYPE_MULTI_AXIS(30):多轴结构。
kinPrm:结构参数,对应不同的结构类型,参数意义不同。详情说明请参照TKinematicParameter
TKinematicParameter
typedef union KinematicParameter
{
TRobotKinematicParameter robot;
TFiveAxisKinematicParameter fiveAxis
TMultiAxisKinematicParameter multiAxis
TParallelParameter parallel;
double data[48];
} TKinematicParameter;
TRobotKinematicParameter
typedef struct RobotKinematicParameter
{
short type;
short subtype;
short dir[8];
short reserve1[6];
double prm[20];
double offset[8];
long reserve2[10];
double reserve3[11];
}TRobotKinematicParameter;
ROBOT_TYPE_SCARA(0):SCARA机械臂。
ROBOT_TYPE_SIX_REVOLUTE(1):6自由度串联机械臂。
ROBOT_TYPE_FOUR_REVOLUTE(2):4自由度串联机械臂。
ROBOT_TYPE_PALLETIZE(3):码垛机器人。
ROBOT_TYPE_POSITIONER(4):变位机。
ROBOT_TYPE_FIVE_REVOLUTE(5):5自由度串联机械臂。
ROBOT_TYPE_XYZRR(6):XYZRR机器人。
ROBOT_TYPE_7R(7):七自由度机器人。
ROBOT_TYPE_UR(10):UR机器人。
ROBOT_TYPE_CYLINDER(20):圆柱机器人。
ROBOT_TYPE_DELTA(100):Delta机器人。
6自由度串联机械臂:
SCARA机械臂子类型:
码垛机器人子类型:
变位机子类型:
ROBOT_TYPE_XYZRR子类型:
UR机器人:
5自由度串联机械臂子类型:
4自由度串联机械臂子类型:
DELTA子类:
没有提供子类型定义的机器人类型,子类型必须设置为0。
dir:关节方向,0:与定义方向相同,1:与定义方向相反。
reserve:保留参数,必须为0。
prm:结构参数,杆长。
当结构为变位机模型时,参数意义如下:
prm[0]~prm[2]:第一个旋转轴的旋转中心相对MCS零点的坐标。
prm[3]~prm[5]:第一个旋转轴的旋转轴线方向相对MCS坐标系的坐标。
prm[6]~prm[8]:第二个旋转轴的旋转中心相对第一个旋转轴的旋转中心的坐标。
prm[9]~prm[11]:第二个旋转轴的旋转轴线方向相对第一个旋转轴坐标系的坐标。
offset:关节偏移,实际初始姿态与定义的初始姿态的偏移(实际初始姿态在定义坐标系下的位置)。单位:旋转轴:弧度,直线轴:规划单位(微米)。
reserve2:保留参数,必须为0。
reserve3:保留参数,必须为0。
TFiveAxisKinematicParameter
typedef struct FiveAxisKinematicParameter
{
short type; //机床类型
short reserve1[3]; //保留参数
double primaryAxisPoint[3]; //第一旋转轴中心在MCS的坐标
double slaveAxisPoint[3]; //第二旋转轴中心在MCS的坐标
double toolLocationPoint[3]; //刀具坐标系中心在MCS的坐标
short dirMode; //方向描述模式
short reserve2[2]; //保留参数
short dir[5]; //各轴方向
double axisVector[5][3]; //各轴轴线方向
long reserve3[10];
double reserve4[16];
}TFiveAxisKinematicParameter;
双转台
RW_C_ON_B(0):B为第一旋转轴,C为第二旋转轴。
RW_B_ON_A(1):A为第一旋转轴,B为第二旋转轴。
RW_A_ON_B(2):B为第一旋转轴,A为第二旋转轴。
RW_C_ON_A(3):A为第一旋转轴,C为第二旋转轴。
DT_B_ON_A(4):A为第一旋转轴,B为第二旋转轴。
DT_A_ON_B(5):B为第一旋转轴,A为第二旋转轴。
DT_A_ON_C(6):C为第一旋转轴,A为第二旋转轴。
DT_B_ON_C(7):C为第一旋转轴,B为第二旋转轴。
T_A_W_B(8):A为第一旋转轴,B为第二旋转轴
T_B_W_A(9):B为第一旋转轴,A为第二旋转轴
T_A_W_C(10):A为第一旋转轴,C为第二旋转轴
T_B_W_C(11):B为第一旋转轴,C为第二旋转轴
primaryAxisPoint:第一旋转轴中心在MCS的坐标,旋转轴中心可以为旋转轴轴线上的任何一点,单位:mm。
slaveAxisPoint:第二旋转轴中心在MCS的坐标,旋转轴中心可以为旋转轴轴线上的任何一点,单位:mm。
toolLocationPoint:刀具坐标系中心在MCS的坐标,单位:mm。
dirMode:dirMode:轴方向描述模式。范围:[0,1]。
0:通过描述轴方向是否满足右手坐标系来确定轴方向,只适用于正交模型的描述,轴方向通过dir[5]数组的五个参数来描述5个轴的方向。
1:通过描述轴矢量方向来确定轴方向,适用于正交和非正交模型,该模式需要设置dir[5]数组的前3个轴是位于工件侧还是工具侧,并通过参数axisVector[5][3]描述5个轴的轴矢量方向。
dir:当dirMode为0时,用于描述5个轴的方向。 当dirMode为1时,数组的前3个元素用于描述前3个轴是位于工件侧还是工具侧,后两个元素没有意义,必须设置为0。 reserve2:保留参数,必须为0。
axisVector:各轴轴线方向。设置5个轴的轴向矢量方向。注意:需要转换成单位矢量来描述。 矢量方向参数都是相对MCS坐标系的方向来描述的。
reserve3:保留参数,必须为0。
reserve4:保留参数,必须为0。
TMultiAxisKinematicParameter
typedef struct MultiAxisKinematicParameter
{
short axisCount; //轴数
short reserve1[3]; //保留参数
long reserve2[10];
double reserve3[42];
}TMultiAxisKinematicParameter;
reserve1:保留参数,必须为0。
reserve2:保留参数,必须为0。
reserve3:保留参数,必须为0。
TParallelParameter
typedef struct ParallelParameter
{
short subType;
short axisCount;
short mode;
short majorAxis[3];
short reserve1[6];
short parallelAxis[8];
long reserve2[10];
double reserve3[38];
}TParallelParameter;
axisCount:平行轴结构的总轴数。
mode:当平行轴为平行叠加轴模式时,该参数生效,参数范围:[0,2]。
0:运动过程中相互平行的轴根据叠加后的末端运动量按比例线性变化。
1:运动过程中保证重载轴单调变化,剩余的运动量由另外一个平行轴完成。
2:运动过程中重载轴和叠加后末端位置的比例从起点占的比例线性变化到终点占的比例,剩余的运动量由另外一个平行轴完成。
reserve1:保留参数,必须为0。
parallelAxis:设置各个轴对应的末端轴号。1为X轴,2为Y轴,3为Z轴。
reserve2:保留参数,必须为0。
reserve3:保留参数,必须为0。
enablePcsTrans:是否使能工件坐标系变换,0;不使能,1:使能。
enableTcsTrans:是否使能刀具坐标系变换,0;不使能,1:使能。
enableUserPcsTrans:是否使能用户工件坐标系变换,0;不使能,1:使能。
reserve:保留参数,必须为0。
pcsTrans:笛卡尔坐标系变换参数。详情说明请参照TCoordinateTransform
TCoordinateTransform
typedef struct CoordinateTransform
{
short mode;
short reserve[3];
TCoordinateTransformUnion data;
}TCoordinateTransform;
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):投影角模式。
当mode为COORD_TRANS_TYPE_EULER(1),reserve[0]描述欧拉角或者固定角的模式,也就是描述旋转次序: 当mode为COORD_TRANS_TYPE_EULER(11),reserve[0]描述欧拉角或者固定角的模式,也就是描述旋转次序: data:坐标系变换参数。详情说明请参照TCoordinateTransformUnion
TCoordinateTransformUnion
typedef union CoordinateTransformUnion
{
TCoordinateTransformAcsPos acsPos;
TCartesianParameter euler;
TCoordinateTransformToolDir toolDir;
TCoordinateTransformOffset offset;
TCoordinateTransformPoints points;
TCoordinateTransformTwoVectors twoVectors;
TCoordinateTransformProjectAngle projectAngle;
double value[20];
} TCoordinateTransformUnion;
TCoordinateTransformAcsPos
typedef struct CoordinateTransformAcsPos
{
double prm[8];
double reserve[12];
}TCoordinateTransformAcsPos;
reserve:保留参数,必须为0。
TCartesianParameter
typedef struct CartesianParameter
{
double transX;
double transY;
double transZ;
double rotAngle1;
double rotAngle2;
double rotAngle3;
}TCartesianParameter;
transY:Y轴偏移量。单位:mm。
transZ:Z轴偏移量。单位:mm。
rotAngle1:旋转角度1。单位:度。
rotAngle2:旋转角度2。单位:度。
rotAngle3:旋转角度3。单位:度。
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;
transY:Y轴偏移量,相对PCS的坐标。单位:mm。
transZ:Z轴偏移量,相对PCS的坐标。单位:mm。
rotAngle1:第一个刀具侧旋转轴的旋转角度。单位:度。
rotAngle2:第二个刀具侧旋转轴的旋转角度。单位:度。
alpha:根据rotAngle1和rotAngle2确定的坐标系,再绕其Z轴旋转alpha度。单位:度。
reserve:保留参数,必须为0。
TCoordinateTransformOffset
typedef struct CoordinateTransformOffset
{
double prm[8];
double reserve[12];
}TCoordinateTransformOffset;
reserve:保留参数,必须为0。
TCoordinateTransformPoints
typedef struct CoordinateTransformPoints
{
double point1[3];
double point2[3];
double point3[3];
double offset[3];
double gama;
double reserve[7];
}TCoordinateTransformPoints;
point2:第2点,初始特征坐标系X轴正方向上的点,坐标值为相对原始PCS的位置。单位:mm。
point3:第3点,坐标值为相对原始PCS的位置。单位:mm。
offset:最终特征坐标系的原点相对第1点的偏移量,偏移值为相对初始特征坐标系的位置。单位:mm。
gama:绕特征坐标系Z轴旋转的角度。单位:度。范围:(-360,360)。
reserve:保留参数,必须为0。
当三点中存在相同点,或者三点中的1点与其他两点相连的直线距离小于0.1mm,或者三点共线时,不允许设置坐标系。
TCoordinateTransformTwoVectors
typedef struct CoordinateTransformTwoVectors
{
double offset[3]; // 特征坐标系的原点相对原始PCS的位置
double vector1[3]; // 特征坐标系X轴正向的矢量方向,单位为量纲1
double vector2[3]; // 特征坐标系Z轴正向的矢量方向,单位为量纲1
double reserve[11];
}TCoordinateTransformTwoVectors;
vector1:特征坐标系X轴正向的矢量方向,单位为量纲1。
vector2:特征坐标系Z轴正向的矢量方向,单位为量纲1。
reserve:保留参数,必须为0。
当vector1或vector2不满足单位矢量的条件,或者vector1和vector2为同一方向,即夹角小于1度或者大于179度时,不允许设置坐标系。
TCoordinateTransformProjectAngle
typedef struct CoordinateTransformProjectAngle
{
double offset[3];
double alpha;
double beta;
double gama;
double reserve[14];
}TCoordinateTransformProjectAngle;
alpha:X轴绕原始坐标系的Y轴旋转的角度。单位:度。范围:(-360,360)。
beta:Y轴绕原始坐标系的X轴旋转的角度。单位:度。范围:(-360,360)。
gama:绕特征坐标系Z轴旋转的角度。单位:度。范围:(-360,360)。
reserve:保留参数,必须为0。
当围绕Y轴旋转角度–alpha后的X轴与围绕X轴旋转角度beta后的Y轴所构成的角度小于1度或者大于179度,不允许设置坐标系。
tcsTrans:笛卡尔坐标系变换参数。详情说明请参照TCoordinateTransform
TCoordinateTransform
typedef struct CoordinateTransform
{
short mode;
short reserve[3];
TCoordinateTransformUnion data;
}TCoordinateTransform;
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):投影角模式。
当mode为COORD_TRANS_TYPE_EULER(1),reserve[0]描述欧拉角或者固定角的模式,也就是描述旋转次序: 当mode为COORD_TRANS_TYPE_EULER(11),reserve[0]描述欧拉角或者固定角的模式,也就是描述旋转次序: data:坐标系变换参数。详情说明请参照TCoordinateTransformUnion
TCoordinateTransformUnion
typedef union CoordinateTransformUnion
{
TCoordinateTransformAcsPos acsPos;
TCartesianParameter euler;
TCoordinateTransformToolDir toolDir;
TCoordinateTransformOffset offset;
TCoordinateTransformPoints points;
TCoordinateTransformTwoVectors twoVectors;
TCoordinateTransformProjectAngle projectAngle;
double value[20];
} TCoordinateTransformUnion;
TCoordinateTransformAcsPos
typedef struct CoordinateTransformAcsPos
{
double prm[8];
double reserve[12];
}TCoordinateTransformAcsPos;
reserve:保留参数,必须为0。
TCartesianParameter
typedef struct CartesianParameter
{
double transX;
double transY;
double transZ;
double rotAngle1;
double rotAngle2;
double rotAngle3;
}TCartesianParameter;
transY:Y轴偏移量。单位:mm。
transZ:Z轴偏移量。单位:mm。
rotAngle1:旋转角度1。单位:度。
rotAngle2:旋转角度2。单位:度。
rotAngle3:旋转角度3。单位:度。
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;
transY:Y轴偏移量,相对PCS的坐标。单位:mm。
transZ:Z轴偏移量,相对PCS的坐标。单位:mm。
rotAngle1:第一个刀具侧旋转轴的旋转角度。单位:度。
rotAngle2:第二个刀具侧旋转轴的旋转角度。单位:度。
alpha:根据rotAngle1和rotAngle2确定的坐标系,再绕其Z轴旋转alpha度。单位:度。
reserve:保留参数,必须为0。
TCoordinateTransformOffset
typedef struct CoordinateTransformOffset
{
double prm[8];
double reserve[12];
}TCoordinateTransformOffset;
reserve:保留参数,必须为0。
TCoordinateTransformPoints
typedef struct CoordinateTransformPoints
{
double point1[3];
double point2[3];
double point3[3];
double offset[3];
double gama;
double reserve[7];
}TCoordinateTransformPoints;
point2:第2点,初始特征坐标系X轴正方向上的点,坐标值为相对原始PCS的位置。单位:mm。
point3:第3点,坐标值为相对原始PCS的位置。单位:mm。
offset:最终特征坐标系的原点相对第1点的偏移量,偏移值为相对初始特征坐标系的位置。单位:mm。
gama:绕特征坐标系Z轴旋转的角度。单位:度。范围:(-360,360)。
reserve:保留参数,必须为0。
当三点中存在相同点,或者三点中的1点与其他两点相连的直线距离小于0.1mm,或者三点共线时,不允许设置坐标系。
TCoordinateTransformTwoVectors
typedef struct CoordinateTransformTwoVectors
{
double offset[3]; // 特征坐标系的原点相对原始PCS的位置
double vector1[3]; // 特征坐标系X轴正向的矢量方向,单位为量纲1
double vector2[3]; // 特征坐标系Z轴正向的矢量方向,单位为量纲1
double reserve[11];
}TCoordinateTransformTwoVectors;
vector1:特征坐标系X轴正向的矢量方向,单位为量纲1。
vector2:特征坐标系Z轴正向的矢量方向,单位为量纲1。
reserve:保留参数,必须为0。
当vector1或vector2不满足单位矢量的条件,或者vector1和vector2为同一方向,即夹角小于1度或者大于179度时,不允许设置坐标系。
TCoordinateTransformProjectAngle
typedef struct CoordinateTransformProjectAngle
{
double offset[3];
double alpha;
double beta;
double gama;
double reserve[14];
}TCoordinateTransformProjectAngle;
alpha:X轴绕原始坐标系的Y轴旋转的角度。单位:度。范围:(-360,360)。
beta:Y轴绕原始坐标系的X轴旋转的角度。单位:度。范围:(-360,360)。
gama:绕特征坐标系Z轴旋转的角度。单位:度。范围:(-360,360)。
reserve:保留参数,必须为0。
当围绕Y轴旋转角度–alpha后的X轴与围绕X轴旋转角度beta后的Y轴所构成的角度小于1度或者大于179度,不允许设置坐标系。
userPcsTrans:笛卡尔坐标系变换参数。详情说明请参照TCoordinateTransform
TCoordinateTransform
typedef struct CoordinateTransform
{
short mode;
short reserve[3];
TCoordinateTransformUnion data;
}TCoordinateTransform;
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):投影角模式。
当mode为COORD_TRANS_TYPE_EULER(1),reserve[0]描述欧拉角或者固定角的模式,也就是描述旋转次序: 当mode为COORD_TRANS_TYPE_EULER(11),reserve[0]描述欧拉角或者固定角的模式,也就是描述旋转次序: data:坐标系变换参数。详情说明请参照TCoordinateTransformUnion
TCoordinateTransformUnion
typedef union CoordinateTransformUnion
{
TCoordinateTransformAcsPos acsPos;
TCartesianParameter euler;
TCoordinateTransformToolDir toolDir;
TCoordinateTransformOffset offset;
TCoordinateTransformPoints points;
TCoordinateTransformTwoVectors twoVectors;
TCoordinateTransformProjectAngle projectAngle;
double value[20];
} TCoordinateTransformUnion;
TCoordinateTransformAcsPos
typedef struct CoordinateTransformAcsPos
{
double prm[8];
double reserve[12];
}TCoordinateTransformAcsPos;
reserve:保留参数,必须为0。
TCartesianParameter
typedef struct CartesianParameter
{
double transX;
double transY;
double transZ;
double rotAngle1;
double rotAngle2;
double rotAngle3;
}TCartesianParameter;
transY:Y轴偏移量。单位:mm。
transZ:Z轴偏移量。单位:mm。
rotAngle1:旋转角度1。单位:度。
rotAngle2:旋转角度2。单位:度。
rotAngle3:旋转角度3。单位:度。
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;
transY:Y轴偏移量,相对PCS的坐标。单位:mm。
transZ:Z轴偏移量,相对PCS的坐标。单位:mm。
rotAngle1:第一个刀具侧旋转轴的旋转角度。单位:度。
rotAngle2:第二个刀具侧旋转轴的旋转角度。单位:度。
alpha:根据rotAngle1和rotAngle2确定的坐标系,再绕其Z轴旋转alpha度。单位:度。
reserve:保留参数,必须为0。
TCoordinateTransformOffset
typedef struct CoordinateTransformOffset
{
double prm[8];
double reserve[12];
}TCoordinateTransformOffset;
reserve:保留参数,必须为0。
TCoordinateTransformPoints
typedef struct CoordinateTransformPoints
{
double point1[3];
double point2[3];
double point3[3];
double offset[3];
double gama;
double reserve[7];
}TCoordinateTransformPoints;
point2:第2点,初始特征坐标系X轴正方向上的点,坐标值为相对原始PCS的位置。单位:mm。
point3:第3点,坐标值为相对原始PCS的位置。单位:mm。
offset:最终特征坐标系的原点相对第1点的偏移量,偏移值为相对初始特征坐标系的位置。单位:mm。
gama:绕特征坐标系Z轴旋转的角度。单位:度。范围:(-360,360)。
reserve:保留参数,必须为0。
当三点中存在相同点,或者三点中的1点与其他两点相连的直线距离小于0.1mm,或者三点共线时,不允许设置坐标系。
TCoordinateTransformTwoVectors
typedef struct CoordinateTransformTwoVectors
{
double offset[3]; // 特征坐标系的原点相对原始PCS的位置
double vector1[3]; // 特征坐标系X轴正向的矢量方向,单位为量纲1
double vector2[3]; // 特征坐标系Z轴正向的矢量方向,单位为量纲1
double reserve[11];
}TCoordinateTransformTwoVectors;
vector1:特征坐标系X轴正向的矢量方向,单位为量纲1。
vector2:特征坐标系Z轴正向的矢量方向,单位为量纲1。
reserve:保留参数,必须为0。
当vector1或vector2不满足单位矢量的条件,或者vector1和vector2为同一方向,即夹角小于1度或者大于179度时,不允许设置坐标系。
TCoordinateTransformProjectAngle
typedef struct CoordinateTransformProjectAngle
{
double offset[3];
double alpha;
double beta;
double gama;
double reserve[14];
}TCoordinateTransformProjectAngle;
alpha:X轴绕原始坐标系的Y轴旋转的角度。单位:度。范围:(-360,360)。
beta:Y轴绕原始坐标系的X轴旋转的角度。单位:度。范围:(-360,360)。
gama:绕特征坐标系Z轴旋转的角度。单位:度。范围:(-360,360)。
reserve:保留参数,必须为0。
当围绕Y轴旋转角度–alpha后的X轴与围绕X轴旋转角度beta后的Y轴所构成的角度小于1度或者大于179度,不允许设置坐标系。
acsKinOffset:group的ACS(轴坐标系)相对理论ACS的偏移。
inputCoordSystem:COORD_SYSTEM_ACS(2):轴坐标系。
COORD_SYSTEM_MCS(1):机床坐标系,为笛卡尔坐标系。
COORD_SYSTEM_PCS(0):工件坐标系,为笛卡尔坐标系。
inputOriMode:输入的姿态模式。当坐标系为COORD_SYSTEM_PCS(0)或COORD_SYSTEM_MCS(1)时,指定姿态模式下姿态信息。
ORI_MODE_NONE(0):无姿态描述。
ORI_MODE_EULER(1):欧拉角姿态描述。
ORI_MODE_QUAD(2):四元数姿态描述。
ORI_MODE_VECTOR(3):刀轴矢量姿态描述。
ORI_MODE_ROTATE_AXIS_POS(4):旋转轴位置姿态描述。
outputOriMode:输出的姿态模式。坐标系为COORD_SYSTEM_PCS或COORD_SYSTEM_MCS时,指定输出姿态模式下姿态信息。
ORI_MODE_NONE(0):无姿态描述。
ORI_MODE_EULER(1):欧拉角姿态描述。
ORI_MODE_QUAD(2):四元数姿态描述。
ORI_MODE_VECTOR(3):刀轴矢量姿态描述。
ORI_MODE_ROTATE_AXIS_POS(4):旋转轴位置姿态描述。
reserve2:保留参数,必须为0。
reserve3:保留参数,必须为0。
相关指令: