iCAx开思工具箱

标题: 如何获得所画圆柱体的各个面 [打印本页]

作者: 小米粒儿    时间: 2006-10-13 15:40
标题: 如何获得所画圆柱体的各个面
UF_CALL(UF_MODL_ask_feat_faces(body_tag,&cylinder_face_list));   
     UF_CALL(UF_MODL_ask_list_count(cylinder_face_list, &list_count));       
               for(i=0;i<list_count;i++)
         {
         UF_CALL(UF_MODL_ask_list_item(cylinder_face_list,i,&face_tag));
                 UF_CALL(UF_MODL_ask_face_type(face_tag,&face_type));
                   if (face_type==UF_MODL_CYLINDRICAL_FACE)       
                           cylinder_face_tag=face_tag;
                   else
                   {
                           UF_CALL(UF_MODL_ask_face_data(face_type,&cylinder_face_type,cylinder_face_point,cylinder_face_dir,cylinder_face_box,&cylinder_face_radius,&cylinder_face_rad_data,&cylinder_face_norm_dir));
                       if(cylinder_face_norm_dir==1) cylinder_uface_tag=face_tag;
                           else cylinder_dface_tag=face_tag;
                   }
         }
这样做哪里有问题啊,
作者: 小米粒儿    时间: 2006-10-13 16:15
在线等啊,急,有知道的,就麻烦指点一下啊,感激不尽
作者: linduyu_y    时间: 2006-10-14 20:25
UF_MODL_ask_feat_faces 改为 UF_MODL_ask_body_faces。
作者: stoneld    时间: 2006-10-15 09:27
楼上的不确切,这要看body_tag是否为一个特征 。
另外,cylinder_face_norm_dir==1改为cylinder_face_norm_dir[2]==1,
当然它的定义也要改为double cylinder_face_norm_dir[3];
作者: 小米粒儿    时间: 2006-10-16 16:09
还是不对啊,圆柱面和下表面都能获得,所以应该是if(cylinder_face_norm_dir==1)这里出错了,到底应该怎么改啊,有哪位兄弟姐妹知道的,还望早点告诉我啊,感激不尽
作者: stoneld    时间: 2006-10-20 10:07
上表面的法矢等于-1
作者: 小米粒儿    时间: 2006-10-20 14:17
谢谢大家,我早都做出来了,上面UF_MODL_ask_face_data函数的第一个参数给写错了,还有就是  if(cylinder_face_norm_dir==1) cylinder_uface_tag=face_tag;
这个判断语句好象不能这么写,我看帮助里面都是无限趋近于1,即if(fabs(cylinder_face_norm_dir-1)<10e-7),这样子就可以了
作者: gao264    时间: 2006-12-22 11:13
原帖由  于 2006-10-20 14:17 发表
谢谢大家,我早都做出来了,上面UF_MODL_ask_face_data函数的第一个参数给写错了,还有就是  if(cylinder_face_norm_dir==1) cylinder_uface_tag=face_tag;
这个判断语句好象不能这么写,我看帮助里面都是无限趋近于 ...

对的,一般写判断语句的时候,最好用绝对值的方式限定一个误差,直接写等于容易出问题的
作者: imyourkobe    时间: 2007-7-17 07:16
大哥,我是一个新手,昨天才装上NX5,我想通过代码求两个平面的距离,比如求两个四边形平面的距离,输出,用这个函数UF_MODL_ask_minimum_dist()或别的,求求你能给我做个例子吗?
非常感谢!




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3