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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

: d0 ]+ B4 ~- k- h2 nTeamcenter ITK二次开发源码分享: 创建一个工作流
, C) M& L. U& ]8 N4 g( c) G( a) e; [- r( a/ J: z  `% ^" k
  1. /*HEAD CREATE_A_PROCESS CCC ITK */) o* V: S6 D% s( i2 N
  2. #include <stdlib.h>
    & z% H  [# c  q1 c
  3. #include <TCcore/aom.h>0 \, {! G; M8 Z& G, U' _% Z- F
  4. #include <tc/emh.h>. n# X* @  D2 `
  5. #include <epm/epm.h>
    : R* a! J$ {8 z3 t- K: @
  6. #include <tc/tc.h>3 m) {- S+ I8 k! G5 G6 u$ r
  7. #include <sa/tcfile.h>' z: O; w0 ~* S, u) `
  8. #include <itk/mem.h>3 [' t8 K0 E: P* Z7 `1 z
  9. ! }4 D0 L( v( s2 R* R& v
  10. #define EXIT_FAILURE 1 & H3 `! y" V) [" p: K/ J
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))" H* s' L6 W& u0 t; l/ y
  12. static void report_error( char *file, int line, char *function, int return_code)( S5 J; y% t8 g( y' T+ b
  13. {
    7 T& ^; A; Q; c2 g
  14.     if (return_code != ITK_ok)
    7 s$ G- U( v6 s2 a  T  X) U
  15.     {
    ( G2 @; R4 y9 l: T
  16.         char *error_message_string;
    1 Y5 @0 I. }, J9 I
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    - c3 c5 Z4 F# y  Y% u* T0 a
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    ; v5 D" N9 ~. \- D( q) U
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);: Z, G' ~! t, J5 ~2 S8 q0 O4 Q
  20.         if(error_message_string) MEM_free(error_message_string);5 p3 F( ~" C% \' f
  21.         printf("\nExiting program!\n");
    0 F8 A+ J8 i4 J; s2 t  o! M) w, p# ?
  22.         exit (EXIT_FAILURE);   
    & N2 j9 O% R3 S/ t6 D
  23.     }3 E/ C4 Y& g! r1 t+ N5 [- l
  24. }( \3 ^% `+ h( C& X: P( ^
  25. ' _- Q* N  `+ O9 r- z6 c) h7 T
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))* F' _4 U6 |, }+ \3 M* l3 F4 m
  27. static void check_value( char *function, int value )
    / i6 H4 }" Z: Q6 y
  28. {
    5 R8 q- D" Q, `# \1 t
  29.     if (value == 0)+ _: T! o8 P1 J
  30.     {
    5 q) n9 U) ]4 `5 X/ G
  31.         printf ("\t%s is NULL\n", function);
    $ O/ V1 B& l* p- S( L* L& }9 T
  32.         printf("\nExiting program!\n");2 S) Q* Z0 [6 n. s
  33.         exit (EXIT_FAILURE);    5 k) c! [6 h" i! {- U
  34.     }, v$ c% J3 `# L" c0 `& R
  35. }
    5 g/ e! [6 {4 ?3 s1 {/ K# ^' Q

  36. . \+ ^. z% q0 j

  37. * J( _/ s7 O: D& i
  38. static void do_it(void)
    # O& p# b# ~/ w: r
  39. {' H' u5 L9 d: o2 p& q
  40.     int
    6 L% c% f/ `: H# `5 M5 {
  41.         attach_types[1] = {1};) H7 s0 l9 N% _1 H" U- A0 _. P
  42.     tag_t
      T7 v0 E5 Y& u0 z  G4 S
  43.         rev = NULLTAG, " q' Z0 ]5 T) O$ {* m% Q5 a
  44.         process_template = NULLTAG,
      V& B  d; W) ^6 ?
  45.         process = NULLTAG;9 h7 U! K5 V9 |9 i- u# U+ g
  46. 7 Z( L- Q7 T5 e
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );- ?7 w2 D" T4 V, n
  48.     EXIT_IF_NULL( rev );
    4 B( }2 y4 Q6 _' o
  49. 9 f' v9 N  k: Q& `# O( o) ]
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    " H1 P! o. w2 v
  51.     EXIT_IF_NULL( process_template );
    3 ]' o- w# }- l! I; T* M

  52. 2 A( m7 ^- Q( L4 ?

  53. 8 E9 O! Z: @! V0 j- t. m
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    " F% x- p% s- o* K( F( z+ A
  55.         attach_types, &process) );
    8 U2 k; g3 L2 @1 x/ |
  56. # Z# ~) n( `8 _. e
  57.     EXIT_IF_NULL( process );
    : n. y( m7 p+ R' ]) \* H# h
  58. }2 Q4 l% Y4 m0 s) f: m2 |2 f7 q2 y& w  A; ^

  59. ) J% E6 t. n0 g. e( h
  60. int ITK_user_main(int argc, char* argv[])4 w; l$ R% ]# ?& c9 h* q5 c1 d
  61. {' L% ~% P! D- |( B9 V4 ]$ |
  62.     int0 @6 E8 g: M% s: u: y0 i6 r
  63.         status = 0;   q+ m  x. o  Q
  64.    
    # S4 Z8 G: a4 z1 m# N/ y, L
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );! M1 T& n" h- o6 A/ V# r. w
  66.     status = ITK_auto_login();! d7 _& ^! b$ n) m
  67.    
    # S1 n  C; ~- V7 o0 _; f
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    7 y- t2 F( T5 P9 S& }! F' _
  69.     else
    8 Y; l8 i6 w9 _1 L  t- _
  70.     {
    3 d6 K9 S* \& ^. e% R! d" O9 _& d+ k
  71.         printf("\nLogin successful!\n\n");+ A0 r7 V$ H6 G0 q% p" w
  72.         ITK_set_journalling(TRUE);
    + z  s6 \* \4 Q/ ^  |5 B. G
  73.         do_it();
    6 N1 e$ s& @; h6 u" K4 A
  74.     }# X% l) t9 c# v+ E5 W; Z
  75.     ITK_exit_module(TRUE);
    % t& r5 D4 A& S6 X/ Z0 @
  76.     return status;* e. g* Y' B- C0 X  z
  77. }
复制代码
9 H3 h) o' \/ h, |) {+ z

% _" L1 T3 Q* I+ z9 W/ ?. q! ?/ p( T) b& c
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了