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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
3 Z8 C$ Y* }7 D% @: O; q
Teamcenter ITK二次开发源码分享: 创建一个工作流
% k* F4 @; C5 P9 B( P% s
2 e" R) Z- V5 F; z2 T( I2 [
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
      k  X  t. K- W* j8 K! |7 }
  2. #include <stdlib.h>
    ) a# b$ X  y; D2 l1 N% }+ e9 r
  3. #include <TCcore/aom.h>
    1 F0 b% X( a: E" N4 L" o+ R
  4. #include <tc/emh.h>$ ~5 D( Y7 s2 ]* p" d/ X
  5. #include <epm/epm.h>
    + Z+ {9 e: @0 ^$ |6 q9 e; ^$ ]4 u
  6. #include <tc/tc.h>! y% y5 }& i6 O+ s6 r" Q' T
  7. #include <sa/tcfile.h>
    6 \- z& u6 F, T5 P- [
  8. #include <itk/mem.h>* K  K% N5 b" Z

  9. $ y( V2 W. K' L% V0 n
  10. #define EXIT_FAILURE 1 3 H8 I& R9 B& L- m, a3 }0 F  c  ~
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))0 r/ O6 l+ b4 I; y
  12. static void report_error( char *file, int line, char *function, int return_code)
    $ R' ~; [9 K7 a+ x
  13. {4 J9 j0 a  m2 L5 H
  14.     if (return_code != ITK_ok)
    + [0 B/ _2 O# V/ K
  15.     {
    5 M5 x0 e, t( s. O
  16.         char *error_message_string;
    9 @* p. Y5 ?% J: X6 u0 ~
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    1 ^0 {' R4 k7 ~( r
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    / d& {7 _8 B7 l; \3 g% G  `
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    : G/ g6 M5 s  e, ^  i5 h
  20.         if(error_message_string) MEM_free(error_message_string);
    / a; C$ _2 U: y9 K: R2 c0 X
  21.         printf("\nExiting program!\n");
    ! O5 C* I$ ^# s8 b/ u' o. u6 Q
  22.         exit (EXIT_FAILURE);   
    3 M- n7 P/ X% ^/ S' X0 z
  23.     }, U6 F* x/ }8 y" o" Q2 l
  24. }
    : u( w8 k! q7 o% V' h" j
  25. ( h8 i8 o, I6 C& t
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    0 \) y  B, ?5 |: n+ u! x! S
  27. static void check_value( char *function, int value )$ u' A! f3 J7 ]5 `9 g$ ]
  28. {
    8 _- T" ]- X+ f$ Z7 e/ C
  29.     if (value == 0)
    7 d, W* e* _. B& f; O& m. o
  30.     {
    ' X7 `  R. w& B' S
  31.         printf ("\t%s is NULL\n", function);
    ) y) r7 ^* z3 C. R" f+ e
  32.         printf("\nExiting program!\n");: G4 K' x* Z7 x: d# k: ^
  33.         exit (EXIT_FAILURE);   
    9 s: [8 Y, a$ N1 u' x
  34.     }
    + Z: Y0 ^& N6 D5 s& u
  35. }3 h6 k0 x+ H/ W8 k; M( ?
  36. 4 X" Q( w) O8 M

  37. 2 f4 l( w9 [8 u/ S; M7 k5 c
  38. static void do_it(void)
    " n/ j2 l; W- o  {& {8 Y& \* R( a* `
  39. {* m5 }7 H; f( q4 M& z: y
  40.     int 2 z$ X' i* @& q' H' C8 m' \
  41.         attach_types[1] = {1};
    " w2 w/ C+ c/ W0 q/ ^! U' z
  42.     tag_t : Y! B+ F9 X. i% b$ y
  43.         rev = NULLTAG, ' a/ y8 j% b$ _
  44.         process_template = NULLTAG,
    ' D" Q+ I$ G. x& k* u, J
  45.         process = NULLTAG;- r7 K  k8 \8 |& P( H
  46. & |9 [* H0 R) Z4 U4 J4 z
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );# }3 y! P1 i3 D
  48.     EXIT_IF_NULL( rev );
    9 D" v$ B5 r" B  L6 ?

  49. + s8 R: c+ p& e8 D  }, c. \6 d
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); $ b+ {2 h2 }* _0 K3 ~/ ~0 B% m
  51.     EXIT_IF_NULL( process_template );, V6 D/ S/ ]# b# A& ^6 m
  52. : U8 b! Q2 V" L) M

  53. 9 [- S8 y& E5 a4 R4 d
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, , Q+ W& O% l6 {
  55.         attach_types, &process) );
      j* M$ I+ g  y7 R
  56. + u& i- U( G$ e( c, U$ N8 n
  57.     EXIT_IF_NULL( process );6 N5 q. ^& P7 p! e! _
  58. }
    8 h: k* C9 A1 h# j, V# a

  59. ' {; D, t( X% u6 \7 }3 }
  60. int ITK_user_main(int argc, char* argv[])
    ( C- Q( m4 F  x. e: N7 g
  61. {4 b# U: ^, g) I1 T/ a' j2 W
  62.     int0 J* K$ q6 |1 U  V$ R" R% _: r, v
  63.         status = 0;
      a+ J$ {' S* Z& F
  64.    
    ( d/ a& X  o. F
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );4 C  D% L+ U/ Z' G, u  o$ I
  66.     status = ITK_auto_login();7 i9 a1 E% e* K
  67.    7 D) W8 J1 K/ d& s6 u6 O
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
      R5 Q6 ~- g8 k
  69.     else8 d" N: ^: |3 r" f
  70.     {& U) g! l; P7 I/ r+ S0 q% r
  71.         printf("\nLogin successful!\n\n");. I5 w' e  t; b( y& O! ?! K
  72.         ITK_set_journalling(TRUE);5 ?, ~1 a) \# |, U1 N4 M
  73.         do_it();" x% l8 z! A0 ~( [- R
  74.     }' C  r4 O" n# ^4 h9 _
  75.     ITK_exit_module(TRUE);8 W* ^; ~8 d. j  O
  76.     return status;6 i0 E; R7 N. W( y1 V' ^
  77. }
复制代码

2 j: w+ j) M0 R) r' u" Q$ `2 s
* P3 B/ ?. F$ }; t7 Z! F  s9 j" A8 G8 {9 I2 k, n# q
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了