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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

2 }3 b& o. a* j, O7 h* BTeamcenter ITK二次开发源码分享: 创建一个工作流6 T  ~% ~! c- m8 {' ^

* B2 s; L9 @7 \  J+ M! M  ~% [
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    2 j! o4 `( e/ g+ s8 D
  2. #include <stdlib.h>/ l6 v9 ~0 i. f; T1 H$ }5 ^8 X3 M
  3. #include <TCcore/aom.h>
    7 x% }( i$ r- \1 I
  4. #include <tc/emh.h>
    ' [. l. A$ a1 V6 r- x1 S
  5. #include <epm/epm.h>
    4 `7 Z* V8 u- g5 z9 C, D# P: n! K. W
  6. #include <tc/tc.h>1 Y& U; f6 Q- ~7 Y( W3 V% v
  7. #include <sa/tcfile.h>( d! S/ @) c- a- s. j* s/ f
  8. #include <itk/mem.h>3 W" z2 ^  l- G2 y+ M
  9. * g7 a9 A8 h6 H/ U$ L/ e! ~
  10. #define EXIT_FAILURE 1
    " b4 `+ j2 ~) x1 M, i
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    * m- k; M; C; N- P- l/ J0 ]$ k2 _
  12. static void report_error( char *file, int line, char *function, int return_code)* q8 g. D3 ?' V1 Z7 T- c) ~& \
  13. {
    ) x$ h$ _  p  d, J% S1 D! K9 e
  14.     if (return_code != ITK_ok)3 C; h! x! n$ q  q2 D% A& M. \: a
  15.     {+ ?) P1 F/ O! [
  16.         char *error_message_string;" i# \/ N2 Y4 b1 m5 G1 M- Q$ B
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    " C/ Y% q" |$ ]2 [
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);4 D8 ]7 T0 H5 A. p
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    ' ~% _, V' q: U% T
  20.         if(error_message_string) MEM_free(error_message_string);
    9 P7 U9 [7 J+ L( R/ T8 i
  21.         printf("\nExiting program!\n");" `$ X( T! h8 _! a/ x
  22.         exit (EXIT_FAILURE);   
      s' {) j; {7 c8 d$ r& ^2 i6 m0 n
  23.     }+ Y% E! Y  w4 t, o% c7 J
  24. }1 N3 c7 m5 \4 J" z3 d8 n0 v, e. o

  25. 0 {' {! p8 U  I! f% b$ D: T
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    0 d. B2 i6 e8 h" a, k
  27. static void check_value( char *function, int value )
    9 N7 Y' K5 q# I& T! F* a# n
  28. {
    - L" J* w5 s# y) R* J
  29.     if (value == 0)
    / B8 f; F" e5 F2 w7 @/ D/ v
  30.     {
    5 G/ ~* ?. |3 e' G, h# J/ w
  31.         printf ("\t%s is NULL\n", function);
    $ _6 i% F4 x) K7 V2 c9 k' H4 G
  32.         printf("\nExiting program!\n");
    & n2 p1 n4 p. o+ H, N
  33.         exit (EXIT_FAILURE);   
    : Z. O$ i  p/ w  W; m2 R
  34.     }5 e! [, O  p( o7 t
  35. }+ K9 {2 ]; ?% D( ?8 ?3 K

  36. 6 c7 ?" J% ?6 A% \/ A& _& Z& l

  37. " n9 f" g4 n2 `5 Z; [& i# D/ G5 ]
  38. static void do_it(void)2 a( j4 o* Z8 t) s; _
  39. {( a% u3 A4 N8 v7 W
  40.     int 1 T1 @7 @; x! L4 ?0 v! E
  41.         attach_types[1] = {1};
    + x7 @: ~/ Q# G/ G. r4 Z
  42.     tag_t + P. S) d6 h/ n$ e) J
  43.         rev = NULLTAG,
    0 D3 c/ I6 P3 a7 I
  44.         process_template = NULLTAG, + L% M, Q7 F/ ?6 u
  45.         process = NULLTAG;
    ( G0 o7 _, `8 y2 m4 N" `

  46. 1 ]) b! F+ D4 f* a$ L% y. }3 w
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
      ^; {' m$ t& w7 ^$ E
  48.     EXIT_IF_NULL( rev );; E; [8 X- T3 H* [' {

  49.   p6 r! h% j- r! Z
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    0 v1 |' @8 W- f: t
  51.     EXIT_IF_NULL( process_template );
    / M$ m& c1 ~: V) O

  52. : {9 [/ T3 }) S( G. B- v

  53. * g- x0 g% a8 L) w, `
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 3 ^! D$ }6 L% k( |6 u
  55.         attach_types, &process) );4 N, s- T+ F* M+ I$ T

  56.   ^. o9 Y7 l/ c
  57.     EXIT_IF_NULL( process );
    ( n; X( u; |% `8 @8 p: c. R6 |
  58. }
    ' A* G/ f( ~$ F2 }) s$ X0 V9 K
  59. " A9 C5 {" N3 @1 d& e
  60. int ITK_user_main(int argc, char* argv[])
    ' h: C( d7 @) p: I3 R9 n1 \
  61. {# z6 q/ h& ]8 q) s! y
  62.     int
    9 V& A9 x( T! `# l& Y0 C
  63.         status = 0; ) r: `6 W- q/ H1 b
  64.    ; Y8 q2 p5 v, U
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );1 i& D" }& u+ n. d; g" y& u* z
  66.     status = ITK_auto_login();  Z3 j0 z  _* k
  67.    
    9 e" k9 r- e. d4 [- B; {1 v8 ]
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");1 w' Y4 N7 m$ G1 _4 v
  69.     else
    0 N) M" V9 u( W1 X
  70.     {
    , }7 B. k0 c' X% g& I. I
  71.         printf("\nLogin successful!\n\n");
    8 ]* X3 j' l$ n. h0 v: y; f
  72.         ITK_set_journalling(TRUE);% X. e) T2 z" z1 e
  73.         do_it();3 f' N' C% O# D* A
  74.     }: U+ q  C% q  ^7 k: S" ~9 f
  75.     ITK_exit_module(TRUE);
    " ~8 ?0 f% y3 a! j
  76.     return status;8 G8 B- H1 I) t* O9 j
  77. }
复制代码
  r. P# P5 ?! `& X" m2 |- Q

+ K1 D0 T! o1 W. W2 H7 r. ~: M6 u) ]- X+ l
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了