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

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82168
QQ
发表于 2013-11-27 10:03:27 | 显示全部楼层 |阅读模式

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

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

x
NX二次开发中有关表达式的操作代码分享
* T1 H) s' Z) _! y5 k $ p: S6 n6 t& I+ l8 o
  1. 7 T9 {6 l3 n/ m2 P$ }
  2. <p>static void do_UGopen_api(void)  y! V8 \+ ?% u
  3. {
    + v0 }5 ~  E2 R: T) _
  4. // create block 1
    + p& e  N3 D% M, o2 q
  5. double coner[3] = {0,0,0};
    ) F3 O7 j) a7 U# L5 z
  6. char *edges[3] = {"l=100","w=100","h=20"};
    1 t2 K8 A5 M% }2 q8 E4 U% W
  7. tag_t blk_tag;5 [' J8 F0 c: g% C) c
  8. UF_MODL_create_block1(UF_NULLSIGN,coner,edges,&blk_tag);
    ( r9 N( E0 n) k7 @4 d" K
  9. // create a hole
    ) P; u; ~& b& N3 R7 l
  10. double dir[3] = {0,0,1};
    + }5 F/ v! g; G
  11. double coner1[3] = {50,50,0};
    . m4 `$ j! M2 r
  12. tag_t cyl_tag;
    , X, O: D! q7 W, h) }. t0 h
  13. UF_MODL_create_cyl1(UF_POSITIVE,coner1,"h+30","50",dir,&cyl_tag);</p><p> /*
    - b" J7 a; d( S' U3 u
  14. create expression and delete it
    4 [9 y* o, {7 M
  15. */
    0 w& q3 X* N$ k6 Y1 B
  16. // create expression6 r9 V! u, M' f( ^% T1 n
  17. char *exp_str,*str,*value;
    2 _7 I; `& L7 a: U& T8 X
  18. exp_str = "new_exp= 100";
    & j( ]. d" l/ V: {! V
  19. tag_t new_exp,old_exp_tag;
    $ P: _0 K# q0 U
  20. char *str_exp,*str_old_exp;
    ! I  ]* A' ^! _3 a
  21. int nums;
    9 H7 m! E6 F, s. q9 k6 m; j$ J
  22. tag_t *exps;# r" T  ~4 s# T! W
  23. // before create the new expression, we need check if the expressions have been created or not 1 N" ^2 V  h! M: f# Q
  24. // if having, we delete it' ~& R: ~+ |5 R  h0 S: o" @7 d9 D6 B* ?
  25. tag_t part= UF_PART_ask_display_part();, t/ |: w- e' q) w6 A8 _% ~/ O
  26. UF_MODL_ask_exps_of_part(part,&nums,&exps);
    : [- L0 u$ K, k& I
  27. UF_UI_open_listing_window();1 i# y0 \& ?1 a
  28. if(nums != 0 )4 ^" c' N: r; q; N2 q
  29. {& B, T4 e& L+ T' T. o
  30.   for(int i = 0 ; i < nums; i++)
    0 M$ j4 [4 ^. }1 F- `
  31.   {
    4 u( W, r5 R/ u5 g+ t
  32.    UF_MODL_ask_exp_tag_string(exps[i],&str_old_exp);
    . |$ b) n! ~. O! M
  33.    UF_MODL_dissect_exp_string(str_old_exp,&str,&value,&old_exp_tag);) j0 d- K$ S7 q& z2 u7 f+ M( _
  34.    if(!strcmp(str,"new_exp"))( z! Q* F, t' \2 x1 {9 e; H/ W
  35.    {
    " X* w! e) N$ {/ }
  36.      //UF_UI_write_listing_window("we find the alreay expressions ==> new_exp and delete it \n");
    ( o" }+ e, l5 v' s6 V/ @+ _
  37.      //delete expression* ?6 w/ J( o2 G1 }: e" q8 r6 E) Y
  38.      UF_MODL_delete_exp(str);8 R; C: `) w$ _8 v9 T& M4 o3 v2 O
  39.      UF_MODL_update();6 n: _, z5 |) b' E" N
  40.      break;
    7 m- m/ z5 J- d* ~
  41.    }/ }, W8 ?. N' d. |5 Y
  42.   }
    + q- {) N4 ^& G' W: |6 O& }
  43. }- |8 _$ D6 h& `) s
  44. //UF_UI_write_listing_window("we can not find the expression ==> new_exp and create it \n");
      L& `  m( |7 I! Q/ l' {  q. ~% C2 ~
  45. UF_MODL_create_exp_tag(exp_str,&new_exp);8 K* q4 D6 a0 P4 T5 T0 f( z
  46. UF_UI_write_listing_window("The new created expression is : \n");
    , }- D- `, d3 F, Y  |* L
  47. UF_MODL_ask_exp_tag_string(new_exp,&str_exp);! D+ L+ q! |/ a- U
  48. UF_UI_write_listing_window(str_exp);
    : T" @. R% V( ~
  49. UF_free(str_exp);7 |- z( [: u" h/ n# z
  50. UF_free(str);
    9 l+ U5 r" U3 W
  51. UF_free(value);
    ! _0 s% E( u$ [
  52. UF_UI_write_listing_window("\n");</p><p>}</p>
复制代码
& d) g) q* c/ c9 c9 k( E/ y
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了