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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

! p* R: w0 @+ X% r% `8 i6 `9 ?4 aTeamcenter ITK二次开发源码分享: 创建一个工作流
2 w7 z4 R8 Z/ g1 N% }0 P1 r2 [. }7 V2 f
  1. /*HEAD CREATE_A_PROCESS CCC ITK */7 P$ z; ^5 m: H
  2. #include <stdlib.h>) n' C+ `8 x7 H4 x4 W  A
  3. #include <TCcore/aom.h>
    / D; q# A+ o! l
  4. #include <tc/emh.h>
    $ @" Z  w$ S& x# [1 y, R* j( D$ Z# c6 U
  5. #include <epm/epm.h>2 G4 T/ c6 s4 ~" a9 l  x
  6. #include <tc/tc.h>) c' L) C: m3 @- r3 I, z. t
  7. #include <sa/tcfile.h>
    / g. w  r6 P5 D" r6 |
  8. #include <itk/mem.h>
    & i9 l7 F% ^; ^$ M8 Y* X

  9. 9 d* m0 g1 L0 a  W* z
  10. #define EXIT_FAILURE 1
    8 ^/ O! o! V3 m
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))& ^5 l; F) U  l9 k$ O3 Z' F7 \' l
  12. static void report_error( char *file, int line, char *function, int return_code)
    & {' E" h4 T: g% J: e8 _1 G
  13. {( |# M5 X; ?; S: A8 l3 t& K- j
  14.     if (return_code != ITK_ok)
    ( i) C% g9 T8 n4 \! s  `; V2 ~
  15.     {
    8 q( W2 c/ E5 K; q; z
  16.         char *error_message_string;
    0 V0 g3 ]  e6 `4 e- [" ?9 ]
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);( m5 H6 U$ k! {% i. J
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    5 O* t2 B4 X$ }+ E- e/ f; H
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);) D* U) c) B2 X
  20.         if(error_message_string) MEM_free(error_message_string);& F2 x* v4 r* K' K: y; i8 v+ c* ^
  21.         printf("\nExiting program!\n");4 B% I  w* e  s  _. o8 L
  22.         exit (EXIT_FAILURE);    ; g  j( s& u# Y: Z/ H' u
  23.     }
    + k' i( N. i2 q# |( k. l" R' ]! q. d
  24. }
    # `; K- v8 u5 w% M( @

  25. $ t2 l& r4 n0 ^  K
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))% D! O; T0 `# C: k
  27. static void check_value( char *function, int value ); T5 r2 }% G& O
  28. {
    3 J7 A! P$ h, K  a; B8 L6 z- R
  29.     if (value == 0)# ?/ A: o: O/ _3 A  h- m4 ^
  30.     {8 Q4 W' M7 q; W: O* |" N
  31.         printf ("\t%s is NULL\n", function);0 D5 z3 s& D& \
  32.         printf("\nExiting program!\n");
    : \3 D$ C0 `- N
  33.         exit (EXIT_FAILURE);   
    0 }7 _7 E% y+ i
  34.     }
    0 d2 F; u; ]: U7 x; m. _
  35. }. b) O, S0 @$ S2 M1 c
  36. 8 s1 ]+ ^# X) Q

  37. ; X, Q% ?+ t9 L
  38. static void do_it(void)! i% q! v& R7 L& T9 U+ ]9 O1 _5 ^
  39. {& }/ p7 U$ F; D+ s
  40.     int - o+ N" ]5 W" @
  41.         attach_types[1] = {1};% B' Z+ _& R0 g3 B% N' C4 t
  42.     tag_t
    8 T7 T6 y/ z" V8 _# i) L, v) _0 j* K
  43.         rev = NULLTAG,
    + {6 c2 E) d+ X! r! r' h: T
  44.         process_template = NULLTAG, 5 d. v3 M  N; Y) N. k, F
  45.         process = NULLTAG;
    0 }: `' y) s0 k  T# S
  46. # P# g+ y; k: o! j2 |: L- m" Q
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    2 Y+ U, i+ Q: P: j) X" {' W; I
  48.     EXIT_IF_NULL( rev );1 \7 w& z. n- C5 X8 S4 ^
  49. " Z& |0 y, m" ~8 r. b" y" m
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    7 n. ^+ J) [, T* }: d
  51.     EXIT_IF_NULL( process_template );' ]. B) o; {9 f$ y; k: v

  52. $ j9 N( Z, |' A! q

  53. & _$ K  H* V, e, B0 ]. ]
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    " C" U# @) h! B3 v
  55.         attach_types, &process) );3 V1 q. |( {$ p; |1 a

  56. % w, r  x9 F& o6 [
  57.     EXIT_IF_NULL( process );
    $ M9 E9 ]5 k" X1 Z5 U& J$ p
  58. }1 V4 V) r! b7 f( k& ^  G

  59. ) P0 H2 ~8 [8 d8 w- X) X. u
  60. int ITK_user_main(int argc, char* argv[])
    % G# R" b' A0 O" d% d& M
  61. {% B+ l) W4 Z$ x4 z+ F
  62.     int4 l; L, i  ?4 C3 @( B
  63.         status = 0; 3 i: K  a* h! q! J0 C
  64.    
    " Z1 d: ]; i' q
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );5 C  z$ F3 E2 O: j' Z4 W" t; Q1 Z
  66.     status = ITK_auto_login();
    2 }' _8 w2 v$ h. e, B$ A
  67.    
    * z/ c7 f3 d1 {; L9 `
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");: Z: P2 R9 c& Q! w4 X1 h" z- c! U; K5 Q
  69.     else
    , ^8 a! w% b9 S) K
  70.     {) r$ k+ F/ ?  `8 T, {% K3 W# i
  71.         printf("\nLogin successful!\n\n");7 }% h& U3 [1 ], l# l& w( o$ T9 M
  72.         ITK_set_journalling(TRUE);
    - b# ], l5 K# ]5 N" V
  73.         do_it();% L. q/ A0 G& N8 z/ N
  74.     }
    - [( I' l5 |% _& ~2 M1 d9 |0 ?5 |
  75.     ITK_exit_module(TRUE);
    ; S& G/ u$ ^! b2 g2 }
  76.     return status;
    , S  ~3 v1 v( u9 V. p  n7 B
  77. }
复制代码

+ `8 ?+ D% ?4 K/ y. W2 Q+ e
/ z& G& H2 Q# i9 v' y. i& P5 P) F* p9 a( T% n/ D& {
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了