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

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

  [复制链接]

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

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

admin 楼主

2014-2-12 13:12:17

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

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

x
NX二次开发代码分享: 获取实体的最小包络尺寸bounding box4 F: R1 W% v" r) O7 Y1 F
2 S: ?& u6 W9 J5 W
很多时候我们需要指导毛坯的尺寸,也就是stock size,在moldwizard里面已经有这个类似的功能,如果通过开发,如何获得,请参考如下代码,执行结果,就是显示x,y,z方向的尺寸!$ i; E, b; Q& l' k3 o/ J

bounding box

bounding box
% A4 L- `: L! E+ a! c& a% i
  1. static int UF_UI_sel_init(UF_UI_selection_p_t select, void * user_data). w3 R- y4 ?1 |* w6 ^# V
  2. {  
    ; h7 b6 n1 z8 _# V+ @! p
  3.         UF_UI_mask_t  mask_triples[] = {
    7 H. l# d9 }8 V+ F0 E1 c# r; v
  4.          UF_solid_type, 0, 0};
    5 C9 D3 |( A5 A0 \+ ^
  5.         if (UF_CALL(UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,1,mask_triples))==0)
    & c, i* f4 l; E4 t* `8 ^, Y! @
  6.           {( b( O  Z4 }: [, B1 w% M
  7.         return (UF_UI_SEL_SUCCESS);
    / T; `$ a5 e0 s8 J: I. C# r
  8.     }
      H4 v' F  s- d' \
  9.     else
    4 C: ]1 K& d- v5 ?
  10.     {0 B0 b2 B9 y1 i) V  ]1 W) p9 I
  11.         return (UF_UI_SEL_FAILURE);$ p! H$ H& z; |; T1 r4 P
  12.     }" E  p- Q7 `$ |4 F: A" |; b0 ~0 w
  13. }- M; e4 I" O+ Q; h

  14. " p- `, M1 H( Y0 X7 |
  15. " p' [* |/ g. c, O
  16. static void do_api()
    6 A* h' Q- f& A/ b+ p+ v
  17. {
    8 {0 H& |- `7 W* w0 B
  18.         tag_t object,view;6 C/ G2 S- {+ B& I; \- ?2 a
  19.         char cue[] = "select object to get the dimensions";2 Z; ?7 F% E; N/ B0 w& E! e6 L# v" e
  20.         int scope = UF_UI_SEL_SCOPE_WORK_PART;" x- n7 Y/ U( B7 N
  21.         double x,y,z;
    ' b+ l* ~' o, {/ N9 Q- |0 E
  22.         int  response;! L  J  |6 P, @/ \7 v
  23.         double boundingbox[6];
    3 G' @1 C2 l8 f. C6 d. r* L2 E
  24.         double cursor[3];/ ?7 Z4 O4 a* [5 n
  25.     UF_UI_select_with_single_dialog(cue,"select the object",scope, UF_UI_sel_init, NULL, &response, &object, cursor, &view );% P0 w( Z0 B; ^' M$ ?# b
  26.          if (response == UF_UI_OBJECT_SELECTED ||, x$ g" m- F3 k( R' z0 C  b5 z
  27.             response == UF_UI_OBJECT_SELECTED_BY_NAME)) ?( K0 v# l) O3 g1 ~2 J+ I
  28.         {3 \* ]1 d/ s( Y5 ^9 y' f" _  b
  29.                         UF_DISP_set_highlight(object,0);+ [$ o+ L& _) {
  30.             UF_MODL_ask_bounding_box(object,boundingbox);6 |5 t5 T- z8 n; Y9 ?4 C
  31.                         x = boundingbox[3]-boundingbox[0];' Q5 U+ G# d  B, b2 a. l4 ]% X
  32.                         y = boundingbox[4]-boundingbox[1];, g' v, w! ?9 r$ _5 e0 N
  33.                         z = boundingbox[5]-boundingbox[2];
    1 E5 N5 c3 ~8 N" ^. P2 C# Y
  34.                         char message[256];
    ( b) z0 A; f# T: I, m
  35.                         sprintf(message," X dimension = %.3f\n Y dimension = %.3f\n Z dimension = %.3f\n",x,y,z);+ J$ h$ v) y- f
  36.                         uc1601(message,1);
    3 _$ |6 d# I( z3 M( ]9 U# M
  37.         }2 Q, `2 b8 K" G- k# `
  38.          else
    4 j6 s5 t* @3 c' [, O( m7 K
  39.                  uc1601("No object selected",1);
    , y2 o8 H! Z( H
  40.        
    ; c7 B! O3 X( n: l5 ~: c
  41. }
    : m9 E8 |) o' A
复制代码
0 D( t6 p, B# a# }. m
! L* T! w, ?  G" U
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了