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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
' x: H( S: f4 [2 f( d1 o2 N0 x
Teamcenter ITK二次开发源码分享: 创建一个工作流
- p  I1 I4 E. L. k% P' X
9 m, J1 h  r9 ^) O2 }
  1. /*HEAD CREATE_A_PROCESS CCC ITK */6 m. {$ g: a0 B: g  c! t) m
  2. #include <stdlib.h>8 G) G1 w3 g" |! v' y8 j
  3. #include <TCcore/aom.h>" ]9 ]' f8 m# }  }) M& T0 @2 t
  4. #include <tc/emh.h>! W) s- n+ F0 l1 B' m4 u( m+ [! ^& h
  5. #include <epm/epm.h>; O3 Y) P1 V) `/ e5 U" ^5 R1 ~1 z
  6. #include <tc/tc.h>
    6 Q. e8 A' `" O" A1 m% F! [
  7. #include <sa/tcfile.h>
    " k# U: [0 n- h
  8. #include <itk/mem.h>
    ) Y# d) t3 P! F. N) @2 S$ D* ]) n' ^
  9. $ ~) R( k: t5 U* l  l0 X+ R# C& q
  10. #define EXIT_FAILURE 1 ) W, M" j3 t* ^4 w: n( c# N! _
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))4 m& z. O" w8 g3 e
  12. static void report_error( char *file, int line, char *function, int return_code)
    ) l' Z2 ]  n: q" ?6 z% R
  13. {
    8 X. Z% M8 S- t9 C& a: r( Q
  14.     if (return_code != ITK_ok)' H, `+ H9 w0 A/ s9 N9 a% S
  15.     {3 p/ b6 a( e" O0 ^4 X, b
  16.         char *error_message_string;# r. V* d# W. o# @* Q/ |8 x
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);: P8 F% }7 K& F! j+ r" e' E- V* i
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    2 {" ]; C) X2 O; l, A( L: i
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    3 F  a8 M4 o' T, s8 \0 l
  20.         if(error_message_string) MEM_free(error_message_string);
    ' X6 X' ?) x( I; ^
  21.         printf("\nExiting program!\n");! x7 i- G% S2 i, t8 O8 X4 H
  22.         exit (EXIT_FAILURE);   
    7 p; I  B! y; G' T5 k* V
  23.     }
    0 b; k" L9 x" z; z' j- s
  24. }
    ; P. q0 H0 y% J* Y
  25. - H7 k- j& s3 |
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    % s2 c5 X2 l( R7 w7 d0 G
  27. static void check_value( char *function, int value )
    + X4 F- ]" V& B
  28. {
    0 g6 k) p; N3 a$ F8 ~; q
  29.     if (value == 0)9 Q7 H0 Z% H" h7 Y, s- x
  30.     {# h  t: I9 x3 K' A& h; X- N# e2 Z) }' O
  31.         printf ("\t%s is NULL\n", function);; v0 H2 {' a+ ]
  32.         printf("\nExiting program!\n");
    0 x3 B+ |6 o- m6 I3 t7 s& l
  33.         exit (EXIT_FAILURE);   
    . \8 P9 x  i3 r5 v2 {2 t7 e' z4 U$ _
  34.     }
    . D2 ]2 G% q. I9 x3 n% S
  35. }
    9 p) }2 N( R" P% b1 x! y: \. S, ]: ]3 l

  36. + e% X" N0 ?% {% f1 D/ q
  37.   E- Z2 {& O  b. p  q% s
  38. static void do_it(void)3 v8 P, J9 \$ l+ s5 G
  39. {: R" E. H3 l- _- A6 u0 |5 _* }
  40.     int
    ! _" L, s( t0 R1 ?7 X; z
  41.         attach_types[1] = {1};
    : R2 b1 T- w2 d, i5 Z! o
  42.     tag_t
    ) {/ E8 B3 C1 X( h
  43.         rev = NULLTAG,
    7 Y0 G' s$ U+ V, S! M
  44.         process_template = NULLTAG,
    + M& u+ K, N* g$ w
  45.         process = NULLTAG;
    + k8 r. i! y( T# |, g/ q5 Z

  46. # u4 l6 y( y& I6 s' _
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );$ t$ K; _$ ]& ^. @) M  Y, F
  48.     EXIT_IF_NULL( rev );% i# K1 \  v' y: e4 a7 L
  49. 3 r/ Y" n$ S- T# {7 d
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); ; ?8 h1 {; y. @; Y# X7 X
  51.     EXIT_IF_NULL( process_template );
    - O# K3 p3 \7 t0 n

  52. , D. a; }2 y% r; X$ d
  53. * I# I# q' G: d) D0 m0 S7 a
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    ' B" c" F) [/ n0 f4 m$ V
  55.         attach_types, &process) );8 m  Q, {8 r1 K2 _1 W+ Z& L& i- b- r
  56. 6 t: c5 d) S$ f3 q! C
  57.     EXIT_IF_NULL( process );# t( Z( Y! J- b, Q8 F* d# }
  58. }5 G* G& r& m% c$ d- A
  59. " {; R) ?* I0 R& t9 m, y8 V- Y* j
  60. int ITK_user_main(int argc, char* argv[])8 `( m, N3 P' n6 H
  61. {( \3 `$ Z' v# }7 T
  62.     int
    6 |' }4 H: ^9 D: [/ i& v- R
  63.         status = 0; # u% `* ?# v7 G+ s  D/ E
  64.    . X  N! f" I* h: Y, G, z
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );$ v0 Z' r7 E% l
  66.     status = ITK_auto_login();3 \  p' {" d8 n
  67.    ( H9 @, z& Y4 s+ p
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    5 b6 D  e) h1 g' K
  69.     else: k5 P3 b( _, I) w# l
  70.     {
    ' \$ c2 q% k0 w  n+ c% ?
  71.         printf("\nLogin successful!\n\n");
    : P2 s& A3 L& F+ [' B5 C8 i$ n
  72.         ITK_set_journalling(TRUE);
    . {) \0 ?6 ~6 u8 k% n/ Y
  73.         do_it();
    7 O- Y( O: W& p' a( K# Z% ^: X
  74.     }7 S* o. u; |$ O; S# v4 S5 L
  75.     ITK_exit_module(TRUE);
    " C" `* I( D$ @6 c
  76.     return status;
    * Y% E- h! g& G# ]. g0 Z+ a
  77. }
复制代码
' b' B1 Y: u' |* P+ J6 o  ]" c
3 q0 Z6 |, @" F8 f6 V* E

/ v" V4 q) `! W( U( k; J2 }- O9 k
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了