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

[二次开发源码] NX二次开发中有关表达式的操作代码分享

[复制链接]

2013-11-27 10:03:27 3604 0

admin 发表于 2013-11-27 10:03:27 |阅读模式

admin 楼主

2013-11-27 10:03:27

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

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

x
NX二次开发中有关表达式的操作代码分享
  N/ Y& i2 q) H' F4 B" J+ c' A9 E
) y, x! D, o+ p) t7 v

  1. , `7 v3 |& C" N* N5 G6 R
  2. <p>static void do_UGopen_api(void)
    ) |5 t3 \. X7 G5 b8 u) a1 v  u3 k( V
  3. {4 l+ |* E" r3 O4 v; B3 Q( |
  4. // create block 1* w* O. g. X1 \% W0 D% L
  5. double coner[3] = {0,0,0};
    ! a3 W$ e/ V  \
  6. char *edges[3] = {"l=100","w=100","h=20"};
    " M2 y: h5 R9 g1 W
  7. tag_t blk_tag;
    " E% ?1 C1 Q% u
  8. UF_MODL_create_block1(UF_NULLSIGN,coner,edges,&blk_tag);2 C& I( s  M+ y$ I3 b/ ~
  9. // create a hole
    2 G" E, A) e; x) d  q% G/ S
  10. double dir[3] = {0,0,1};6 ]  ?. S( ^8 R5 E* N: ?
  11. double coner1[3] = {50,50,0};. N5 c* e: l& S6 w2 p; ^5 e( V/ x
  12. tag_t cyl_tag;' o$ W. n; F' G$ t
  13. UF_MODL_create_cyl1(UF_POSITIVE,coner1,"h+30","50",dir,&cyl_tag);</p><p> /*
    5 c* g$ s( S2 }0 v3 ?
  14. create expression and delete it
    $ Z" K! m% v( e* }. _
  15. */
    9 a4 Z* ^& X6 w& m8 R" M* |
  16. // create expression* @5 B9 ?) Q8 g( q, l
  17. char *exp_str,*str,*value;- ~5 P: H8 H1 U- M% x: \
  18. exp_str = "new_exp= 100";
    ! e( K% B; [: y4 y* R/ Y1 }) t
  19. tag_t new_exp,old_exp_tag;4 l3 G' N& G1 \- S. C( |
  20. char *str_exp,*str_old_exp;$ h- _; {  s$ p. s8 ~3 P) m
  21. int nums;
    1 C" a- |# ]# d: ]( r
  22. tag_t *exps;
    9 |0 L+ t# S# D* E1 P
  23. // before create the new expression, we need check if the expressions have been created or not
    2 X: t) D- s! r5 g7 U, D
  24. // if having, we delete it9 P" t: B/ X0 v/ F! O: y
  25. tag_t part= UF_PART_ask_display_part();) l0 g! b% n# p4 o7 k4 d
  26. UF_MODL_ask_exps_of_part(part,&nums,&exps);+ w4 O' v$ F/ J1 t# f
  27. UF_UI_open_listing_window();3 L: u% a. `# M* {% ?
  28. if(nums != 0 )$ l5 @, w  v' z# F! ~+ r1 h
  29. {
    ' M0 i7 \  F, @3 [8 |$ z4 Y
  30.   for(int i = 0 ; i < nums; i++)9 |- Z. u( ~. V* l1 C% n3 g- y
  31.   {  w# G& _1 B+ j
  32.    UF_MODL_ask_exp_tag_string(exps[i],&str_old_exp);. k: k6 }6 K2 W2 e4 d
  33.    UF_MODL_dissect_exp_string(str_old_exp,&str,&value,&old_exp_tag);) I7 H) i5 F3 ^7 c. w0 ^
  34.    if(!strcmp(str,"new_exp"))
    1 b" ^! g( B$ q$ ]& [: P
  35.    {. T; J' \* t" D( {/ R5 }9 s( k5 j% H
  36.      //UF_UI_write_listing_window("we find the alreay expressions ==> new_exp and delete it \n");* p8 ~0 m1 J+ e* E+ r: I
  37.      //delete expression$ t) U! N* G9 C0 o
  38.      UF_MODL_delete_exp(str);
    2 W7 a1 d& q) Z( b' d
  39.      UF_MODL_update();
    1 z  I4 y/ t$ l* s! a9 Z
  40.      break;
    $ ~" A5 h( J& H" L
  41.    }
    / G# \0 [9 M+ p$ b3 ~. z
  42.   }7 M- d9 m9 {  y$ {* @  P
  43. }
    8 A1 H! U7 O/ W$ o0 @
  44. //UF_UI_write_listing_window("we can not find the expression ==> new_exp and create it \n");
    4 x( A& ?( |6 H  R) H2 f$ k
  45. UF_MODL_create_exp_tag(exp_str,&new_exp);
    2 y9 A5 l! B" ~0 Y1 W
  46. UF_UI_write_listing_window("The new created expression is : \n");$ v  U) e! J! Y. `
  47. UF_MODL_ask_exp_tag_string(new_exp,&str_exp);
    1 ]" d0 _6 }- e/ I$ K5 L! t+ H
  48. UF_UI_write_listing_window(str_exp);6 f4 T  a- V* N+ X. n7 P* L
  49. UF_free(str_exp);
    ' @9 \. t  h- f9 [, L
  50. UF_free(str);
    1 S# }. j6 W- z) q' o
  51. UF_free(value);* j" _0 @0 \  s
  52. UF_UI_write_listing_window("\n");</p><p>}</p>
复制代码

( @8 N8 M+ K7 ^: l( {6 k
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了