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

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

[复制链接]

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

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

admin 楼主

2013-11-27 10:03:27

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

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

x
NX二次开发中有关表达式的操作代码分享
2 B) Z  V; j, p4 B8 q
& k1 D- K( d" a7 u  i# a: k! r

  1. 5 P' R& @5 r% Y3 E$ |: u7 b
  2. <p>static void do_UGopen_api(void)
    # M7 `, Q0 \( x3 @
  3. {
    # F1 x! R9 N. j) `  l5 \
  4. // create block 1
    ; J0 {) A  ~3 ]( e
  5. double coner[3] = {0,0,0};3 O" o: H: y% _$ S- N. v/ o) j8 I, i
  6. char *edges[3] = {"l=100","w=100","h=20"};6 |5 O' T* r9 Y( s/ G
  7. tag_t blk_tag;, |! h; a% B9 Z/ k* D1 e" G$ p
  8. UF_MODL_create_block1(UF_NULLSIGN,coner,edges,&blk_tag);
    % N2 p3 }5 L  r3 u- f
  9. // create a hole
      w9 r! |2 q( F
  10. double dir[3] = {0,0,1};, A" t5 L1 q2 |% r
  11. double coner1[3] = {50,50,0};. c2 _3 W' }5 {1 I/ D
  12. tag_t cyl_tag;
    2 \- q1 k; n/ F2 ~3 o
  13. UF_MODL_create_cyl1(UF_POSITIVE,coner1,"h+30","50",dir,&cyl_tag);</p><p> /*
    7 W. @' H  d* Y# r0 J
  14. create expression and delete it( m% Z' j3 u! h3 w: [2 H
  15. */
    0 Y. L, X6 j, _" i
  16. // create expression- Q, k5 C1 _" k* ?, K
  17. char *exp_str,*str,*value;% c; V( v0 C( n7 P+ Z
  18. exp_str = "new_exp= 100";  E: H# l0 G/ i1 ?9 p/ ?& ~
  19. tag_t new_exp,old_exp_tag;
    / \6 O' Z$ a8 b
  20. char *str_exp,*str_old_exp;
    ; o/ y. \. {9 l1 s! m+ E' S7 h. `1 W
  21. int nums;, W, {5 W/ Y' [- o
  22. tag_t *exps;
      z- P% {  H+ b+ ]5 K
  23. // before create the new expression, we need check if the expressions have been created or not ) l) H4 S4 u) T1 X; M; ]! S2 Y* C2 `
  24. // if having, we delete it: f* @2 V* C3 D/ z
  25. tag_t part= UF_PART_ask_display_part();
    7 G7 {9 H1 y; L+ v! o5 V& v
  26. UF_MODL_ask_exps_of_part(part,&nums,&exps);
    , U% k0 P' l" X' I7 |" f
  27. UF_UI_open_listing_window();; T9 |3 w$ e+ w( ?; u* x+ V' w! {( C
  28. if(nums != 0 )
    " {" l: ^: p) |7 m
  29. {$ K2 f/ R1 }3 Y' d/ h: F1 h( c
  30.   for(int i = 0 ; i < nums; i++)
    9 E; n$ ^* g- t; g7 z9 l; m+ h" W7 b
  31.   {! |% x0 `/ O+ S3 Z  ]( q. U
  32.    UF_MODL_ask_exp_tag_string(exps[i],&str_old_exp);& L2 z" ?+ a8 Q; \
  33.    UF_MODL_dissect_exp_string(str_old_exp,&str,&value,&old_exp_tag);. ]* K4 L6 h( c/ ~0 H( Q5 L4 ~, Z& W+ f
  34.    if(!strcmp(str,"new_exp"))
    5 P7 C+ x3 ?( U9 w4 O. R
  35.    {' u! F% y0 E, J$ c# i5 o6 P) w
  36.      //UF_UI_write_listing_window("we find the alreay expressions ==> new_exp and delete it \n");8 d8 ^, p! V8 J2 r
  37.      //delete expression5 k1 n9 u) t. P; }) U; ]
  38.      UF_MODL_delete_exp(str);) J7 q' ?6 I, f! f
  39.      UF_MODL_update();
    ' [2 Z5 Q0 B. v7 q) [8 Y7 I
  40.      break;7 R5 ^( Z1 ]# D% ~9 T
  41.    }
    5 Y! @& u! u5 V. M# ~7 J
  42.   }
    5 m; }+ q8 J& I- l  f- k
  43. }
    : F6 M4 e3 H3 K8 ?& [" P
  44. //UF_UI_write_listing_window("we can not find the expression ==> new_exp and create it \n");- u5 h% i5 f" \% W6 v. I9 F* N0 O$ m
  45. UF_MODL_create_exp_tag(exp_str,&new_exp);! M& |. _. Z: I4 l0 X* x+ P  s
  46. UF_UI_write_listing_window("The new created expression is : \n");. C, O  V1 P7 k' q$ |* f- q6 q
  47. UF_MODL_ask_exp_tag_string(new_exp,&str_exp);
    / C( P* h, @; s- q& M
  48. UF_UI_write_listing_window(str_exp);
    - }$ [# q' w* T- ]' H
  49. UF_free(str_exp);+ [5 f# Z) Y0 a8 b* n5 v
  50. UF_free(str);
    # }$ Q* C( @% Q' K6 r+ D
  51. UF_free(value);. C! J8 q7 o; j: @8 D) @- ?  j
  52. UF_UI_write_listing_window("\n");</p><p>}</p>
复制代码

) f$ L1 }# \8 b, G) G4 J
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了