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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
  n" Y; u6 z% J7 S/ V6 s6 x
Teamcenter ITK二次开发源码分享: 创建一个工作流
6 o  d* Y1 A; ]* b% [5 [$ x$ d' D9 o9 V4 P) v  f- i, Y. L$ g, n2 ~
  1. /*HEAD CREATE_A_PROCESS CCC ITK */( R; `6 Y, I2 @
  2. #include <stdlib.h>3 Z; r) w+ u3 f* b0 a
  3. #include <TCcore/aom.h>
    % s" C/ ^- D* c% R, Z
  4. #include <tc/emh.h>
    ! l7 c; g8 l$ C/ m5 N1 A
  5. #include <epm/epm.h>5 {2 O! O& Z$ }9 V8 n& A
  6. #include <tc/tc.h>  T8 G0 _$ [. H: Z* f/ w
  7. #include <sa/tcfile.h>
    - }" a! L- E% f, |
  8. #include <itk/mem.h>5 _8 L3 a$ o" C7 T/ K
  9. ( h- }- H, }9 D
  10. #define EXIT_FAILURE 1 6 y- g4 R" P2 g  r
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X))), U0 s9 m; E0 e2 M! b
  12. static void report_error( char *file, int line, char *function, int return_code)
    2 b+ \. o4 C% C3 W- b2 }  j% O
  13. {
    ; v5 R3 Q" r) Z1 [- ~6 u0 b! \
  14.     if (return_code != ITK_ok)
    5 p' y3 j+ u& k& n( a
  15.     {
    * F; f& z3 ]$ Y9 @# M$ Q* Z
  16.         char *error_message_string;
    7 }4 ?$ k% a$ Z' q3 K
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);" H9 ?& S8 h1 Q3 |7 g
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);% c3 `" K* p1 H9 g+ }
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    # s6 X7 V/ U3 ?5 Y
  20.         if(error_message_string) MEM_free(error_message_string);
    * G* [3 {2 m$ p
  21.         printf("\nExiting program!\n");' h! J* c# v: v6 e7 R
  22.         exit (EXIT_FAILURE);    * Y* `0 b' m9 S8 {& {0 ?
  23.     }
    0 Z0 i# }3 ?3 x
  24. }& [$ g, V1 m$ n; B9 D6 F: R6 F; l- i
  25. ; A* }0 k# X+ y( a& U7 j
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    6 o8 c4 m' v9 M- A: [7 c! J
  27. static void check_value( char *function, int value )  [% M, ?+ x7 s
  28. {
    . ?4 Y: k. d* X1 J* p9 e7 f
  29.     if (value == 0)
    . o* U- G& n1 ?- u& T+ x! u
  30.     {1 X) s- k& s* j
  31.         printf ("\t%s is NULL\n", function);
    1 Y! i1 |1 F! T* w
  32.         printf("\nExiting program!\n");4 Z6 {( `9 \( M
  33.         exit (EXIT_FAILURE);    * O" ?3 m# h, c$ [9 W% H7 O
  34.     }0 P7 q* l' K- k+ k! f
  35. }
    8 `: {8 ~% G/ [2 h; i- _3 r

  36. + Z0 |7 B, o1 U" ]; F& {
  37. 2 ^; p, B6 i% r/ Y7 u0 p
  38. static void do_it(void)
    6 n4 k/ {- K4 G
  39. {
    ; L: H; e2 d4 N( W$ E# u
  40.     int
    # |' H- L, T5 X
  41.         attach_types[1] = {1};
    2 V) T9 W; y6 K* Z. k- l6 l! R
  42.     tag_t
    " k+ ?- D6 l  I
  43.         rev = NULLTAG,
    6 E( P) ?+ m) i$ W
  44.         process_template = NULLTAG, , z, d; M0 U' e* ?, S% B5 ]
  45.         process = NULLTAG;
    . H. P" y7 E6 M

  46. ' S* }3 e0 o0 B  w7 [
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );! e7 N+ Y' F  d6 z  p! T" v! k
  48.     EXIT_IF_NULL( rev );8 g0 ^2 W8 O# g2 A4 }

  49. 2 V  U& f. L4 q* q" ~* z& S3 ~
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 5 j0 A& ~( g+ d, d  L3 F6 R
  51.     EXIT_IF_NULL( process_template );
    . T& `: H/ h: I: N
  52. 3 t, S3 _3 V& X5 O6 V8 g2 p- y; ?

  53. , E3 |5 W0 a. o4 {$ R$ E  [  j1 q# m
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, & N* g: f; I, ~2 v0 ~2 v1 I! o
  55.         attach_types, &process) );, K( Z( E, q9 R3 p3 ^$ W0 x. j, T

  56. . Q3 k% ?+ w# ^1 c
  57.     EXIT_IF_NULL( process );8 [, o( e: y. y5 R
  58. }  y2 d6 e/ @4 r: F+ ^: d# ]( k! T
  59. 6 ]6 j: ]/ s8 i! J3 ?0 l  J8 L
  60. int ITK_user_main(int argc, char* argv[])
    " J% G' s) i( Q
  61. {4 Z% C* d8 Q3 D1 a- \. [8 z
  62.     int! o7 q8 i6 c, F* R% E1 f$ `
  63.         status = 0; + n% m7 O( W1 n
  64.    
    8 F2 p' f" v; W
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    0 p. x: [" x# D- N% X) J3 L" [% E
  66.     status = ITK_auto_login();
    / T; x4 V8 p6 p9 p$ {: z
  67.    9 h. m, C5 L' U3 \1 V% c# B
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    ' S. H6 f, j3 f0 r
  69.     else
    3 ]7 U+ h' X+ y. S+ \
  70.     {) ?0 @6 u+ f9 X+ u
  71.         printf("\nLogin successful!\n\n");
    & L) i7 L+ a) o6 g" l8 M
  72.         ITK_set_journalling(TRUE);
    ! I4 h0 @" m8 g5 A( p. ]& e
  73.         do_it();
    3 P$ s6 c0 l7 d; {: J" B2 }
  74.     }# Y0 G/ ]) P# I/ Z& n
  75.     ITK_exit_module(TRUE);
    1 P1 N' d! m: F' h& z+ ?- S
  76.     return status;
    / @; Z+ ]' G  l/ n7 I  w
  77. }
复制代码

- t: @, s0 S1 T0 Q' ^! X3 \
  P. i; B6 M7 \/ S4 p8 E1 K, e) C' j
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了