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

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

  [复制链接]

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

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

admin 楼主

2014-2-12 13:12:17

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

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

x
NX二次开发代码分享: 获取实体的最小包络尺寸bounding box0 H0 b  I, W5 g9 e1 M1 [
+ s3 T: t/ w* Y: ]6 [
很多时候我们需要指导毛坯的尺寸,也就是stock size,在moldwizard里面已经有这个类似的功能,如果通过开发,如何获得,请参考如下代码,执行结果,就是显示x,y,z方向的尺寸!
; ], u% {# E8 t( r% E8 ?

bounding box

bounding box

# _7 g- E+ R! N# J: W/ a: j, \
  1. static int UF_UI_sel_init(UF_UI_selection_p_t select, void * user_data)8 |& t' j& [9 K! N- K
  2. {  3 _) K2 _9 J+ y& l- T3 h/ u1 e
  3.         UF_UI_mask_t  mask_triples[] = {% Y, J* [; M7 f0 a: L
  4.          UF_solid_type, 0, 0};
    / z: {; x! F% d8 `$ v
  5.         if (UF_CALL(UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,1,mask_triples))==0)
    5 i8 d5 d! T$ }( X. h/ f- ^
  6.           {
    % U  z" ~& v* Q4 H9 j* i1 Q. r! [
  7.         return (UF_UI_SEL_SUCCESS);
    ( }$ o& G) Y! W! }
  8.     }
    & P( \2 |) p; L* t% m
  9.     else
    2 E9 W. f7 @  E
  10.     {& X# ]! X0 e+ ^4 ^; G6 z! M* p
  11.         return (UF_UI_SEL_FAILURE);8 E6 O8 k' K: g7 x
  12.     }
    , I8 o; ]8 H5 r& e% B1 T
  13. }' l6 V% R' e$ _1 m' U4 ?

  14. : ^4 n* z' t( L+ ?0 V
  15. 0 l3 b2 _) v7 t! K0 \
  16. static void do_api()/ I2 Q# d1 U& r9 _' U
  17. {- {1 V6 Y! o) `+ |
  18.         tag_t object,view;
    3 F/ `% e8 P4 A& n
  19.         char cue[] = "select object to get the dimensions";. a- Y, D3 I( }0 W3 W3 v; X
  20.         int scope = UF_UI_SEL_SCOPE_WORK_PART;) G3 m; t$ [0 M4 S8 J
  21.         double x,y,z;
    7 X: q: ?% _& O( {
  22.         int  response;
    & `2 u2 z/ v' ^6 N! t
  23.         double boundingbox[6];# {0 m7 q6 R; ?" {) ?
  24.         double cursor[3];
    . v$ m: h( O. F& b, L! r5 e" b
  25.     UF_UI_select_with_single_dialog(cue,"select the object",scope, UF_UI_sel_init, NULL, &response, &object, cursor, &view );
    6 d' i& L. ?8 H, l+ M# B
  26.          if (response == UF_UI_OBJECT_SELECTED ||
    ) ]0 Z* G+ S! w6 m  W3 F
  27.             response == UF_UI_OBJECT_SELECTED_BY_NAME)
    $ j& Z/ }5 m# [
  28.         {( q7 e* z  M4 }; K' I, m: X
  29.                         UF_DISP_set_highlight(object,0);
    # k: t2 P- {' Y$ g# O
  30.             UF_MODL_ask_bounding_box(object,boundingbox);0 j  h! K/ S' o' v! ?% C% B& p$ ?
  31.                         x = boundingbox[3]-boundingbox[0];; Y' R: y# e+ C/ \. n$ d
  32.                         y = boundingbox[4]-boundingbox[1];  q, Y6 Q/ f  E& G% D# U8 k5 T
  33.                         z = boundingbox[5]-boundingbox[2];( F) E! h% q# S& @5 ^
  34.                         char message[256];
    8 k8 M  ?2 t- ?
  35.                         sprintf(message," X dimension = %.3f\n Y dimension = %.3f\n Z dimension = %.3f\n",x,y,z);
    7 Z8 L6 a+ P8 U; V: n4 [" Z
  36.                         uc1601(message,1);
    $ R2 D9 i! x4 e$ U
  37.         }
    / d  P3 R8 S  E3 o
  38.          else ; g# S: I8 P! f0 a
  39.                  uc1601("No object selected",1);
    ! T5 ]; E% P# S3 \
  40.        
    1 V0 [) @/ w: @* f- t8 Y
  41. }
    : G1 v6 k; [6 t# W: w9 S
复制代码
4 E9 z! ^7 r; P/ s# M) t
. @6 R% f* K! x' U* F
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了