PLM之家PLMHome-国产软件践行者

[二次开发源码] NX二次开发代码分享: 获取实体的最小包络尺寸bounding box

  [复制链接]

2014-3-23 16:30:07 7668 2

admin 发表于 2014-2-12 13:12:17 |阅读模式

admin 楼主

2014-2-12 13:12:17

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

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

x
NX二次开发代码分享: 获取实体的最小包络尺寸bounding box
* ]8 m6 K3 ?2 F8 u4 V0 T ; e) f6 `# A0 N2 Y7 m4 v5 X  g& p
很多时候我们需要指导毛坯的尺寸,也就是stock size,在moldwizard里面已经有这个类似的功能,如果通过开发,如何获得,请参考如下代码,执行结果,就是显示x,y,z方向的尺寸!, }  E! z* Q& D

bounding box

bounding box

. i9 A0 y1 [% O4 T4 Z
  1. static int UF_UI_sel_init(UF_UI_selection_p_t select, void * user_data)# r! o$ |) ]3 x
  2. {  & ?/ ^1 ]' f( w( a5 s4 u
  3.         UF_UI_mask_t  mask_triples[] = {
    , E$ a3 N  L+ i) R% J+ O& D8 R
  4.          UF_solid_type, 0, 0};
    ; {( y' m3 D" ?1 j5 I  e
  5.         if (UF_CALL(UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,1,mask_triples))==0)
    0 w* P- Y1 z; O- x5 c. L
  6.           {3 ~3 X0 ?% J3 u' a
  7.         return (UF_UI_SEL_SUCCESS);
    & ~5 ~# U. Y: }8 O( D/ }
  8.     }9 s5 m6 R3 R4 n# F& L
  9.     else! h/ u! I, P# Q/ ^( I
  10.     {
    7 X9 ]2 ^$ l% n4 c& f
  11.         return (UF_UI_SEL_FAILURE);
    6 W. t7 }& O  l8 f1 |5 c  j5 @- o, p
  12.     }" [- {2 B1 Q) ?5 ^/ u/ W
  13. }, i6 z: L0 V# @. {! C

  14. ; h3 B6 P7 V' G/ ~
  15. % V- A3 k* `5 t. I
  16. static void do_api()7 T  g9 G! i1 y: [( T  l
  17. {% h9 V) @, r$ J" ^* Q. Y4 a' Y$ E+ p
  18.         tag_t object,view;* k$ X5 }" \0 H4 Z
  19.         char cue[] = "select object to get the dimensions";
      t- n/ }4 `1 R) t" s
  20.         int scope = UF_UI_SEL_SCOPE_WORK_PART;
    ! T' g+ E2 @: r; s
  21.         double x,y,z;% \# i5 @! O* G3 y$ j, H
  22.         int  response;
    1 [: J: b; x5 |* ^- Z
  23.         double boundingbox[6];2 i" u' w! P* _* j! D7 K
  24.         double cursor[3];
    ; j$ P$ E/ C- t) ]8 [
  25.     UF_UI_select_with_single_dialog(cue,"select the object",scope, UF_UI_sel_init, NULL, &response, &object, cursor, &view );7 A- r9 @: r* |& C, J1 I
  26.          if (response == UF_UI_OBJECT_SELECTED ||) s( [3 ^4 c, ~4 N& f( ^
  27.             response == UF_UI_OBJECT_SELECTED_BY_NAME): Q$ Z$ k, J3 z: e% n/ D% V
  28.         {
    ' H1 ^' a; M: p* m! A
  29.                         UF_DISP_set_highlight(object,0);
    ' y" o6 T0 k3 f2 w4 |, q8 c% g1 d" c
  30.             UF_MODL_ask_bounding_box(object,boundingbox);
    ( _9 Q! Z$ P7 E2 |- u0 s
  31.                         x = boundingbox[3]-boundingbox[0];# \) A6 N( O6 c; Z' Q
  32.                         y = boundingbox[4]-boundingbox[1];
    0 K8 G4 m1 Z7 r+ m
  33.                         z = boundingbox[5]-boundingbox[2];
    $ @( i* J: @1 }; z
  34.                         char message[256];# e& j( L$ O  W6 i
  35.                         sprintf(message," X dimension = %.3f\n Y dimension = %.3f\n Z dimension = %.3f\n",x,y,z);. r- t1 h2 I* g! [# Y6 D- Q
  36.                         uc1601(message,1);/ ~3 R1 g4 x( y& l, |
  37.         }
    * N2 C4 d# P! E2 j% I0 I
  38.          else
    ) v, a% B$ F- N, A5 F
  39.                  uc1601("No object selected",1);
    4 w0 d& ~; u& s- T" z
  40.        
    6 k' J  H* e  J+ z
  41. }2 p6 R2 Y: q# I$ }: o
复制代码
$ P, @  N( ~( i, W  g

. O9 @* w. B! N
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

全部回复2

scmzhusuo 发表于 2014-2-16 20:32:39

scmzhusuo 沙发

2014-2-16 20:32:39

版主能否用C#写个简单的例子啊,C++的看不懂啊
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

gamnson 发表于 2014-3-23 16:30:07

gamnson 板凳

2014-3-23 16:30:07

能用NXOpen C++整个bounding box的例子吗
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了