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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

4 L  @1 S* l- H& l5 ~Teamcenter ITK二次开发源码分享: 创建一个工作流$ H: c# l2 A- P% T4 Y) O
$ ?) d* b& e4 p$ d; q
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    % ?7 `1 w1 Q" b% [$ n* R) s
  2. #include <stdlib.h>
    7 m3 k& N" ?; G$ ^
  3. #include <TCcore/aom.h>
    2 z" _6 j9 K* N8 Y$ W  |' u0 h
  4. #include <tc/emh.h>, @4 c) T5 k& q. v# k+ ?1 g
  5. #include <epm/epm.h>
    5 ]  n+ I# S& n) ?  W# n3 @  \7 `, S
  6. #include <tc/tc.h>' f8 c/ i! c8 l& K, J: g- I
  7. #include <sa/tcfile.h>
    ; N, K9 p1 I2 F$ D
  8. #include <itk/mem.h>
    2 ?9 g7 R4 H/ |1 k: O" V' P

  9.   U" l1 t0 I  n
  10. #define EXIT_FAILURE 1
    6 s& D* Z( j" c3 ]; l, A/ E
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    , `3 ^. ?! b+ u$ J3 p
  12. static void report_error( char *file, int line, char *function, int return_code)
    0 ?) w2 k, l7 Z9 k
  13. {9 x8 y9 B! y' Z# T
  14.     if (return_code != ITK_ok)
    0 `" X% a: Q3 R# }% H
  15.     {) S- T5 Y8 }/ ~- g6 v+ i
  16.         char *error_message_string;1 Y* D7 C$ l, b; x
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    2 b8 n9 S' }# x4 q0 D- Q' c$ Z
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);1 i4 }0 S8 ^3 v6 r; v
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    " M6 W1 U7 a6 X# W8 t3 I5 J
  20.         if(error_message_string) MEM_free(error_message_string);7 C' E6 H+ C* v9 \% H" o" e( [: g/ c
  21.         printf("\nExiting program!\n");8 k* I  M7 j% [7 @
  22.         exit (EXIT_FAILURE);    3 G: p1 C7 r( x6 K
  23.     }
    . {! M7 A8 t1 s$ T0 y, n
  24. }
    1 D  C/ }4 j- A3 z. i+ @

  25. $ M& [6 E) j1 d5 P
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    ! {! e, f7 T0 |" Y( M1 k
  27. static void check_value( char *function, int value )/ K+ L% b! |. s) W
  28. {) p3 O; d0 V/ l9 W: y' a
  29.     if (value == 0)
    ; w; |# j# b) ]" i! c+ u$ j8 b7 T8 z  A
  30.     {
    ( \" @$ F" D( S* h, H
  31.         printf ("\t%s is NULL\n", function);+ V0 ^; y/ D; r& r7 J3 K
  32.         printf("\nExiting program!\n");/ ^* c" \1 x6 g, [
  33.         exit (EXIT_FAILURE);    + h' R9 z, ^) w. y, ?5 Z! ~
  34.     }( O9 @: p1 R; z, s, h+ i. u6 }
  35. }
      i% n" N# `5 u2 j
  36.   W, r/ Y1 _( ]' k* B

  37. / n" f2 P( K* i! W& ]
  38. static void do_it(void)6 C, s: a) }3 W  W- L' _% x
  39. {+ N, N; f  }) L6 }" ?
  40.     int
    / l, w5 w- h& \8 t
  41.         attach_types[1] = {1};# W( q& p. U: Q+ Z) p
  42.     tag_t / {! A0 E2 _! A) u7 T. W$ Y/ k
  43.         rev = NULLTAG, : u1 Q+ ^9 r1 \; Q5 J) V
  44.         process_template = NULLTAG,
    . s# s6 c+ a. l7 d$ L0 [! l2 l4 D# F
  45.         process = NULLTAG;
    1 G$ X8 v+ \: o$ X

  46. 6 F- _- f! @4 A) u
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );4 `5 ]5 n3 @: z% j
  48.     EXIT_IF_NULL( rev );
    8 D. F' y6 Z/ C8 D5 l: v

  49. , L# a! I1 S- p
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    2 J# [# M3 c) Q. P8 X: S
  51.     EXIT_IF_NULL( process_template );
    - q( k; @  [( X: `3 Z' O
  52. , T/ e8 a# g2 f  v" V9 W
  53. , J9 x9 y& O" w
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 2 V& U% T, T0 Q, h
  55.         attach_types, &process) );
    6 S" g9 C4 Y& m! X+ k
  56. ! s. {2 Z& O% ^' h+ M" X& I/ g
  57.     EXIT_IF_NULL( process );1 i# g& K/ T2 ^" @8 b
  58. }& B6 W# A6 n  ^
  59. ; f$ r$ p9 ?% n1 q2 r0 l, {3 R
  60. int ITK_user_main(int argc, char* argv[])5 E  Y+ z1 r' d# m" o& ?) J! s
  61. {7 F5 C# o: H5 F
  62.     int+ F! x/ W; ~( m
  63.         status = 0;
    0 Q6 W& w; [2 `9 ?- W& H
  64.    4 U/ X% h3 ]5 u  @. D* f7 P" p
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );) X% N5 x! r  X
  66.     status = ITK_auto_login();4 t* s) L2 W) T* Q, R3 c( R
  67.    
    4 y& P8 S1 m7 V7 T8 ]4 H
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");/ \8 i9 b1 H- s# b" G
  69.     else8 K, Y2 V% T3 E: O& N, x
  70.     {
    * j" g7 r) o! n7 {2 M: N
  71.         printf("\nLogin successful!\n\n");
    . C9 _* m# k8 S6 H' V+ ^$ i
  72.         ITK_set_journalling(TRUE);
    ) B& j6 o2 a; g
  73.         do_it();3 W: F. N7 U) s6 `3 @5 D
  74.     }+ Y- r3 J, h  T- h5 n. ]
  75.     ITK_exit_module(TRUE);
    / s7 Z: r0 }& B0 J
  76.     return status;" ?7 n/ V8 v% R: j, j
  77. }
复制代码
/ A2 R, T+ d+ M, s! H; ?

' ?$ U+ v$ E6 i6 [! ?0 t. b% w& m8 |9 K9 i+ 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二次开发专题模块培训报名开始啦

    我知道了