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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
  B& F; ?  X. y5 O# c
Teamcenter ITK二次开发源码分享: 创建一个工作流
  t( i, e9 S* f, `. k
) p; F, y7 s3 Y* _( ]( K( V0 l
  1. /*HEAD CREATE_A_PROCESS CCC ITK */" f' `4 M. L9 G1 `( x9 u, B' W
  2. #include <stdlib.h>
    & k7 |; j" W8 T/ H1 x9 E% q
  3. #include <TCcore/aom.h>
    " O0 q, u, B$ @& b0 I5 }& D
  4. #include <tc/emh.h>
    & H/ g, ?+ u. f7 y5 U. Q" R
  5. #include <epm/epm.h>
    . z% r" r8 z7 [( T6 f& \+ Z  S
  6. #include <tc/tc.h>
    ( }! |0 @3 T4 m1 \9 t6 N* B. Y0 p
  7. #include <sa/tcfile.h>
    / s, S7 K5 p  Y7 q- R" A9 J8 Y
  8. #include <itk/mem.h>  E) U5 B8 m/ [0 G. ~- T
  9. / t0 C9 k1 o( S. w
  10. #define EXIT_FAILURE 1
    ; ]: V- r* w6 c$ {4 Z4 u2 M
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    ) v. x# D' B$ |/ W& f) `1 }
  12. static void report_error( char *file, int line, char *function, int return_code)
    5 e: V) q) _- E8 B+ @7 i" k0 e
  13. {; k% P) |5 U* d* z$ e
  14.     if (return_code != ITK_ok)2 ], g2 K# v" r7 X2 ]* Q; m- Z0 ~
  15.     {, P: Z/ X: K4 H1 S, ~7 Z$ i
  16.         char *error_message_string;9 G# e8 H( [: p2 h
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    * y. {* [; Q7 N( F
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    4 D6 y2 p& h& @* M& E
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    ; t. ?0 S$ }, Q7 F1 T3 G
  20.         if(error_message_string) MEM_free(error_message_string);7 T! Y: W; ^. \5 M
  21.         printf("\nExiting program!\n");
    ( R% W- x) n- m0 l/ u. N; Z! l
  22.         exit (EXIT_FAILURE);    + S* n3 p- x* Q. O, }" k
  23.     }
    4 m- W3 E; Z, P* o, O
  24. }2 B- o) x1 n+ M! Y6 s

  25. + a4 x! n1 p1 }9 [. g8 k
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))7 r7 R3 Z' O  R/ V
  27. static void check_value( char *function, int value )
    3 M5 I; {' @( z, Q* d! P, O1 X
  28. {
      `# N3 b% c- k
  29.     if (value == 0)
    & l- o3 y5 z+ V
  30.     {7 d; U! d5 y+ p! i, K' j. Q1 t# v
  31.         printf ("\t%s is NULL\n", function);" [$ B/ m6 M" ]/ |1 J; i. `$ L
  32.         printf("\nExiting program!\n");
    $ C, ]; p! b: ]( T8 t2 t! O& h' I1 v
  33.         exit (EXIT_FAILURE);    1 Q* W* g+ e  Q' `
  34.     }$ w/ n8 u, M/ F: _0 q3 o' U7 ^# u
  35. }
    + L+ S! s6 w/ W$ }+ S% l- y

  36. 6 A8 Q& g7 `4 w8 m% t0 a( W

  37. 5 q/ f7 D( [9 b+ v$ X, F4 ~
  38. static void do_it(void)
    ' C, f8 A# R  x9 x( s, Z- F6 n
  39. {
    ( e0 u" `/ O3 Z3 T+ Z9 H4 @
  40.     int . d8 {! F2 n) \3 a8 j8 M% ]" [
  41.         attach_types[1] = {1};9 E0 j0 p1 b! X3 k
  42.     tag_t & b! j; R$ J" ?
  43.         rev = NULLTAG, 8 _  \8 ?# Z  @
  44.         process_template = NULLTAG,
    & e3 X# D% j. P- G) M
  45.         process = NULLTAG;, S' I- e& P$ X8 ^8 r  D

  46. 8 p4 y1 Y$ Q! x
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );  p  ]% u. [! u# k0 _5 Q
  48.     EXIT_IF_NULL( rev );
    ) t% T# `% I$ H  S& @4 B+ H  u

  49. 4 S# Y. c& b9 ^
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    . {1 t' r0 j3 Y. j/ T2 o  Z% R! n+ G
  51.     EXIT_IF_NULL( process_template );
    2 a- b6 F  L) r6 R
  52. % s" A; T. E: J( t! P$ i/ F# G

  53. " w" ^; `/ d1 ^( D7 d! l& _
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    0 W1 Y0 B; U; f6 }9 |7 G7 i9 E
  55.         attach_types, &process) );
    : e/ v% Y! B7 i- }: e( ?

  56. & r4 A2 q- M* _5 [" N6 o' d
  57.     EXIT_IF_NULL( process );2 F3 R5 F" O/ i1 F; ?6 I: _. n
  58. }9 y- b! C6 p0 W# N0 v+ O

  59.   ^5 w1 a! k+ I% R( G$ O. \
  60. int ITK_user_main(int argc, char* argv[])1 v) U$ Q- U5 a% l
  61. {. E; A1 C1 D- H. f% K2 ]: R! a
  62.     int
    9 P6 l, R! `! U& v  V
  63.         status = 0; 3 r) A. J' Y. S; y% R
  64.    ! i* f. _5 O% d2 f' a
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    " E8 g' _" X- ?8 A2 J
  66.     status = ITK_auto_login();% J0 D6 i& x! \
  67.    * S  F6 \# R8 S" w- r2 h) ]5 }
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");1 e0 C' @4 X8 P- K
  69.     else3 I. l/ C! _/ `
  70.     {6 b, O' o% C9 h( o2 |6 G# P
  71.         printf("\nLogin successful!\n\n");7 i7 v. c! ?7 i$ ]- f5 V
  72.         ITK_set_journalling(TRUE);
    ' a9 n: U0 u: G
  73.         do_it();- L7 a5 P8 S" l4 E1 N
  74.     }
    % Z3 X- Y# r3 M' \' K1 J6 v. Y
  75.     ITK_exit_module(TRUE);
    4 n5 C4 y+ H: u, M6 d
  76.     return status;9 y% |# r6 ~4 F+ j7 K
  77. }
复制代码

- n$ q5 k% U9 C3 P4 h. `
. [6 J1 u+ r3 l5 E/ {: n5 a+ X0 z8 ]4 [: c; {2 t2 m4 b4 x
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了