PLM之家PLMHome-工业软件践行者

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

  [复制链接]

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

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

admin 楼主

2014-2-12 13:12:17

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

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

x
NX二次开发代码分享: 获取实体的最小包络尺寸bounding box, B8 m2 r! b! ?; f
6 u$ n8 ?4 d: C3 x4 }
很多时候我们需要指导毛坯的尺寸,也就是stock size,在moldwizard里面已经有这个类似的功能,如果通过开发,如何获得,请参考如下代码,执行结果,就是显示x,y,z方向的尺寸!4 l* @$ O6 ^  u/ a8 q% r

bounding box

bounding box

& q- e, D- S2 ^0 K2 H3 P& I
  1. static int UF_UI_sel_init(UF_UI_selection_p_t select, void * user_data)
    / h* s. `! M( T
  2. {  0 i" M2 T8 O: j% J; M$ t: j
  3.         UF_UI_mask_t  mask_triples[] = {
    $ ~1 L" z5 _% Q7 ^; j& o
  4.          UF_solid_type, 0, 0};$ T( B0 B- _. _& R6 b& o& K
  5.         if (UF_CALL(UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,1,mask_triples))==0)) s! _& h/ v; D( K$ ?, S
  6.           {% v" @1 [4 S+ K. z0 f
  7.         return (UF_UI_SEL_SUCCESS);
    % b8 a2 k- ]0 q0 k8 ?' I1 o
  8.     }
      v% @" C, j% ]6 t" B
  9.     else" J! F$ ?7 `8 U& b
  10.     {* M4 Y  h* a: \/ A6 m
  11.         return (UF_UI_SEL_FAILURE);; v' Y- T2 f1 L- x4 |, Q
  12.     }
    $ P0 n$ G8 \# O) t# D3 z
  13. }5 w  M# f0 U7 S  f5 V4 X( t+ k8 e
  14. ; ~2 ^  c- }* @: J6 ?

  15. 0 F* \; E7 D) j/ h# j
  16. static void do_api()
    ! z8 o9 g$ K1 T7 I
  17. {0 ]! @. d2 |+ {
  18.         tag_t object,view;5 D' V) d9 U- c2 T
  19.         char cue[] = "select object to get the dimensions";
    " H+ t0 K  @; ~: I" l- }
  20.         int scope = UF_UI_SEL_SCOPE_WORK_PART;
    4 O& Z2 G2 f( H! [+ q. m9 m
  21.         double x,y,z;; p' F& ?9 v. }1 m8 w; U* s7 D
  22.         int  response;. Q$ Y) `' D) M2 U& s9 M, O/ {; i
  23.         double boundingbox[6];- S. o' c) Y2 I2 F2 t
  24.         double cursor[3];
    + L) y- i2 L& A2 ?: E
  25.     UF_UI_select_with_single_dialog(cue,"select the object",scope, UF_UI_sel_init, NULL, &response, &object, cursor, &view );
    4 `0 n- o" r" [9 R
  26.          if (response == UF_UI_OBJECT_SELECTED ||
    6 w; a7 g  |! m+ p* X6 L" C
  27.             response == UF_UI_OBJECT_SELECTED_BY_NAME)
    0 L1 F8 |' l, K* ~4 @  f6 B
  28.         {
    " O) `. _  ^* W7 y5 E9 C! ?2 K/ h( J
  29.                         UF_DISP_set_highlight(object,0);
    ( A( N: V5 z! l' y3 x: t" B- _
  30.             UF_MODL_ask_bounding_box(object,boundingbox);
    5 |9 }5 O: y, X, {8 k# P
  31.                         x = boundingbox[3]-boundingbox[0];
    $ o2 s, ?* s! h2 x6 v; \
  32.                         y = boundingbox[4]-boundingbox[1];
    4 ?( S+ h. R; h' a0 X$ Z
  33.                         z = boundingbox[5]-boundingbox[2];3 |: j% B# T7 L+ `1 _5 a! Y& W
  34.                         char message[256];  j. i6 M) I( R/ M
  35.                         sprintf(message," X dimension = %.3f\n Y dimension = %.3f\n Z dimension = %.3f\n",x,y,z);
    % ]: }! T, X) c. W- y! l& k
  36.                         uc1601(message,1);4 e1 g2 V- e. L
  37.         }
    / f; U5 }. F& U; q6 \
  38.          else 2 b6 h: u# [7 e5 I. X
  39.                  uc1601("No object selected",1);
    : H8 S: K. u4 Y  _, d( v
  40.        
      k9 {# M/ a. z3 d+ X
  41. }
    ! o: S9 }9 ~2 F. I: ]
复制代码

( Y1 v# ?; u$ ^5 W
% X- m7 f9 O: r9 U, d
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了