NX二次开发 UFUN判断两个面是否相切 UF_MODL_ask_face_props
原理:
两个面相切说明是相邻面
相邻面会有一个公共边,
取公共边的中点,判断该点在面1的法向和该点在面2的法向,
如果这两个法向的夹角小于公差,则为相切
如果是一个参考点判断,处理拉伸面、规则的曲面比较合适
不规则的曲面 需要多设置参考点判断
//判断两个面是否相切,相切
tag_t face_tag1 = NULL_TAG;
tag_t face_tag2 = NULL_TAG;
int aaa = IsTwoFaceTangent(face_tag1, face_tag2);
//返回true表示相切
bool IsTwoFaceTangent(tag_t face1, tag_t face2)
{
double tol = 0.0254;//相切公差
double guess1[3], guess2[3], min_dist=0, pt_on_ent1[3], pt_on_ent2[3];
double param[2], u1[3], v1[3], u2[3], v2[3], radii[2], fx_5[3], fx_6[3];
UF_MODL_ask_minimum_dist (face2, face1, 0, guess1, 0, guess2, &min_dist, pt_on_ent1, pt_on_ent2);
UF_MODL_ask_minimum_dist (face2, face1, 0, guess1, 0, guess2, &min_dist, pt_on_ent1, pt_on_ent2);
UF_MODL_ask_face_parm(face2, pt_on_ent1, param, pt_on_ent1);
UF_MODL_ask_face_props (face2, param, pt_on_ent1, u1, v1, u2, v2, fx_5, r