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

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

  [复制链接]

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

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

admin 楼主

2014-2-12 13:12:17

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

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

x
NX二次开发代码分享: 获取实体的最小包络尺寸bounding box
# n. ?2 x* [+ e0 h4 C6 x6 j" e # v2 Y0 F2 ]% ~" F1 Y' x' l) s
很多时候我们需要指导毛坯的尺寸,也就是stock size,在moldwizard里面已经有这个类似的功能,如果通过开发,如何获得,请参考如下代码,执行结果,就是显示x,y,z方向的尺寸!# f3 n% g+ T( c1 v, E/ l5 E

bounding box

bounding box

' I. v6 p5 }$ K, k) b
  1. static int UF_UI_sel_init(UF_UI_selection_p_t select, void * user_data)# s2 R8 t! Q/ v' l6 i7 f/ k
  2. {  
    / A: O: ?- v& v  D2 o
  3.         UF_UI_mask_t  mask_triples[] = {( A/ w: {0 _  k! t
  4.          UF_solid_type, 0, 0};( n8 E# V: u1 V' Y" ]3 S, O
  5.         if (UF_CALL(UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,1,mask_triples))==0)
    6 z6 C: o/ X2 F# Y) @# G
  6.           {
    3 i: _: H3 A* j6 k
  7.         return (UF_UI_SEL_SUCCESS);9 U; p6 q+ P4 O7 F; k
  8.     }8 U* \$ g, {4 _3 a; ], K
  9.     else) P4 F4 N* Z- l! u& _
  10.     {
    $ t9 n0 }  [* \
  11.         return (UF_UI_SEL_FAILURE);
    6 F/ d% [5 D' O! ~3 @
  12.     }
    : w: r7 u+ y3 T
  13. }6 e% ]+ n6 w" @- \) y& M* ^0 y
  14. . K9 q. {! X7 @+ v; H

  15. ) v, a. j) |7 b" S
  16. static void do_api()
    " S( k( W+ P0 p6 I! [' u! m
  17. {
    ; a" H) L( j; _- q1 c( w& s
  18.         tag_t object,view;
    , X- g7 Q, m+ {7 z+ P
  19.         char cue[] = "select object to get the dimensions";( ~* w9 b9 f. \! Z5 g: X7 p
  20.         int scope = UF_UI_SEL_SCOPE_WORK_PART;
    # [8 q- Q% S+ W) w
  21.         double x,y,z;, _# \' U; }6 O
  22.         int  response;
    # n* S, ?; V7 G$ X: C/ _8 G
  23.         double boundingbox[6];
    ' X$ G& @; C7 {0 m+ {' L1 c$ P
  24.         double cursor[3];
    ! ^6 G2 E; P* A# S( W4 h
  25.     UF_UI_select_with_single_dialog(cue,"select the object",scope, UF_UI_sel_init, NULL, &response, &object, cursor, &view );
    5 C' Y: t% X- r. ~8 R3 I: q: m& h  j1 e
  26.          if (response == UF_UI_OBJECT_SELECTED ||. @: L7 r" `$ Y, l
  27.             response == UF_UI_OBJECT_SELECTED_BY_NAME)
    * r- }$ C  j5 V  t& x
  28.         {
    7 v8 F+ g* i2 @! G
  29.                         UF_DISP_set_highlight(object,0);. d6 U9 u  _3 I" O9 c5 }$ d
  30.             UF_MODL_ask_bounding_box(object,boundingbox);
    : `& P6 f5 ~! V7 d3 i0 \; w4 {3 u
  31.                         x = boundingbox[3]-boundingbox[0];
    : F, m, l$ d; M; |* J. W
  32.                         y = boundingbox[4]-boundingbox[1];
    0 w; x. R0 A' D  c7 L
  33.                         z = boundingbox[5]-boundingbox[2];
    - b! _8 U0 G5 Q% r
  34.                         char message[256];' W0 s) h/ H* a
  35.                         sprintf(message," X dimension = %.3f\n Y dimension = %.3f\n Z dimension = %.3f\n",x,y,z);
    7 k( ^8 _, c8 }; i2 c' s! G( T
  36.                         uc1601(message,1);
    1 b+ R0 ?7 z% r: L
  37.         }
    # W/ @3 v* P0 L& Q
  38.          else
    2 S, {. S+ q/ H" j
  39.                  uc1601("No object selected",1);
    2 Z# N+ I* l+ O3 p
  40.        
    9 o- N/ T/ I# }9 p$ W' W
  41. }
    + B8 y' @8 s6 q1 ~
复制代码

0 d2 [3 X: H# R: P
0 e* R& c' `, T1 ]2 c
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了