一、NXOpen
void NXOpenGetFaceData(tag_t face){
Face* objFace = dynamic_cast<Face*>(NXObjectManager::Get(face));
int faceData = objFace->SolidFaceType();
}
/*----查询面类型------------------------------------------------------------------
返回值: NXOpen::Face::FaceType
enum FaceType {
FaceTypeRubber //0 Rubber face, no surface attached , | 光滑面,没有任何表面附着
FaceTypePlanar //1 Planar face , | 有界平面
FaceTypeCylindrical //2 Cylindrical face, | 圆柱面
FaceTypeConical //3 Conical face , | 圆锥面
FaceTypeSpherical //4 Spherical face, | 球面
FaceTypeSurfaceOfRevolution //5 Face from surface of revolution, | 由旋转生成的面
FaceTypeParametric //6 Parametric face , | 参数化面
FaceTypeBlending //7 Blending face , | 混合面
FaceTypeOffset //8 Offset face , | 偏置面
FaceTypeSwept //9 Swept face , | 由扫掠生成的面
FaceTypeUndefined //10 Undefined face type | 未定义的面类型
};
-------------------------------------------------------------------------------*/
二、UF函数
int NXOpenGetFaceData(tag_t planeTag){
int type =0;
double point[3] = {0};
double dir[3] = {0};
double box[6] = {0};
double radius = 0;
double rad_data = 0.0;
int norm_dir = 0;
UF_MODL_ask_face_data(planeTag, &type, point, dir, box, &radius, &rad_data, &norm_dir);
return type;
}
/*----查询面类型------------------------------------------------------------------
16 =圆柱
17 =锥
18 =球
19 =旋转(环形)
20 =挤压
22 =有界平面
23 =圆角(混合)
43 = b表面
65 =偏移表面
66 =外表面
-------------------------------------------------------------------------------*/
如果觉得文章不错,欢迎打赏~,多少都行呢~