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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
1 k5 Z1 Q+ A2 z- b% ]3 A
Teamcenter ITK二次开发源码分享: 创建一个工作流+ e7 I) ~. B0 U8 ^. c1 U% q
7 y6 `3 _# n1 Q2 A" n9 G
  1. /*HEAD CREATE_A_PROCESS CCC ITK */  G2 J( S: p' ~: Q( X
  2. #include <stdlib.h>  c0 i4 a% ]+ V
  3. #include <TCcore/aom.h>
    7 i7 v9 j0 W) M8 _8 i
  4. #include <tc/emh.h>7 x; t, j0 X# I8 A0 Y% \& q' [
  5. #include <epm/epm.h>3 f" y' g% e+ T" K3 i/ _3 p
  6. #include <tc/tc.h>3 c& B4 O, K% d- q; q$ t
  7. #include <sa/tcfile.h>
    $ ]7 i) S" B6 S+ R: C5 e% N
  8. #include <itk/mem.h>& b+ |) M. [/ X7 e

  9. : j2 k) z3 ^3 F% R: L4 H4 B; ~
  10. #define EXIT_FAILURE 1
    3 V, T) R% s/ D" W# G
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))7 S2 s' W7 V) U' [' h% Y1 M) z
  12. static void report_error( char *file, int line, char *function, int return_code)
    2 X( O7 N- P2 O2 a3 j8 _
  13. {
      W- L5 d5 d9 m; K3 y# g, M5 t$ l& B
  14.     if (return_code != ITK_ok)
    * |- `# u- g& }, M7 \3 m
  15.     {, Q5 Y" |) m8 W& V7 s
  16.         char *error_message_string;! |- i2 g; t( p, B. t! o/ }- L
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);5 U: i2 @  X5 M1 ]: `2 {" X
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    , x1 I  `' }* Q- H3 Y( T
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);4 x, `9 v, _) O! G6 I' p# B+ g& N9 y
  20.         if(error_message_string) MEM_free(error_message_string);" j6 H. O$ i. b8 m4 o
  21.         printf("\nExiting program!\n");7 Z; {7 f$ R8 A; }9 Y
  22.         exit (EXIT_FAILURE);    : o3 z; u; T6 B: I
  23.     }9 D+ e: |) z) T, d5 N, G$ m6 `
  24. }$ C! r/ }2 y: B" n9 P, D$ X5 B
  25.   D( Z9 z, I% j
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))  A# d" n* {/ t1 j6 w; F
  27. static void check_value( char *function, int value )
      p) H. v% u8 t
  28. {& a- q9 e9 E3 E5 P
  29.     if (value == 0)
    , k6 ~4 ^% f  Q& I+ x. a$ a2 Y& z
  30.     {+ m, Z9 K6 s7 c; e: B
  31.         printf ("\t%s is NULL\n", function);3 ^! B9 |- d) D
  32.         printf("\nExiting program!\n");4 \& ]& P! ~6 X% I
  33.         exit (EXIT_FAILURE);   
    + W$ L9 V/ J# m/ f  U
  34.     }
    $ \. V% W5 C. X, e& w6 W( E
  35. }6 M6 w$ x( i$ G/ ?8 U4 c8 ~1 Z) P

  36. 7 Z! t4 Y4 [$ R4 E: J5 p
  37. 0 |* q; i* m6 U; F; o
  38. static void do_it(void)7 E6 [- t6 V% v# ]- T! D
  39. {
    6 Z: N  Y1 ~0 f( [5 z8 A! Q
  40.     int 8 s; l* m. E2 Z6 u% j" d
  41.         attach_types[1] = {1};
    " r" c1 \; h9 }: E: ]
  42.     tag_t 9 ]+ z3 `) b' K% I3 z) Y6 M
  43.         rev = NULLTAG,
    ! q: ~% [0 w/ u' u' j
  44.         process_template = NULLTAG, " Z) V" K. t+ D4 X4 L  E- ]' Z
  45.         process = NULLTAG;
    2 I1 D9 H6 Z: j9 V( ^$ J# c5 P' ?

  46. 3 @2 T; f- }0 k6 E8 Z6 a  H1 q
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );: H' K+ ?  R0 L+ x  j: N* X
  48.     EXIT_IF_NULL( rev );4 L, U! i1 p/ e/ K- f4 [
  49. ( S, R4 R7 P, [0 q2 _  ]1 T
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    4 E, Y$ \$ q1 O7 I& l6 s
  51.     EXIT_IF_NULL( process_template );$ F; F. p+ S9 s& r8 }6 j' w( h

  52. 2 G* b: {" }+ z: n1 q

  53. ) `9 K: a8 T1 ~% O: R# a! p! H! [6 {
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    0 S8 e( v* z: S5 M7 o. e
  55.         attach_types, &process) );
    . J, E& H* ~: c2 w
  56. 8 T# S, Q" \4 O: ~. F7 @3 @7 g
  57.     EXIT_IF_NULL( process );
    6 L% ]. [+ B; X1 x
  58. }
    % p* o  R2 |' D2 U5 i" ~. i2 _
  59. $ J. e, N6 e; |1 A3 ?, @/ w
  60. int ITK_user_main(int argc, char* argv[])
    - u; g" W! N  X# f( A6 k' Y
  61. {1 c6 T6 Y+ y! Z" E. d. i8 o( @
  62.     int
    - O* G" X* Y- q9 S! l
  63.         status = 0;
    $ l2 Q* g5 s" R+ }
  64.    
    / ?1 f. J- K- E  h1 ^
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );) h4 L2 Y( R5 H" B
  66.     status = ITK_auto_login();
    1 ~" |7 A/ q3 E+ v
  67.    1 [$ S" M& d( G# e1 j' _" {
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    ; H* `. v! ~: S6 s% V
  69.     else1 ?$ N5 }: J4 Y) @  l4 R3 Y
  70.     {6 q+ O* W( q' R, |! @
  71.         printf("\nLogin successful!\n\n");
    ' I" B! x! Z% S/ B; E0 D
  72.         ITK_set_journalling(TRUE);: }4 n; U& V" D# ?
  73.         do_it();
    - i" _" t) d* i$ o4 z
  74.     }
    % |* s" |% t! e) B5 C
  75.     ITK_exit_module(TRUE);
    7 F( C& s' \' ]
  76.     return status;; B, b/ ]% B3 S1 ~. Z
  77. }
复制代码

* k9 u4 x, O4 H
$ t3 y; j% d/ e" I* ~3 Z
2 @  n* K; m2 {( R
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了