点击查看详细介绍

UFun/UGopen 判断两个面是否相切函数原理说明

haolin2008 5年前 4729 63

UG NX 二次开发 技术交流 qq群:641226372      UG二次开发(C、C#、WPF)


判断两个面是否相切,相切

原理:
两个面相切说明是相邻面
相邻面会有一个公共边,
取公共边的中点,判断该点在面1的法向和该点在面2的法向,
如果这两个法向的夹角小于公差,则为相切
如果是一个参考点判断,处理拉伸面、规则的曲面比较合适
不规则的曲面 需要多设置参考点判断

//判断两个面是否相切,相切
tag_t facea; //面1
tag_t face; //面2
int aaa=判断两个面是否相切(facea,face); //返回1表示相切

extern "C" int 判断两个面是否相切(tag_t facea,tag_t face)
{
double tol=0.01; //相切公差
int guess1_given; //【输入】我们输入0就可以了
double guess1[ 3 ]; //【输入】假设最近点1(如果上一个参数是0无需设置)
int guess2_given; //【输入】我们输入0就可以了
double guess2[ 3 ]; //【输入】假设最近点2(如果上一个参数是0无需设置)
double min_dist; //【输出】最小距离
double pt_on_ent1[ 3 ]; //【输出】最小距离测量点1位置(这个点一定是在对象1上的)
double pt_on_ent2[ 3 ]; //【输出】最小距离测量点2位置(这个点一定是在对象2上的)

●●●请先 登陆注册 后查看●●●

UF_MODL_ask_minimum_dist (facea,face,0,guess1,0,guess2,&min_dist,pt_on_ent1,pt_on_ent2);
double fx_5[3],fx_6[3];
UF_MODL_ask_face_parm(facea,pt_on_ent1,param,pt_on_ent1);
UF_MODL_ask_face_props (facea,param,pt_on_ent1,u1,v1,u2,v2,fx_5,radii);
UF_MODL_ask_face_parm(face,pt_on_ent2,param,pt_on_ent2);
UF_MODL_ask_face_props (face,param,pt_on_ent1,u1,v1,u2,v2,fx_6,radii);
if(
fabs(fabs(fx_5[0])-fabs(fx_6[0]))<tol &&
fabs(fabs(fx_5[1])-fabs(fx_6[1]))<tol &&
fabs(fabs(fx_5[2])-fabs(fx_6[2]))<tol
) return(1);
return(0);
}

1

最新回复 (63)
  • wxwxwxwx 5年前
    1

    谢谢分享。。。。。。。。。。

  • yccong 5年前
    2

    学习中,谢谢楼主分享!!!

  • c1_wangyf 5年前
    3

    好东西一定要顶,加油!

  • 晨20175566 5年前
    4

    谢谢分享。。。。。。。

  • dyx521 5年前
    5

    学习中,谢谢楼主分享!!!

  • 425131361 4年前
    6

    学习 紫薯布丁

  • HYZ谢谢 4年前
    7

    学习中,谢谢楼主分享!!!

  • zhouyuxing 4年前
    8

    666666666666

  • jiangwei 4年前
    9

    谢谢分享............................

  • jiangwei 4年前
    10

    谢谢分享............................

  • wgp1109 4年前
    11

    谢谢分享谢谢分享谢谢分享

  • HYZ谢谢 4年前
    12

    谢楼主分享 相切面 这个方法很好

  • zhizhuomsj 4年前
    13

    顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶

  • persist21 4年前
    14

    谢谢分享.........

  • king_chinese VIP会员 4年前
    15

    UFun/UGopen 判断两个面是否相切函数原理说明

请登录后发表新帖