PLM之家PLMHome-工业软件与AI结合践行者

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

  [复制链接]

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

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

admin 楼主

2014-2-12 13:12:17

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

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

x
NX二次开发代码分享: 获取实体的最小包络尺寸bounding box
6 c  t: R0 e$ f; j / D) E+ Y2 ]4 `; o  w# N
很多时候我们需要指导毛坯的尺寸,也就是stock size,在moldwizard里面已经有这个类似的功能,如果通过开发,如何获得,请参考如下代码,执行结果,就是显示x,y,z方向的尺寸!( I$ `2 U# x1 d

bounding box

bounding box

7 T, ?2 V. Q2 [* h( S% l9 ~
  1. static int UF_UI_sel_init(UF_UI_selection_p_t select, void * user_data), T2 z/ S6 d2 Y0 [
  2. {  
    0 ?6 Q- w2 l' N; I: w
  3.         UF_UI_mask_t  mask_triples[] = {, l" g* a3 T/ O! k( p# ~: n4 K
  4.          UF_solid_type, 0, 0};1 [! ]1 p/ N$ d, s0 U8 W
  5.         if (UF_CALL(UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,1,mask_triples))==0)
    , w3 I- X: I  ]& F
  6.           {
    0 h, F: G3 T+ G% Y
  7.         return (UF_UI_SEL_SUCCESS);( n) B) \4 ^9 `5 t3 z
  8.     }
    5 f! a" e+ Y5 Y/ U  G
  9.     else
    * c" c8 f. K, Z) r) s9 {- y
  10.     {2 |- ^8 N( h0 w2 D) G/ p
  11.         return (UF_UI_SEL_FAILURE);
    , Y. U& t1 @0 H9 f4 f6 k
  12.     }9 c0 L" w; V6 D! F7 {
  13. }* t* |3 J6 p( t* x) ~5 ^& r; b$ x
  14. - e: p0 z6 S5 [. a
  15. 5 b% g  b% |0 c$ A& K, I$ ?8 O; L
  16. static void do_api()) N9 K0 S1 u) C3 L: _+ |- U- ]
  17. {
    $ k& z, Y! h9 y! z
  18.         tag_t object,view;
    * S$ e# t. m. w
  19.         char cue[] = "select object to get the dimensions";
    # v( Y6 l( x5 S& A" R& ?+ T
  20.         int scope = UF_UI_SEL_SCOPE_WORK_PART;& s, a2 K8 o7 k3 K( e, h+ n
  21.         double x,y,z;0 Q& D8 u" S  ^, [2 e8 j
  22.         int  response;' _1 B! g0 ]2 g/ l2 h
  23.         double boundingbox[6];  Z0 Z2 b$ l- b
  24.         double cursor[3];
    - T) p' h! d- y
  25.     UF_UI_select_with_single_dialog(cue,"select the object",scope, UF_UI_sel_init, NULL, &response, &object, cursor, &view );6 M4 `3 [$ E" ^% M
  26.          if (response == UF_UI_OBJECT_SELECTED ||" _' B5 @2 F- s- s: p
  27.             response == UF_UI_OBJECT_SELECTED_BY_NAME)
    # I- P- d9 b! i
  28.         {. |! t( `: T: k# ^) C. {! l3 z
  29.                         UF_DISP_set_highlight(object,0);
    ' S, u% e( |) H- ?! q
  30.             UF_MODL_ask_bounding_box(object,boundingbox);
    . G0 ~% T, J3 N& P0 C
  31.                         x = boundingbox[3]-boundingbox[0];
    # y8 |. [3 W* x! [
  32.                         y = boundingbox[4]-boundingbox[1];
    . F& v3 K5 I$ J5 z
  33.                         z = boundingbox[5]-boundingbox[2];9 c1 R5 y: T& Z: B- A) l
  34.                         char message[256];
    # |" a+ X/ Q2 y, _
  35.                         sprintf(message," X dimension = %.3f\n Y dimension = %.3f\n Z dimension = %.3f\n",x,y,z);  N( n/ E! ?' v0 g0 |/ I% P
  36.                         uc1601(message,1);) t8 O' n) z( L' D
  37.         }
    9 K7 Y! i( k$ A& R: y% }" {: @7 r
  38.          else
    ) r2 ^3 |3 _# A* t! G9 d
  39.                  uc1601("No object selected",1);1 x) e7 F9 Z! s  H/ x: ]2 R% l, H& y
  40.        
    % A* {9 i" W1 J2 c
  41. }
    ( l9 G6 W2 T. ~+ O
复制代码

$ N  F9 e) X5 g5 `/ r$ E, g0 J
2 x5 m4 X: B& W3 P: o" 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二次开发专题模块培训报名开始啦

    我知道了