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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
% U5 a3 R: `3 ?# U6 s- Q
Teamcenter ITK二次开发源码分享: 创建一个工作流
, M& T- c* @6 o+ M0 m) D  s9 |2 \& ^' I0 `9 M
  1. /*HEAD CREATE_A_PROCESS CCC ITK */& w6 y) R% b- k9 I# Z- i
  2. #include <stdlib.h>
    - I( c6 T& Q$ ]2 x* E2 U
  3. #include <TCcore/aom.h>
    + @4 x8 V/ b1 L3 ^+ r
  4. #include <tc/emh.h>
    : z$ W$ U7 f8 M1 t) {9 q$ a2 J  |# f
  5. #include <epm/epm.h>( T$ ~" ?( F( U4 N/ }# g1 C
  6. #include <tc/tc.h>
    : Y4 w5 Q. j6 [  d" k$ S. k
  7. #include <sa/tcfile.h>( [+ z$ a4 H9 }$ u) x( v% ~1 _4 r
  8. #include <itk/mem.h>% Y" {. |/ E) O' l4 z
  9. ; H  G& X! }$ ?! C+ }, u8 v: Z. e0 v
  10. #define EXIT_FAILURE 1
    + M& {5 L, n& K5 K) j  j
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    : \2 J" Y" p# b. y
  12. static void report_error( char *file, int line, char *function, int return_code)9 D: e- I& Q+ F7 U* V  v
  13. {; H" k2 g# {- \( u/ x
  14.     if (return_code != ITK_ok)8 c  p( a( _4 A% {9 p; k$ S+ w
  15.     {/ z7 a; S) K+ Z$ v
  16.         char *error_message_string;4 D  j8 M" S& y3 v
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);9 r$ A4 g( h$ N. g  F
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);0 C2 s$ F. ?  j2 P; l/ E
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    , s# ~9 j+ b1 n' Z3 N6 ~. q/ H- T
  20.         if(error_message_string) MEM_free(error_message_string);, r. F) V7 Z6 q
  21.         printf("\nExiting program!\n");$ Z: N' E9 f* k' {2 j: n) M! e
  22.         exit (EXIT_FAILURE);   
    ( b, t/ m8 U. S: q7 N( w  ?
  23.     }
    ) D7 F5 L1 k& ]8 F/ O! u; E
  24. }( T( _8 Y. |, F, I, Q
  25. 8 b# s4 _) E7 @$ S; y) y/ X& G
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))% Z8 J9 W' T4 p
  27. static void check_value( char *function, int value )
      O  G7 _0 y: Y
  28. {" h" h% A6 x4 |2 b8 l
  29.     if (value == 0)
    3 y2 P2 y; y" p& l' \" d
  30.     {
    4 c( @0 a" ^& k! ?0 a; n
  31.         printf ("\t%s is NULL\n", function);& t# w; s5 G8 e9 k. ~
  32.         printf("\nExiting program!\n");1 [6 S* U9 x) u& V
  33.         exit (EXIT_FAILURE);   
    $ I6 Y4 U1 u" L: q9 A0 m% ~
  34.     }$ _. t# m8 O3 o! e) ?1 U1 ]
  35. }
    , V) Y" J/ ~! ~# ^
  36. 7 s6 o8 q4 G; u1 B# V9 y% z

  37. 1 P& p( ?* q$ v4 C0 ~
  38. static void do_it(void)6 u# s! `# H* T6 |% X- _5 U
  39. {. H/ |- n4 G; J6 Q' Z- [; H- t0 n# t
  40.     int ! n# S! a6 G0 {' P8 n$ P) R
  41.         attach_types[1] = {1};! r8 m4 m- e! H' e1 v- e
  42.     tag_t + H  ^! ^  S1 k& W* }
  43.         rev = NULLTAG,
    0 E# R/ P% [: [
  44.         process_template = NULLTAG,
    ' y3 j8 X; N8 I% |) ^
  45.         process = NULLTAG;
    4 S3 `% }' H- x7 s" a9 @
  46. 7 [) r4 U  p2 f9 l# }' v
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );2 j7 Q' j3 B" B
  48.     EXIT_IF_NULL( rev );
    6 v5 g* Z- P5 R% t# a4 D
  49. + v6 l& g% L, U# v* R1 q" i! a: W0 y
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); & O" Y1 N4 c8 f$ \1 o
  51.     EXIT_IF_NULL( process_template );! l9 s7 ~  J) p. \; i
  52. 3 A# Q$ N9 \' W  V% O. T% s3 g. b% V

  53. " D/ B/ J( a& F( ]
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 7 h! e  u9 v" S# G; j6 \, a& B" R3 Z
  55.         attach_types, &process) );. S1 U3 E% j, j9 b$ ]
  56.   L, c6 U! m, \6 Z/ w# `% @
  57.     EXIT_IF_NULL( process );% }. \6 t4 A( L. |. p5 C: M* I) x8 V
  58. }
    + H& p' o1 I  \6 O4 O
  59. ' L, r3 T1 T7 }/ d
  60. int ITK_user_main(int argc, char* argv[])8 J5 y" C8 a* F2 D' \* ?+ A! N
  61. {
    + W5 P3 ?9 O4 k! j* x& {
  62.     int. h; b; r4 o8 }
  63.         status = 0; & ]! c5 s4 h3 D8 v4 @% A
  64.    . s2 c" t2 ?! u' U: z+ v
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
      o1 \* f4 Q1 `! [2 r! W: n" e
  66.     status = ITK_auto_login();' e! }% l) r4 ~+ J8 E5 V$ O
  67.    
    3 V7 \3 _  F& Y8 S# ~; P" U# ~% ~
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");, a% _' y) r8 q; }) ^  H3 y- Y
  69.     else1 ^6 D/ `0 w+ Q' w( a
  70.     {/ f# g/ y4 ~. j/ K2 C# k
  71.         printf("\nLogin successful!\n\n");& ]& ~6 N5 J/ s- ~9 M
  72.         ITK_set_journalling(TRUE);7 B- {  d% \/ U' x- h" y& S
  73.         do_it();! \) R3 @5 ^& M" O" F' a* _  E
  74.     }$ Z& [0 E9 d) Z. c9 d7 R/ X
  75.     ITK_exit_module(TRUE);, P% d; A* R. U( k
  76.     return status;9 e; M) |- t" M' p9 w+ F
  77. }
复制代码

) E+ ~! j- i: C0 A/ v0 U4 y
& ]' d+ }. }  I2 F% e: |7 _+ c. S+ H% X
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了