找回密码 注册 QQ登录
一站式解决方案

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 16458|回复: 3
打印 上一主题 下一主题

[求助] 求曲面(U=0.5,V=0.5)位置和曲面法向问题

[复制链接]
跳转到指定楼层
1
发表于 2009-6-27 09:14:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用UF_MODL_ask_face_props求法向是正确的,但求曲面(U=0.5,V=0.5)位置结果不对
我这个电极的尺寸45.000x18.000x20.029
求出来的点数据明显超大

代码如下:
  1. #include <uf.h>
  2. #include <uf_exit.h>
  3. #include <uf_ui.h>
  4. #include <uf_modl.h>
  5. #include <uf_disp.h>

  6. #if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )
  7. #        include <strstream>
  8. #   include <iostream>
  9.         using std::ostrstream;
  10.         using std::endl;       
  11.         using std::ends;
  12.         using std::cerr;
  13. #else
  14. #        include <strstream.h>
  15. #   include <iostream.h>
  16. #endif
  17. #include "ask_props.h"

  18. extern "C" DllExport void ufsta( char *param, int *returnCode, int rlen )
  19. {
  20.     int errorCode = UF_initialize();

  21.     if ( 0 == errorCode )
  22.     {
  23.                 int irc = 0;
  24.                 char *message = "Select Object";
  25.                 UF_UI_selection_options_t opts;
  26.                 UF_UI_mask_t mask;
  27.                 int response;
  28.                 tag_t object, view;
  29.                 double cursor[3];
  30.                
  31.                 UF_initialize();
  32.                 opts.other_options = 0;
  33.                 opts.reserved = NULL;
  34.                 opts.num_mask_triples = 1;
  35.                 opts.mask_triples = &mask;
  36.                
  37.                 opts.mask_triples->object_type = UF_solid_type;
  38.                 opts.mask_triples->object_subtype = UF_solid_face_subtype;
  39.                 opts.mask_triples->solid_type = UF_UI_SEL_FEATURE_ANY_FACE;

  40.                 while (response!=2)
  41.                 {               
  42.                         opts.scope = UF_UI_SEL_SCOPE_WORK_PART;
  43.                         irc = UF_UI_select_single(message,&opts,&response,
  44.                                 &object,cursor,&view);
  45.                        
  46.                         if (response==5)
  47.                         {
  48.                                 double face_param[2],face_point[3],face_u_deriv1[3];
  49.                                 double face_v_deriv1[3],face_u_deriv2[3],face_v_deriv2[3];
  50.                                 double face_normal[3],face_radii[2];
  51.                                 char msg[256];
  52.                                
  53.                                 face_param[0] = 0.5;
  54.                                 face_param[1] = 0.5;                       
  55.                                
  56.                                 UF_MODL_ask_face_props(object,
  57.                                         face_param,
  58.                                         face_point,
  59.                                         face_u_deriv1,face_v_deriv1,
  60.                                         face_u_deriv2,face_v_deriv2,
  61.                                         face_normal,face_radii);
  62.                                 sprintf(msg,"曲面(U=0.5,V=0.5)位置:\n  X = %.3f\n  Y = %.3f\n  Z = %.3f \n\n曲面法向:\n  I = %.3f\n  J = %.3f\n  K = %.3f \n\n",
  63.                                         face_point[0],face_point[1],face_point[2],
  64.                                         face_normal[0],face_normal[1],face_normal[2]);
  65.                                 uc1601(msg,1);
  66.                                 UF_DISP_set_highlight(object,0);
  67.                         }
  68.                 }

  69.         errorCode = UF_terminate();
  70.     }
  71. }

  72. extern "C" int ufusr_ask_unload( void )
  73. {
  74.     return( UF_UNLOAD_IMMEDIATELY  );
  75. }
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2012-4-15 19:51:41 | 只看该作者
到最后你会发现连面的法向都不对了
3
发表于 2012-4-16 09:10:26 | 只看该作者
jaken99 ,"到最后你会发现连面的法向都不对了"
为什么呀?
4
发表于 2012-4-19 12:35:32 | 只看该作者
曲面(U=0.5,V=0.5), 并不一定是曲面中心,因为这个面被边界修剪过了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2024-12-25 21:08 , Processed in 0.029033 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

快速回复 返回顶部 返回列表