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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

% H: ]2 o/ S( BTeamcenter ITK二次开发源码分享: 创建一个工作流
* u6 A( {' y( q" H8 T" N; u: E. g, [- n3 ^
  1. /*HEAD CREATE_A_PROCESS CCC ITK */" `" f7 Q8 V1 i* g6 s) ^& N( {
  2. #include <stdlib.h>) A% E/ z( ^( C& W
  3. #include <TCcore/aom.h>8 j; ]. y0 ^- |0 a8 s
  4. #include <tc/emh.h>. z- u* f! ]$ E( {8 H
  5. #include <epm/epm.h>8 L4 j% O$ a$ u, q; m
  6. #include <tc/tc.h>/ x0 N) A; T5 u7 l% {: s
  7. #include <sa/tcfile.h>
    . T" _+ c# l! f  D6 C
  8. #include <itk/mem.h>
    " M% R; }$ W' z. P: L7 M  E, C) ]
  9. + V3 v& m: {- }7 y
  10. #define EXIT_FAILURE 1 1 }) V' R- d5 u% n
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))% f5 j( Q4 d3 W; q# _3 j& p
  12. static void report_error( char *file, int line, char *function, int return_code)
    : N. e# H; W1 w' `, z9 \, T  g
  13. {) L7 _, @: `$ l0 e0 Y4 `: `
  14.     if (return_code != ITK_ok)
    ! e. C: v9 J; [# d* x8 d3 r6 M
  15.     {
    0 m7 ?( r, E0 ]# t8 Y! N8 |3 B4 v' a+ X
  16.         char *error_message_string;) c; a& r3 b0 b$ V: i
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    3 r. U* V& n, e: k( r) W) d1 m
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);' Z$ L$ ?6 @7 \
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    # |- m' k: o& Y1 [  n
  20.         if(error_message_string) MEM_free(error_message_string);
    " y* i7 c* k0 y: g3 q
  21.         printf("\nExiting program!\n");; p2 x. a# p/ i+ I
  22.         exit (EXIT_FAILURE);   
    ( i1 s  }  b$ ]9 A5 m! @
  23.     }
      x( N' ], u' h0 x
  24. }
    . b' ]8 A% x7 C& Z9 x
  25. , F; O- s( e! s$ B# d
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    3 P  R! C! L4 z: q, ~. q' i
  27. static void check_value( char *function, int value ), {: G# V$ v& Q7 G! z% Z, D
  28. {
    - b/ _: i, z6 z& A& n3 W
  29.     if (value == 0)
    2 h( Y# P$ \5 `+ r
  30.     {8 S1 ~4 X1 ]/ E3 d; J. s& }
  31.         printf ("\t%s is NULL\n", function);
    $ u  V- P1 h2 @2 B4 F  c+ s
  32.         printf("\nExiting program!\n");' f/ l- B+ R& @0 n
  33.         exit (EXIT_FAILURE);   
    ; C4 G/ N4 a! L$ w' M
  34.     }
    / u, _6 U0 X4 m) [- z- S1 v
  35. }4 _( t8 p. `' m- ~- }! E) U4 R
  36. / S* i: a# L$ l6 i  r+ a
  37. $ f- [" r0 B' l* u: l! D& I
  38. static void do_it(void)* T9 I1 V" b0 g# d& i% t* R; y( e
  39. {
    / r3 o& P0 V( a
  40.     int ! H8 U" s6 o' V1 ]; }( }% C% Z. G
  41.         attach_types[1] = {1};
    3 W0 O+ ~4 j7 n- P* C5 c
  42.     tag_t
    7 F- V  m9 z- I
  43.         rev = NULLTAG, / v& L4 L6 c  F0 _
  44.         process_template = NULLTAG, ( z2 m* V* ]" u5 {& K
  45.         process = NULLTAG;
    + X; o2 {8 Q9 P- A! M0 b

  46. ; r3 \) {9 s, ?1 Q  ~
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );9 B' j) y8 J$ M/ Q; U+ ?- u8 E2 q
  48.     EXIT_IF_NULL( rev );6 G* X, l3 p: k+ g2 I
  49. 2 M( j' f* K1 X+ s* ?/ q2 v" p
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 7 v0 R( F6 V9 E4 N; f; f- e9 z
  51.     EXIT_IF_NULL( process_template );
    & q; w8 N- m. k" C5 ^# J

  52. ( ]# L3 ]4 _; o+ Q1 ?9 x' {1 i

  53.   u. B8 Q% P$ C! v) i( m
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, ( B+ a3 N$ u4 |6 @' z1 ?
  55.         attach_types, &process) );; _1 L3 a0 }; X1 Z$ ~) b

  56. 8 L8 {; q8 n1 O0 D4 @
  57.     EXIT_IF_NULL( process );- H- Y6 r# T9 ?4 E( {
  58. }
    $ o. L* k  k7 }' m1 L" A3 C8 j+ _
  59. 5 ^( I; }9 q; i( b6 P
  60. int ITK_user_main(int argc, char* argv[])+ u$ Z1 g4 w0 [
  61. {
    1 j% s9 L6 p& c- n2 L& e9 J2 z% `
  62.     int
    ( q2 d/ ~9 v( g% ~
  63.         status = 0;
    , g5 p* I* q" D% p8 N) ^
  64.    . D0 B! D/ p9 T" j; H- o0 [
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    6 @! p0 }& b6 _) F5 y8 j- ?) w/ B
  66.     status = ITK_auto_login();( F2 s: J! Q8 e/ G: F* O! l
  67.    - N% v, E) n3 P# x( q* }0 P- e
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");1 l  G; i( f* ^( q
  69.     else: M1 y' s2 Q0 G
  70.     {
    + U3 ?7 y- ]. C; a8 B/ W
  71.         printf("\nLogin successful!\n\n");
    5 E$ A+ M8 V- r
  72.         ITK_set_journalling(TRUE);
    , |" C& i) `: P7 [
  73.         do_it();
    0 c0 Z4 j8 U& O! M
  74.     }9 I  D' n' ^/ w# A' |, X5 B
  75.     ITK_exit_module(TRUE);
    + }; Y7 s$ I6 `& d! N
  76.     return status;
    6 Z/ h; e/ [& F& ^
  77. }
复制代码

+ P/ n: q5 Y# T- M! m* m
2 T; C- H$ _; @. i2 t8 H5 O! t- ?) }2 b1 F8 m2 v0 I
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了