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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
  O; O$ L8 q% |6 }$ I) |- `+ O$ @
Teamcenter ITK二次开发源码分享: 创建一个工作流, {9 o( I1 h9 }$ ^3 a7 G

4 |4 k" B7 b# y7 @* e' Q
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    1 R, K0 |/ U- ^
  2. #include <stdlib.h>3 D! F+ A8 l6 L
  3. #include <TCcore/aom.h>$ h2 c" [0 O, H5 X, O" m# H
  4. #include <tc/emh.h>4 T5 i6 O% w* H3 L0 q* K. S2 |6 F2 L$ b
  5. #include <epm/epm.h>/ S3 D0 C+ w2 Y9 x: l3 q- ^
  6. #include <tc/tc.h>$ _1 |% K, p5 C& p3 X
  7. #include <sa/tcfile.h>. h, f9 N/ x, w3 J) O4 A# f+ @
  8. #include <itk/mem.h>
    " @* M9 H4 p4 ^+ U  x' [5 K, E2 |
  9. - K) K$ v2 `: m' b8 u$ Y
  10. #define EXIT_FAILURE 1 6 a! C: c7 o3 o3 _6 E
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))9 L! [6 h: j( J2 \
  12. static void report_error( char *file, int line, char *function, int return_code)0 N" }/ b6 a2 X8 w4 c+ q/ ]/ f
  13. {  q4 T8 ^$ H2 c- p( p
  14.     if (return_code != ITK_ok)3 ]$ P( I2 `# Q9 i( }% T5 O
  15.     {
    ) F$ ^) ], M$ d  _8 j7 _9 d
  16.         char *error_message_string;/ @# I& `5 W1 ?( k9 @' J3 U; _
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);/ [& X: `. _; r/ Q7 M
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    , {/ M* _, X2 M
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    ' m* P4 q6 m, o+ i
  20.         if(error_message_string) MEM_free(error_message_string);
    . F! i% F  W4 W- V: I
  21.         printf("\nExiting program!\n");) f  e, G' u- I- g# L: P
  22.         exit (EXIT_FAILURE);   
    ' K' w1 ?9 o- s) \% ]% L1 V6 c
  23.     }
    / \1 A& w4 k9 S6 \, Z. f- k
  24. }2 m6 v, _# |2 [& ~& i8 K& }( w" L
  25. 9 s2 v, H/ ?4 [3 g- u+ o  M
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))1 c' t# ~& w% Y3 S
  27. static void check_value( char *function, int value )
    ! ?/ f3 @4 l8 R4 J
  28. {
    1 q  C$ ]; T" A5 i; T/ R! Q$ |
  29.     if (value == 0)( w1 T! I! o* ~5 S
  30.     {% _& ?: F' r( s: ^. j
  31.         printf ("\t%s is NULL\n", function);
    0 ]; s( d; {/ I9 t7 H! t! S5 ~
  32.         printf("\nExiting program!\n");! f" v; k7 q, Z  r% c" j
  33.         exit (EXIT_FAILURE);   
    * v% |# {$ K( \, [- Y$ p  i) M2 Z
  34.     }5 D+ f( t( w1 n$ v
  35. }
    ( u' `0 L& ^2 l1 C7 Q
  36.   M/ y2 ^" b0 q( y2 l' z1 h* I3 s
  37. : t& N9 m& ]( t, h+ g0 n
  38. static void do_it(void)- ?* j  N! K4 J
  39. {2 q/ D$ B9 V) ]# k, h7 d+ O
  40.     int   g% r, u9 d% q5 R% u( S( S  p
  41.         attach_types[1] = {1};& I( ^: X" N- t( {7 J9 z
  42.     tag_t
      u  ~0 }: {! A' s' z! Y' l$ N+ r
  43.         rev = NULLTAG, , K' q# _) r. X9 X. |  n
  44.         process_template = NULLTAG, " X$ b5 L; r3 Z) U* N% K1 w" j
  45.         process = NULLTAG;
      {3 _! J1 R5 B( r8 Y- o* E

  46. $ z1 }. Z. |6 p1 h+ q3 \) E" O
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );' O# K8 K( n% r! P' E
  48.     EXIT_IF_NULL( rev );
    4 I3 j/ k6 Y4 K( x/ W
  49. # }, o  e" E/ @: E' a0 W
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 8 S0 c6 ?4 I+ B8 d. k, H
  51.     EXIT_IF_NULL( process_template );+ n7 i3 V+ ~0 U! O0 T* j8 l0 k0 T

  52. ! S; `- t) _& h) n: K) @
  53. ( W# l  W& f0 z" M5 ~( E
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, / @! `# @  [3 T  ^" P
  55.         attach_types, &process) );( b* Z  V4 k# A: J" g8 d
  56. 8 j! {, ]8 J) q, Z
  57.     EXIT_IF_NULL( process );/ P$ k& e6 n% f. k
  58. }9 q  G" k2 F7 A& q
  59. ! j+ |4 e  c3 i6 \# w; I$ n
  60. int ITK_user_main(int argc, char* argv[])3 Z3 W$ H! D* G
  61. {
    5 F. M$ ]' u0 A6 d
  62.     int! n3 ^; U' T4 P6 Y( X" Q
  63.         status = 0; ( f- v7 [0 l' k: ]2 y
  64.    
    " n( T3 U3 J# g: T; x3 U# _
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );8 X& A- v8 `" L
  66.     status = ITK_auto_login();: {: a' Q: @6 c" j
  67.    
    ! f; }/ o" [0 G7 E# \- D8 K
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    0 O$ H2 ~+ k; O& ^+ |. Q
  69.     else
    # S# M6 H2 D) Q' K  L" a1 I- e' f( [
  70.     {
    + q, {+ N' ?8 f( M8 s$ j
  71.         printf("\nLogin successful!\n\n");- s5 G' O  Z* o
  72.         ITK_set_journalling(TRUE);
    $ v4 ^# \( w" L7 q  o" V6 Z' ^' [
  73.         do_it();
    $ f" i: f0 b+ _& |6 W3 K
  74.     }
    $ Z4 n6 R: P) D
  75.     ITK_exit_module(TRUE);# S" O' h- A( X( @: |
  76.     return status;7 u. J; [/ e* S
  77. }
复制代码

8 m* R5 a) q" |4 \. C* M; k
! r8 d! S: k# Z( }4 i7 s# g* Y& |& ^& [
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了