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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

( p  c% Z- _" i3 d$ j" a. Z3 U% t$ NTeamcenter ITK二次开发源码分享: 创建一个工作流$ s9 ^- k& w1 K* b: g9 P

- E! t% \8 K* x, ]! }: z
  1. /*HEAD CREATE_A_PROCESS CCC ITK */  h* }8 Q2 l3 n$ w' v
  2. #include <stdlib.h>
    ( W2 Y, {2 C9 D
  3. #include <TCcore/aom.h>8 `- ]$ w$ V6 B; x# }
  4. #include <tc/emh.h># ~& k1 b  m+ @; R% D/ x
  5. #include <epm/epm.h>
    ' a4 E3 ~3 C" B( p2 y. U' V( v
  6. #include <tc/tc.h>( U6 M7 N' f' d* @3 S4 ]
  7. #include <sa/tcfile.h>6 n- |0 y) L' ]
  8. #include <itk/mem.h>7 \4 m5 i: o6 ]1 n. Z/ J2 m7 b
  9. 8 P/ @9 k  I7 e; O& B* G4 ^
  10. #define EXIT_FAILURE 1 7 n6 A6 u1 u' V% f
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X))), \) I1 a1 D2 F% b
  12. static void report_error( char *file, int line, char *function, int return_code)
    ; V: {4 u% e3 r
  13. {
    * L  ~# m( l- y( J9 `
  14.     if (return_code != ITK_ok), q7 q* M) \; E) E; ?
  15.     {
    ; p, V$ p  w. R3 T9 A; P! t
  16.         char *error_message_string;
    4 a8 Q3 M# V0 t& q0 K' C
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);; \$ i' U: V' e2 s! r7 l
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    7 y/ c4 [0 X1 _
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    % c: D) ~7 N: C7 l/ j2 `
  20.         if(error_message_string) MEM_free(error_message_string);# n; i9 S  X6 r% z% z7 z" \
  21.         printf("\nExiting program!\n");: ?7 \2 H$ n0 M& }, y9 h2 K
  22.         exit (EXIT_FAILURE);   
    5 c0 k7 K6 {% V* V5 N; N- x
  23.     }
    ( \4 E$ G3 I4 g8 G& g, d- {. w
  24. }
    * s. E  m! M" g  \. {  Z
  25. 1 z* x) |1 y$ Z( x3 t: ?0 I
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    ) N; d8 a  `9 ?( T
  27. static void check_value( char *function, int value )
    6 a7 z5 ?: l6 x% |
  28. {* ?( ~2 K& H4 Z
  29.     if (value == 0)
    4 {% V: s8 A$ F" ?9 h
  30.     {  G0 I: u. \; Q& i( x8 J3 l+ C
  31.         printf ("\t%s is NULL\n", function);- e7 x/ {5 v7 W1 z' M5 e
  32.         printf("\nExiting program!\n");' |3 j  h/ v8 |. d, W2 ~
  33.         exit (EXIT_FAILURE);    5 W: X4 y/ |: y( {, t' f
  34.     }
    ) ]0 R. \2 m5 C" m9 O: P; B
  35. }
    8 F) Q1 d$ ?' l# t

  36. " o% D2 s) b* T! c

  37. 2 E" q* r. J7 [2 {! c$ D2 [8 C% Y
  38. static void do_it(void)
    % Q3 b0 v* q0 }) y: V8 ?: v
  39. {
    8 k7 M& Q/ B$ x' t
  40.     int ) G: ~* e' \' t8 `. W
  41.         attach_types[1] = {1};
    $ h9 K/ q' t, ]2 f; W
  42.     tag_t 3 Z1 ~% `3 M( z' ]% L2 B( x
  43.         rev = NULLTAG,
    % a3 k; @: A8 M  @- Z
  44.         process_template = NULLTAG,
    ) x( S8 V- H% n6 w* U9 `; I1 G, \
  45.         process = NULLTAG;+ d' _7 Z" c* |8 H
  46. $ [" W3 F) \" b* J
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    ( C8 z( j/ H' ?+ B: S( F
  48.     EXIT_IF_NULL( rev );
    1 g$ I  d1 Z8 e. U+ f( \  ~. m) n

  49. % a- S* y- h3 o% E4 [6 |6 T9 D; `- Z
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 5 M; }$ L) s  c$ Y
  51.     EXIT_IF_NULL( process_template );
    ! F, n, ?4 {1 o# p% L: |4 W5 Y3 U

  52. / Q, \. P: E1 W3 ?% i% u# Y
  53. , n" w+ J9 u5 e! l& D& ~
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    ( J. `; }! T; ^; F
  55.         attach_types, &process) );3 u. q4 i$ F* s; ]5 b

  56. 7 u# o6 z' o2 l8 j8 n2 q& E5 S
  57.     EXIT_IF_NULL( process );) P3 N( F: J$ l6 O
  58. }
    ; l- v9 V7 I/ L
  59. + w) `4 e3 z9 N/ Z; ^8 m
  60. int ITK_user_main(int argc, char* argv[])
    " k0 F# b1 I# A/ S
  61. {
    ! j2 s  R7 v, [, k3 G) r
  62.     int
    , M2 [5 F* ^+ I: L4 I2 q
  63.         status = 0; ' A/ Y5 ]6 j0 p% F, O
  64.    + ?$ o  v' J: [0 X
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    ; F) U  ?, g6 @" x# ^, c' {2 Y, o) @4 H
  66.     status = ITK_auto_login();
    ) X7 d* C% R5 b5 `9 W% B" I
  67.    
    ; j* r$ c2 E: T" A
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    + s$ C1 U! W  Q  |- f
  69.     else
    : ?( c6 W3 o# ?
  70.     {8 Z. S& P2 ?. u2 J0 c( [0 v
  71.         printf("\nLogin successful!\n\n");7 ~( [+ _& u( k1 V% g
  72.         ITK_set_journalling(TRUE);
    + ^. ~" H% j  V# Y- U6 B9 G( k
  73.         do_it();
    % ]# q. S2 s9 e- Q6 B9 {  c5 K
  74.     }7 j$ r3 E7 ~* ]* A
  75.     ITK_exit_module(TRUE);  W* Z% \' Y$ a' ^" V/ O0 G. Q3 s- J! I
  76.     return status;. f; R& W" s) n
  77. }
复制代码

1 k  N# ~. t% e: \6 t1 n
, C1 G. h' `( c/ R; f+ v  P2 @
4 P& H1 `- \8 `4 K$ p) M! [
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了