PLM之家PLMHome-国产软件践行者

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
9 q! G# n* ~1 d0 a6 V) W1 e
Teamcenter ITK二次开发源码分享: 创建一个工作流
  U- M3 e: A- [  H% }1 G5 F( N3 Z0 C+ g7 `- N
  1. /*HEAD CREATE_A_PROCESS CCC ITK */5 ]% a7 ?; L3 b
  2. #include <stdlib.h>' {' b. N* p7 q1 H( y4 l
  3. #include <TCcore/aom.h>3 _" `! ?6 g: j$ J
  4. #include <tc/emh.h>; _# z1 k# b5 }* T
  5. #include <epm/epm.h>% \; p! {$ J/ ]' _; V1 Z: R! @: Z
  6. #include <tc/tc.h>7 V0 D' @- s/ w; |( A
  7. #include <sa/tcfile.h>* p  X: N- v+ |- D: w
  8. #include <itk/mem.h>( j8 ?2 U  ]0 a" R* i( |( Y

  9. $ X% {3 \0 Q! C' E4 o6 I
  10. #define EXIT_FAILURE 1 * T, s8 W6 W8 S) V0 s
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))2 T0 U, l$ {- `9 R
  12. static void report_error( char *file, int line, char *function, int return_code)5 V. H9 w+ B% X
  13. {8 A7 ~0 A1 `+ X% `2 G. l3 ^
  14.     if (return_code != ITK_ok)+ i, |+ B2 k; p+ ?4 x
  15.     {
    5 J2 z" h  X! S& G4 U! \, Z7 a2 f
  16.         char *error_message_string;1 C* r: K! }0 t' h
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    5 i  O1 b5 l* ^
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
      U6 a' j# X; Y3 c7 [+ A: @
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    4 u1 y6 {# [+ [% \" c
  20.         if(error_message_string) MEM_free(error_message_string);5 H0 P) t; ~  F( H6 h: m
  21.         printf("\nExiting program!\n");
      _; Y7 ?- f: j) ^
  22.         exit (EXIT_FAILURE);    1 m9 T7 z2 W% e1 E" C7 t9 I% \
  23.     }$ X: {. D8 x: b( L
  24. }
    3 Q9 Q+ }5 P4 Q& d  H% O
  25. 7 |1 j9 T0 w4 _7 x& A
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    ' _+ V+ [( N; e+ [$ m
  27. static void check_value( char *function, int value )+ K2 W  q% A  {3 s2 Q
  28. {
    ; _, ?1 T6 K6 k. q: ^2 {
  29.     if (value == 0)0 [/ p6 X! T2 ?7 l
  30.     {8 l/ j2 \' Y* ^' h& V
  31.         printf ("\t%s is NULL\n", function);" h, g2 q+ z! z% p  L6 h
  32.         printf("\nExiting program!\n");2 P8 `" A- Z* g0 V2 q& }
  33.         exit (EXIT_FAILURE);   
    9 [: ]! |$ [& V
  34.     }
    / a( ^' A+ S! ^% O; s2 \9 U  \
  35. }/ _/ a# K8 H  S" G# \
  36. ) C) P- ~$ t7 ~$ V2 M

  37. ) X/ Q. O, _  ?
  38. static void do_it(void)
    : F, r0 b( E. K0 C: `3 B
  39. {
    ! b7 `  A9 ?- ]7 _1 L7 @6 S1 T
  40.     int ) z) C+ F; k- p* X. D* u
  41.         attach_types[1] = {1};
    5 Q0 [$ R& ^) }! ^5 J1 }# F
  42.     tag_t 2 A+ N' ]9 u9 d, T, B7 t
  43.         rev = NULLTAG,   E' p& x  b+ w; A) g$ ?, Q
  44.         process_template = NULLTAG,
    ) X* C" Y6 X& d
  45.         process = NULLTAG;
    ; E3 A7 Z$ w) w$ h" j2 A

  46. 4 e, H+ S/ Y) o6 h5 _
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    & {, S1 m0 E& N  Y+ [/ ?% Y
  48.     EXIT_IF_NULL( rev );  z" l6 S) F7 x2 A$ }( l
  49. - }: p7 F+ X: I* r7 d5 L0 R6 S
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); , q. x. k$ m$ Z  u# u
  51.     EXIT_IF_NULL( process_template );
    6 x9 W5 x+ U* o# Y2 C0 f7 A

  52. 3 K' ^8 r5 c6 Z: n& V: }5 Z

  53. 8 u5 G$ k+ h) C# W) r% ~2 v
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, : e9 ~7 y( H% Y' a& k
  55.         attach_types, &process) );
    ! k5 ~5 E' ?' Q! n
  56. 5 B7 y1 c& d8 j
  57.     EXIT_IF_NULL( process );
    ! s' ^4 r1 x3 \
  58. }& o( `8 U6 V8 D% l: E

  59. + v, U* U7 K$ `- N/ g! w$ Z4 @, l
  60. int ITK_user_main(int argc, char* argv[])' ?& f3 W1 \9 `3 y8 j
  61. {0 F9 O5 C0 x/ P6 @/ F: Y" C  i7 M
  62.     int
    % F/ M" _0 o/ ]. ]
  63.         status = 0; 4 }' J- J/ W1 h( _% m
  64.    8 h+ ^% F' q# U
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );4 y2 Y/ b1 S& q1 S" K
  66.     status = ITK_auto_login();
    - Y3 W) f5 b/ e$ F1 [
  67.    
    / J% Y2 s  U+ X- A) F1 W
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    $ }* c' U- m" Z$ ~* Y
  69.     else* k' Y, E/ o- T
  70.     {. |& g( g2 l* C, `1 H5 j
  71.         printf("\nLogin successful!\n\n");: |  }9 U4 j4 @! Y- E+ g
  72.         ITK_set_journalling(TRUE);
    , @) V! q* G% V; ^2 c
  73.         do_it();6 g/ {: e2 A) f$ }3 \$ r% n/ \
  74.     }; ~- t& N  X* Q$ Q, _
  75.     ITK_exit_module(TRUE);
    . F# Z, c' h) u$ x! j
  76.     return status;, S4 ?) g6 d- e
  77. }
复制代码
2 z4 p0 r! B- y& {& \! y8 H

3 _3 I5 }8 T) c9 A, i2 \6 D( [, @' F" O9 }" z1 _7 Z+ A( 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二次开发专题模块培训报名开始啦

    我知道了