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

teamcenter ITK二次开发源码分享: 创建一个工作流

[复制链接]

2014-1-15 19:30:29 4993 0

admin 发表于 2014-1-15 19:30:29 |阅读模式

admin 楼主

2014-1-15 19:30:29

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

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

x
7 F( R. h# U7 z+ v  F- F, _. q; O
Teamcenter ITK二次开发源码分享: 创建一个工作流
6 F/ q+ ~2 A) {: m5 h  I
9 j& N- A9 L( U
  1. /*HEAD CREATE_A_PROCESS CCC ITK */9 t  ~2 U4 h- g, f7 c; }8 z
  2. #include <stdlib.h>
    , n3 Z# N2 e; _" [/ J6 Y
  3. #include <TCcore/aom.h>, Z$ L1 D4 _: k1 [0 r& q0 i
  4. #include <tc/emh.h>
      K! V4 q5 c: a; o5 o: Z* _: o
  5. #include <epm/epm.h>) q& b2 L5 ]% n- A
  6. #include <tc/tc.h># R/ V5 j! Y- B: b7 V# h
  7. #include <sa/tcfile.h>
    4 `$ r2 H6 h6 L: q3 \$ w
  8. #include <itk/mem.h>; G# t; Z0 U+ w- ?
  9. , j$ W# t9 Q/ }+ p
  10. #define EXIT_FAILURE 1
    # l4 k& d' n; N' s8 s
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X))): ^4 @( H( j& T9 T; f1 C
  12. static void report_error( char *file, int line, char *function, int return_code)$ ^( N; |& K- Z
  13. {2 D) u8 r7 j$ V# A# }
  14.     if (return_code != ITK_ok)0 n9 t* {9 {$ Q. c; e1 Z+ e7 Q1 f
  15.     {
    : k; J) g8 \( A" r2 `
  16.         char *error_message_string;" ]; |6 u. a0 p4 m- y( E
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    7 k! B  m: @( s% l
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    8 q8 c* e% a7 M  U/ H( p2 [# Y
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    3 [; u6 W3 z5 q
  20.         if(error_message_string) MEM_free(error_message_string);
    / K; X. k7 [( m3 ]2 r
  21.         printf("\nExiting program!\n");+ B( D  g7 M) P3 r# S1 q# V- f
  22.         exit (EXIT_FAILURE);   
    5 ^! p9 h+ X/ ~. m+ v
  23.     }
    2 L2 k! c# i# H4 |+ D5 g
  24. }5 m9 ]7 F7 R: A+ F% \0 W
  25. # n+ O% n6 ^5 a9 H9 E; a
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    * l  @3 l& R7 v7 n1 s/ |
  27. static void check_value( char *function, int value )" |5 e+ ?/ j( B0 ?) O" D
  28. {
    + A9 j0 z9 u1 |3 V% }0 K
  29.     if (value == 0); G/ }5 X7 _7 E3 X7 E, L, s
  30.     {1 s3 |- b* L6 w! s8 e7 A
  31.         printf ("\t%s is NULL\n", function);' A) p. H9 O, W. x9 \" n% P. Q, C' c
  32.         printf("\nExiting program!\n");
    & A( ~. z* ~* a! {
  33.         exit (EXIT_FAILURE);   
    4 T1 z6 s% k* s0 q5 e
  34.     }
    : E$ k+ o- [+ [2 g0 A
  35. }
    . e! f8 d8 v! H# n

  36. 0 E: W: r% T  K8 G) h0 E

  37. 9 I. C  k+ z3 w$ S: R% L( _; P
  38. static void do_it(void)6 P9 ]# `1 \- b4 n' k9 w
  39. {
    * Q+ x1 t/ a: T8 `2 a
  40.     int
    " s2 ?% \5 h9 g1 a
  41.         attach_types[1] = {1};
    4 p% n+ {1 m# u" p6 f
  42.     tag_t
    - C1 F& o" \5 }7 [
  43.         rev = NULLTAG, $ Q( S, A1 e( H; g0 p
  44.         process_template = NULLTAG,
    8 `, n3 }: L8 K
  45.         process = NULLTAG;7 m. ^$ P. y, L; p

  46. 6 [# h1 W# _7 n# V8 |" X
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    - c+ b! p/ g( a8 w
  48.     EXIT_IF_NULL( rev );
    ( a: @5 V# L5 B

  49. - H  x# L8 Q* p
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 2 E+ v6 t; [! z2 u
  51.     EXIT_IF_NULL( process_template );6 _1 Y  W  j, y. S  b1 H$ T

  52. 1 b! ~6 V( q% t* Q) H" k
  53. 0 ~( d, X4 b7 K+ z
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    ! O" K  b7 S- D, ?$ V* V# u
  55.         attach_types, &process) );
    , f+ D2 m! p& ~
  56. ( Q! r  G" ]8 @" ?  F" A" t
  57.     EXIT_IF_NULL( process );) q1 x0 z3 p; s& w. N3 i" M; X( _
  58. }( n4 i+ S1 }' Q1 |. M: M- C+ B
  59. 3 \+ _9 L3 q+ i4 l1 K
  60. int ITK_user_main(int argc, char* argv[])
    3 v6 |2 b6 b- f( n
  61. {  z! d/ r4 L/ u6 n
  62.     int; I1 m: a! Z8 R8 ?2 G
  63.         status = 0;
    3 B+ @+ a" a# S
  64.    
    $ Z: T* X7 l2 d" v- ~5 K. ^0 z
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    . p3 x/ j3 Q% j  j" k# p
  66.     status = ITK_auto_login();
    ! _; j' ?" v8 v, a% J' J
  67.    
    2 S5 O0 l+ u& V
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");' k8 k3 d. Y; Q2 g2 O
  69.     else
    8 O1 L! P) e9 a5 W
  70.     {
    9 e- m' h: @  X9 B+ N9 H. @
  71.         printf("\nLogin successful!\n\n");
    - I7 Z- e6 u) R; e" a
  72.         ITK_set_journalling(TRUE);
    + P: C( z' f: g
  73.         do_it();
    * A$ A2 k/ c' T: I
  74.     }
    6 s5 ^! y7 C% j8 [" P# }
  75.     ITK_exit_module(TRUE);
    , J7 [7 o: N! O, c4 s; |1 k+ f
  76.     return status;$ G& M5 D% b, D5 Q, H" k  c
  77. }
复制代码

) {4 Q# D9 I. P1 c' u5 }
5 b2 |- s) J6 e- z3 V/ h6 m; y1 A; S* w3 P" h3 b
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了