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

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

[复制链接]

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

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

admin 楼主

2013-11-27 10:03:27

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

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

x
NX二次开发中有关表达式的操作代码分享
- j- I# K; m: ?6 Z9 [* R
4 [; A. `. A, x4 v7 r% ?
  1. 0 c4 U: G. G; G6 S: _
  2. <p>static void do_UGopen_api(void)/ O9 `5 G( Z* y! s0 E7 m+ Y, ^
  3. {0 K2 c# a) F, G3 w* Y8 {& l* D
  4. // create block 1
    # U6 `: t+ a/ g* S4 F7 X
  5. double coner[3] = {0,0,0};/ D# H. `# U* G" k" s; J
  6. char *edges[3] = {"l=100","w=100","h=20"};+ h7 m) Q  r. C% U, Q
  7. tag_t blk_tag;
    1 ?* }% V5 N( ^
  8. UF_MODL_create_block1(UF_NULLSIGN,coner,edges,&blk_tag);8 R& E, G0 T  J
  9. // create a hole4 M& S2 r9 S& v) W, K3 m
  10. double dir[3] = {0,0,1};" n* D; i' K4 y( q7 {
  11. double coner1[3] = {50,50,0};
    6 W! l0 r  w( M: p6 F( i
  12. tag_t cyl_tag;
    8 _0 Q: u3 [0 L2 y' D1 S# O1 |
  13. UF_MODL_create_cyl1(UF_POSITIVE,coner1,"h+30","50",dir,&cyl_tag);</p><p> /*0 o5 M. ], d  J9 k4 O
  14. create expression and delete it
    % S6 ^7 ]' h/ d9 U, X; v
  15. */
    5 L7 `. n$ G* r. `2 R0 e0 R  v1 ~
  16. // create expression" s, Z4 u; a" S/ z
  17. char *exp_str,*str,*value;
    : G" {( x/ C0 k; ~0 S$ C2 G
  18. exp_str = "new_exp= 100";$ ^% X: I! C, _# U: |6 @$ L4 z! Z
  19. tag_t new_exp,old_exp_tag;/ Y1 `1 A. o/ B' ?
  20. char *str_exp,*str_old_exp;5 j5 T; u" a3 E7 W0 a
  21. int nums;$ J1 J6 o% I: A
  22. tag_t *exps;
    3 m+ B- `1 y% ]" N- ?9 k
  23. // before create the new expression, we need check if the expressions have been created or not
    1 L. n6 Z& S1 @" B1 L% |$ \9 n. O3 W
  24. // if having, we delete it
    ' t) s: s$ N. I& j) K. T
  25. tag_t part= UF_PART_ask_display_part();, i2 k* q; i4 n" O) q2 V* v: i
  26. UF_MODL_ask_exps_of_part(part,&nums,&exps);
    , N6 W6 b5 ]/ T7 D- O+ J. N
  27. UF_UI_open_listing_window();
    8 o2 q% T4 m4 t. _! D
  28. if(nums != 0 )6 ?1 \% h4 p. H
  29. {- c" e, v3 ~. [
  30.   for(int i = 0 ; i < nums; i++)5 j7 }" H( r* _2 M3 n
  31.   {
    ( g# a7 ~" n! ]: y) G6 t8 i8 c
  32.    UF_MODL_ask_exp_tag_string(exps[i],&str_old_exp);
    9 s* T) ^7 h. d: |+ _, ~; {
  33.    UF_MODL_dissect_exp_string(str_old_exp,&str,&value,&old_exp_tag);. x& W2 c; I. e' [  n
  34.    if(!strcmp(str,"new_exp"))
    1 v! W1 _4 N) M' x+ t" K, m
  35.    {9 {+ q  O+ d  r8 X2 u. ]+ [
  36.      //UF_UI_write_listing_window("we find the alreay expressions ==> new_exp and delete it \n");7 X* {6 k- I8 _% R5 q, y
  37.      //delete expression6 a6 [5 x* p9 ^
  38.      UF_MODL_delete_exp(str);
    ! W( S" D' L5 H2 _$ D
  39.      UF_MODL_update();
    ' b8 B% G0 y+ j' i7 U% s" h' H  y
  40.      break;; O7 v1 e4 C# V) Z
  41.    }
    ; g: a; q. `/ f, y
  42.   }1 @& i' q7 ?- U
  43. }
      l1 h6 U/ ]$ o8 `
  44. //UF_UI_write_listing_window("we can not find the expression ==> new_exp and create it \n");
    : t, F" b" y1 m* T3 p8 B
  45. UF_MODL_create_exp_tag(exp_str,&new_exp);2 h+ y9 a2 I" B2 b
  46. UF_UI_write_listing_window("The new created expression is : \n");
    5 p5 o3 b! x/ O. x& e
  47. UF_MODL_ask_exp_tag_string(new_exp,&str_exp);
    ) \9 k& `% f' B. e3 p: S
  48. UF_UI_write_listing_window(str_exp);
    , M  F- q$ Y& u- W) H6 b4 F9 E" Z
  49. UF_free(str_exp);
    ) m  w- g) |, n0 D6 N. S1 s* P
  50. UF_free(str);  I2 X+ |7 J' g' U$ o
  51. UF_free(value);
    & J; f3 A# b, i7 Z  J
  52. UF_UI_write_listing_window("\n");</p><p>}</p>
复制代码
5 p: ?! [' m) n. E6 l* I# T
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了