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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
6 O1 B2 P/ K; K  D1 W
Teamcenter ITK二次开发源码分享: 创建一个工作流4 M$ C7 n  w) D: O/ h; V
" j3 M) L2 U7 N
  1. /*HEAD CREATE_A_PROCESS CCC ITK */! G$ _% V+ I4 u- w, ^; v
  2. #include <stdlib.h>
    7 k3 V0 I1 B8 [3 t/ S) Y! C$ n, J
  3. #include <TCcore/aom.h>
    6 x+ t) ~) m) B6 r* b# V
  4. #include <tc/emh.h>4 D+ n4 n! A- b
  5. #include <epm/epm.h>
    0 L6 F& T2 Y" S
  6. #include <tc/tc.h>
    ) z7 g6 y. h3 Y
  7. #include <sa/tcfile.h>
    7 ?- L' ~# L" @7 J5 e3 h6 _0 N
  8. #include <itk/mem.h>
    % h% C: V2 i( t8 e
  9. ( x0 H  `6 x0 E4 s: J: @+ e
  10. #define EXIT_FAILURE 1
    # K$ [4 i4 ^( i5 ~5 c4 Z
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    : k) p; C. i* v2 b
  12. static void report_error( char *file, int line, char *function, int return_code)! W' K3 I. h" i# E0 k
  13. {+ b3 g$ {3 D6 J# Z! O
  14.     if (return_code != ITK_ok)' B% L% O9 r' ^7 j9 C/ J. u2 S# ?
  15.     {
    6 i" V8 [7 V2 I1 i' u: C
  16.         char *error_message_string;! K8 @1 t* W% E% k- Z
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);; [" L+ K3 w9 j
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    $ [! d, N3 e3 j4 ^
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    / n2 z( i1 v1 w8 U+ s
  20.         if(error_message_string) MEM_free(error_message_string);
    * I& t1 q& I. p
  21.         printf("\nExiting program!\n");
    ! s3 k* @7 i$ q$ w# j
  22.         exit (EXIT_FAILURE);    * ]2 r; I: J( g6 p
  23.     }
    ) R5 h- c( L( t+ O
  24. }
    . M, e0 u  z( W: S6 \$ `

  25. & B! h- l4 @3 {# ?, o# T% f
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    6 V1 R. }+ F' W: I* H- Q: ^
  27. static void check_value( char *function, int value )2 D8 B+ }* {5 v& b2 g7 G9 a8 U
  28. {3 r, C, e+ l1 ]5 b8 m) x) G
  29.     if (value == 0)- H1 k2 R9 T& G3 v9 m& m( l# l
  30.     {( p* ^6 n3 V0 g/ F& `- @
  31.         printf ("\t%s is NULL\n", function);
    ( e9 Q) U! ~$ h  h' m
  32.         printf("\nExiting program!\n");
    1 D9 J( R$ E" i0 n! R0 K! v
  33.         exit (EXIT_FAILURE);   
    5 i8 U  T7 x/ e- m3 q8 o, f* X
  34.     }0 N6 P9 R* x. n( f  O: x& J+ i
  35. }
    ( H! I% i. y# k) X. x" O
  36. ) o2 |  }; l) k4 Q) I- \/ m
  37. ) i% n1 c! K) M3 K2 [0 B6 H; Q0 P
  38. static void do_it(void)" n& m# B) V7 U% G+ C# f
  39. {
    3 e% \3 }# i, `  [; _  v
  40.     int
    4 ]( Y6 K4 w9 H5 o$ Z$ l
  41.         attach_types[1] = {1};( f2 {3 `! E  W. ~: n
  42.     tag_t . h3 u: R! m5 G
  43.         rev = NULLTAG,
    2 o- x0 S) ~- x1 c
  44.         process_template = NULLTAG,
    , b! R: y! @7 l1 E$ g
  45.         process = NULLTAG;) D9 `( g6 h) ^% R) U5 V9 I$ {
  46. ; v$ }4 m6 I* L  p! _* v) z6 S4 \
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    1 B+ Q: ~! }0 Q; _/ n( A6 k
  48.     EXIT_IF_NULL( rev );
    6 f; k5 R7 B  f. @) u8 W% s
  49. 3 I- l; G5 w- P, n& X$ s! j
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    ( @8 f" m. f4 S- |$ ^6 V
  51.     EXIT_IF_NULL( process_template );- a: N' ~* L: h$ N2 ?8 q' O7 W
  52. . v$ b5 ?3 p- ^! g! m/ X

  53. 0 w! k# i4 H! J! B( p, |
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, " m4 T: k! G5 e
  55.         attach_types, &process) );
    # K7 m: Y2 T3 N6 k! _
  56. 8 q8 }9 K1 ?  i# t6 y# v
  57.     EXIT_IF_NULL( process );
    4 K3 ?2 s, U" [; Q! |& S% x  r% ^
  58. }6 M4 H9 Z, K  o6 [. _. B
  59. 2 \0 X- e1 Y$ j0 \' _7 r, @, q
  60. int ITK_user_main(int argc, char* argv[])
    ' i3 \4 e4 K% j5 B" c" z
  61. {7 I& e( h+ V9 m) j
  62.     int, s' W" S* O) s
  63.         status = 0;
    % _% C" \- U; M' h( j$ h. T" q) R
  64.    # L* X: l: F% W2 X5 g
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
      @8 b, E& y' p
  66.     status = ITK_auto_login();
    3 |1 Q) h* J' z  D
  67.    . P! j5 q: p- g( R% U% `- z
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");( H; ~# C4 d) C+ c, u5 p9 a# ^4 C2 C
  69.     else
    . Y  R$ a7 w" o6 k8 Q. o
  70.     {
    9 `8 `9 S# c4 u4 m( f0 T3 f
  71.         printf("\nLogin successful!\n\n");" }$ c) ]8 R: O0 c
  72.         ITK_set_journalling(TRUE);3 ~+ Q* ?+ @/ `5 D; j
  73.         do_it();
    ' N4 }- S# {' v
  74.     }& m5 c- P$ U5 g8 ^0 ^
  75.     ITK_exit_module(TRUE);/ G* z) k$ G- {( \. Y
  76.     return status;3 z7 W1 H' ?6 u) v$ P, O' Y+ z7 A) c
  77. }
复制代码

3 ?+ \( i, P: s
# p& e2 q9 a4 a/ [) E8 L# u) w  y# x9 Y- x4 V" E+ f
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了