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

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

  [复制链接]

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

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

admin 楼主

2014-2-12 13:12:17

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

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

x
NX二次开发代码分享: 获取实体的最小包络尺寸bounding box" m$ ^0 i) F  h* q9 Z, m7 _

* B. V1 ?5 F; i很多时候我们需要指导毛坯的尺寸,也就是stock size,在moldwizard里面已经有这个类似的功能,如果通过开发,如何获得,请参考如下代码,执行结果,就是显示x,y,z方向的尺寸!
+ C6 S& I  }4 U% t- a

bounding box

bounding box

6 \# F) B0 l4 k, l+ k+ N2 D. y
  1. static int UF_UI_sel_init(UF_UI_selection_p_t select, void * user_data)2 ^& T5 }+ K& O3 |9 g: e& j5 z
  2. {  . P8 T% K3 t. [- |% C, q) C. l3 C
  3.         UF_UI_mask_t  mask_triples[] = {; W% h0 U' G3 E1 l5 g
  4.          UF_solid_type, 0, 0};, D4 ~; W! s- L, v6 w2 a
  5.         if (UF_CALL(UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,1,mask_triples))==0)$ R& D/ a5 {% K, R. z) S
  6.           {2 N% G2 d, J' ]" G, [
  7.         return (UF_UI_SEL_SUCCESS);
    9 T0 U0 u# {  ^; B+ W% v
  8.     }
    3 F( L  I7 L& m+ c- d
  9.     else- o; P( Y4 a3 {
  10.     {% l9 A1 Q# o; n% \; D, z) d! u
  11.         return (UF_UI_SEL_FAILURE);) |( |7 q' ~- s# t
  12.     }
    0 y, Z4 v! M- J" O% t$ z4 r# V' j, c
  13. }
    9 X( x' ]5 g) T+ p; [
  14. 0 _: h0 @1 I, D" c

  15. 9 E- W- \0 P9 P) t
  16. static void do_api()& X. s9 x; q* e6 `
  17. {8 M! {0 o- K. x' y; J( j* }* G8 O
  18.         tag_t object,view;& x- u% h3 M- c7 ]# V% O; _4 r9 I
  19.         char cue[] = "select object to get the dimensions";6 k+ C' O; c8 d& e. I% f+ [
  20.         int scope = UF_UI_SEL_SCOPE_WORK_PART;! K7 ?* ]# w* D- O% ^! D. u, v
  21.         double x,y,z;4 ?# M9 I4 h- \4 O, V& e) s8 Q5 E
  22.         int  response;
    $ ]. ~' F7 M4 j) W
  23.         double boundingbox[6];
    & v0 K  k6 Z0 ~, o2 _
  24.         double cursor[3];( {7 i+ j" v# X" Z
  25.     UF_UI_select_with_single_dialog(cue,"select the object",scope, UF_UI_sel_init, NULL, &response, &object, cursor, &view );
    : g: {$ |- w% k# q0 I8 V, J6 m
  26.          if (response == UF_UI_OBJECT_SELECTED ||
    8 K; k3 Y1 R: w4 _9 o4 j" h8 z. |
  27.             response == UF_UI_OBJECT_SELECTED_BY_NAME)' x# j6 {6 u2 i5 t, p( [4 U
  28.         {5 i' L7 b7 n: R, S
  29.                         UF_DISP_set_highlight(object,0);
    7 z) y4 y. i3 G  @
  30.             UF_MODL_ask_bounding_box(object,boundingbox);% J! o9 |. p+ U, Q4 V8 _* i
  31.                         x = boundingbox[3]-boundingbox[0];  p1 T3 |# o! I" C) l. K
  32.                         y = boundingbox[4]-boundingbox[1];: _8 A3 z. b( B1 v
  33.                         z = boundingbox[5]-boundingbox[2];
    9 p! |( r: B& T3 D0 L/ r  K
  34.                         char message[256];
    7 g- z7 r6 z+ b& r9 _2 {1 S4 X
  35.                         sprintf(message," X dimension = %.3f\n Y dimension = %.3f\n Z dimension = %.3f\n",x,y,z);
    ; t) x4 F5 _3 s2 E+ U5 m( F( T
  36.                         uc1601(message,1);0 b' k6 C- p- Y+ A9 C
  37.         }
    6 w! {, v* @% K
  38.          else / J* T" ?$ P6 s; V5 q2 Q3 n
  39.                  uc1601("No object selected",1);
      J9 V3 K3 |; X5 |  ^" Z* M& j2 J  [
  40.        
    2 {8 x1 [1 @# p' _) p
  41. }% {$ k% b5 z- B1 T0 q. ^# G4 \
复制代码

5 S) W( X# V) U
$ h9 y) y5 H7 _, Q5 ?; S
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 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二次开发专题模块培训报名开始啦

    我知道了