//注意PK的单位是m,UG的单位是mm,以下宏用于单位换算
#define mm 0.001
#define MUL(x) ((x)*(mm)
//------------PK创建圆环---------------------
/*
*@oriPoint:圆环的中心点
*@vec1:第一个坐标轴向
*@vec2:第二个坐标轴向
*@major_radius:圆环的大半径
*@minor_radius:圆环的小半径(必须大于0)
*/
PK_BODY_t createTorus(double oriPoint[3], double vec1[3], double vec2[3], double major_radius, double minor_radius)
{
PK_VECTOR1_t dir1 = { vec1[0],vec1[1],vec1[2] };
PK_VECTOR1_t dir2 = { vec2[0],vec2[1],vec2[2] };
PK_VECTOR_t Coneori = { MUL(oriPoint[0]) ,MUL(oriPoint[1]) ,MUL(oriPoint[2]) };
//坐标轴原点
PK_AXIS2_sf_t abasis_set;
abasis_set.axis = dir1;//第一个坐标轴(方向)
abasis_set.ref_direction = dir2;//第二个坐标轴(方向)
//注意:这两个坐标轴必须是正交的(相互垂直)
abasis_set.location = Coneori;//坐标轴原点
PK_BODY_t pkBody = PK_ENTITY_null;
PK_BODY_create_solid_torus(MUL(major_radius), MUL(minor_radius), &abasis_set, &body);
return pkBody;
}
【UG\NX二次开发-PK函数】PK_BODY_create_soild_torus(PK创建圆环)
于 2024-05-10 14:37:11 首次发布