PLM之家PLMHome-工业软件践行者

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
% E5 G: D2 h" ~: F, U
Teamcenter ITK二次开发源码分享: 创建一个工作流5 T. I& B: N$ ^- j

( B% |0 `( H# N# T8 p5 b
  1. /*HEAD CREATE_A_PROCESS CCC ITK */8 g3 e- i; i" B/ ]' ~) r
  2. #include <stdlib.h>3 H1 z$ O, Q' V
  3. #include <TCcore/aom.h>' {- p( G# F4 A5 |1 \/ L
  4. #include <tc/emh.h>5 m; q" t5 X* i2 a3 v# A7 r
  5. #include <epm/epm.h>
    ) q4 x/ R+ S5 E
  6. #include <tc/tc.h>
    & D+ I0 A) T+ P+ Y; r# R
  7. #include <sa/tcfile.h>0 c- O1 \0 p! C5 K
  8. #include <itk/mem.h>, E4 f+ K& t. e) k* m! U" z8 y
  9. + M2 u( S. `, i9 }
  10. #define EXIT_FAILURE 1
    " }4 v; y5 ^5 e5 d
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    # \( Z! G8 @0 D, [
  12. static void report_error( char *file, int line, char *function, int return_code)5 A3 M! Q0 l  d0 `& Z& b" _& |
  13. {! E! B5 [2 L) {9 z: y5 \
  14.     if (return_code != ITK_ok)
    " u0 I7 M. R3 B+ s5 |
  15.     {9 Y3 d+ o% T: e. y. u2 F
  16.         char *error_message_string;, z, t* i! @" @" z0 q
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);8 B8 M) a! ~+ \  V# R3 p6 l; h' Q
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);$ J- }( d% ?+ n" Z5 C- v' Q5 \
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);. y( J5 o! \& Q& `
  20.         if(error_message_string) MEM_free(error_message_string);, s/ F+ u. O: ?  E5 h
  21.         printf("\nExiting program!\n");2 S: p6 B  C) ^! o
  22.         exit (EXIT_FAILURE);    ) L5 R: m2 B0 ~( R5 k/ @# ^
  23.     }
    $ e) R0 B" C  }1 O/ K  [
  24. }3 K5 I& F+ E' W6 f

  25. ; [& y/ ~! `5 f' Z- k; O" B
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    , y- W  @. Z, W) _$ B
  27. static void check_value( char *function, int value )" H, f7 ~& J, V) j. |4 ~, h9 Z
  28. {7 b! o- W/ B2 F
  29.     if (value == 0)* N: T+ v% }( w9 s( T+ c! z2 @) B- _/ B
  30.     {
    4 l0 l" x/ O+ b3 l1 f
  31.         printf ("\t%s is NULL\n", function);
    ; a; k- H  J9 t4 w) h7 K
  32.         printf("\nExiting program!\n");
    9 Q( S: n/ C' i0 s7 d, ]$ Q
  33.         exit (EXIT_FAILURE);   
    . R0 I) p+ o4 m! r
  34.     }& ]: H/ o$ F6 ], n
  35. }
    # O  |3 ^/ c. }1 K2 L3 r

  36. ) o/ ^3 A4 t. k. z4 d% O7 t

  37. . r3 \  r+ V( l" z6 \* T9 v  n
  38. static void do_it(void)
    / M4 Z6 ]) b( f. A6 A
  39. {
    ( n8 o& A! c# c! b1 J* Q, O& o
  40.     int
    % A/ l7 h+ Q- V/ r( C8 D6 S
  41.         attach_types[1] = {1};4 Z( Y0 ]8 x! b6 A  O
  42.     tag_t 5 f0 z/ m# M) u3 s. B$ I9 B
  43.         rev = NULLTAG, $ S0 U8 s  k. T& A
  44.         process_template = NULLTAG, * j4 ~# J  F, v5 n4 \, U0 }! e  E
  45.         process = NULLTAG;
    7 g5 H+ p5 r8 c6 B

  46. 6 P  Z1 m! g1 j# F3 O
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    8 E0 D( x4 H# H/ D7 k7 Y, D
  48.     EXIT_IF_NULL( rev );, w  M) C* |2 {+ X) z

  49. * H. A, ~6 P9 r& ?% N, @
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); ( H3 M1 \, k) b2 n3 [
  51.     EXIT_IF_NULL( process_template );
    , ?1 G8 f3 x" s1 R4 w6 {) q3 m

  52. - N3 `$ K0 N- i' q2 G7 H. D

  53. + a; t7 i4 z) b( x% k9 p9 _
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, - w/ ~  H+ f) w2 x! {7 I
  55.         attach_types, &process) );4 D, h( O% m+ q5 |1 u0 y
  56. 3 i$ T5 N1 E5 }- l* k# `% ]- Y% i
  57.     EXIT_IF_NULL( process );
    : q/ [7 l- G; Y! B7 r( ~7 m
  58. }3 [' k& H6 ^3 D* _% j1 p
  59.   h9 \  X$ B$ L6 |
  60. int ITK_user_main(int argc, char* argv[])
    0 }) \' p. o; O) V9 Q# ~- ]
  61. {2 y$ @8 J& N5 O, @
  62.     int  u: A1 `' U7 ?. v: W8 G/ W4 a
  63.         status = 0;
    5 h. r, b- n8 @5 o: J# C4 A
  64.    6 O5 K, m0 r/ q  T' g& B
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );4 h' p6 I8 t/ K4 k& E5 v( S
  66.     status = ITK_auto_login();
      D( E2 l' n5 x5 \* R  ^7 L
  67.    ( h0 \* O) ^; Z. O. X  A/ h: O
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");2 ^* v; B) u/ w2 A
  69.     else8 J/ {" v0 v" U0 i' b  z5 a
  70.     {8 N8 d3 ^- G! U) r. R
  71.         printf("\nLogin successful!\n\n");1 _5 |8 T, L/ L" C: ~; U
  72.         ITK_set_journalling(TRUE);
    " E4 ]8 J  _1 a, t$ }( ?
  73.         do_it();/ R, `4 F; ?7 P' f$ M
  74.     }. k) y% X8 O+ }: W7 P+ l6 b5 K/ r4 }
  75.     ITK_exit_module(TRUE);
    9 z/ R. _, _% U' Z! V
  76.     return status;+ J# }' f! Z* z
  77. }
复制代码

  S1 J9 n! I: O
) U5 S1 M: N* o4 }- [' q, {5 R  r, h
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了