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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
5 s! |$ ?5 e5 p+ u3 }7 A
Teamcenter ITK二次开发源码分享: 创建一个工作流
0 i9 p  k' G- j! |# t
4 S% \& J5 P8 R; i  s0 X  e  Y4 h( m
  1. /*HEAD CREATE_A_PROCESS CCC ITK */& ^0 J9 f! z9 q9 M
  2. #include <stdlib.h># S6 M% A0 \/ z; Q+ i
  3. #include <TCcore/aom.h>
    ; X; [$ `# o4 Z& N
  4. #include <tc/emh.h>6 z1 b1 K" n9 d3 t
  5. #include <epm/epm.h>! i& d2 m0 [( y* \) L
  6. #include <tc/tc.h>8 [* K. }% q) h: H
  7. #include <sa/tcfile.h>
    + g) W5 g$ e9 a* Q
  8. #include <itk/mem.h>
      E9 Z$ W! p5 N1 h- ]% a& T

  9. 8 ^0 {. Q, @2 ?0 k7 V
  10. #define EXIT_FAILURE 1
    ! J* @3 \5 Y( b0 Q( }: K
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))6 [% I+ D( F5 E' C4 p. \4 a& m# g
  12. static void report_error( char *file, int line, char *function, int return_code)
    % u9 e2 d0 [" X  m) \; g9 V0 l2 H
  13. {) @/ P& ]- B# j! q% _, ^
  14.     if (return_code != ITK_ok)
    1 Z3 A+ {2 D% `: U* L8 {7 a
  15.     {
    ' l" P& q( s  W; q* _
  16.         char *error_message_string;/ c, V3 Y) M5 d7 W* |. n
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    ) V5 c) W; F% q1 n# l/ i
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    * o" |/ i1 [  W
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);1 R% }/ T" ^0 k' M+ ]6 n
  20.         if(error_message_string) MEM_free(error_message_string);
    6 l  `  S/ r" N) ^% i
  21.         printf("\nExiting program!\n");
    1 X0 G$ r+ _$ P: R
  22.         exit (EXIT_FAILURE);   
    ) ^1 A6 A' d7 G) L  ]3 h- Q/ x
  23.     }  s/ e  m0 o, r0 r
  24. }
    6 I/ \- t( q3 ~! v' F8 F" h, I

  25. , A. r2 w2 A' z
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    7 U( P" n( U5 a# k' _* f
  27. static void check_value( char *function, int value )4 \/ T( q( F9 j
  28. {( }7 Q: E. k) S7 c0 I
  29.     if (value == 0)6 t- j9 q# z6 X2 e$ x1 \! K. m5 [
  30.     {6 j; F+ K. S5 Z7 _  E
  31.         printf ("\t%s is NULL\n", function);
    ) O2 U: ]% ?/ v4 @/ }) X5 Q
  32.         printf("\nExiting program!\n");
    5 I: }' q! ~0 k) j9 q/ t8 L6 E
  33.         exit (EXIT_FAILURE);   
    3 k& r- d9 c- ]% e3 W0 c
  34.     }
    , h+ @- X& e- S3 Y+ }
  35. }$ V) O$ x( H' d0 K% j6 q+ J1 |
  36. % P2 f+ q. K$ r& R; W* J+ G

  37. 6 ~' T9 A# D" T% \& t7 x" E6 i
  38. static void do_it(void)
    3 g& I- C2 i1 {# m; V4 L% }
  39. {0 R" K4 P7 C. t0 }, S/ c
  40.     int
    ) y: `. j: s0 q9 \1 {9 m
  41.         attach_types[1] = {1};$ x% h  s' G3 n* W# e( Y: F
  42.     tag_t
    - e  S; f7 V" s& d# ]" i
  43.         rev = NULLTAG,
    : P& J5 G% ~8 [2 h
  44.         process_template = NULLTAG, 0 x! F: t, T* r
  45.         process = NULLTAG;
    2 N; L; `- a5 a2 k4 w9 a9 c. y
  46. 9 C% n- z% s. |( _( n  L7 f
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );) m, z& ?5 r8 J
  48.     EXIT_IF_NULL( rev );
    / L$ f- h+ f! @" r
  49. 5 W9 B/ U' z* K- |
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    ; g3 v! v$ Q; p  ^# q, k8 f
  51.     EXIT_IF_NULL( process_template );' C' x0 v: @9 G+ m
  52. % p) c  @3 n/ Q$ C7 |% o8 t
  53. : ^+ q! m% V2 f1 z) v- O5 s
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    & L( T" e- }$ d7 K4 r6 k  _6 J9 k
  55.         attach_types, &process) );
    * j: ?( D  i2 g9 {- ?

  56. " U9 A  |- }5 [0 g$ u6 _
  57.     EXIT_IF_NULL( process );
    9 F2 ?% i! E# [7 f7 y: V
  58. }+ {+ r) p5 G3 T4 A
  59. 8 _- A8 r0 I1 |: G2 C% B
  60. int ITK_user_main(int argc, char* argv[])
    1 P- N3 G9 G* \! v. D# z
  61. {
    5 ^4 b5 W. Y, F1 G3 F
  62.     int
    . \: Y* k1 g3 l0 e
  63.         status = 0;
    , h! Z, k1 o# c4 W* t
  64.    
    3 X/ @) Q" @4 K+ h
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    ' ?* b$ b" Z9 `2 }, ^. @8 L
  66.     status = ITK_auto_login();
    ' R& t  U3 I5 V/ m
  67.    7 l- z1 K- F; q1 R
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");; Y1 ^0 q/ [) _
  69.     else* m  J, q5 {$ `+ }6 l, F
  70.     {
    2 i5 N3 U: w9 N
  71.         printf("\nLogin successful!\n\n");4 a! l7 R( L  p$ k0 e; l
  72.         ITK_set_journalling(TRUE);
    # O& ^0 Z9 m: X% e0 M
  73.         do_it();' F/ H" c1 X% v; o" ^
  74.     }0 \3 O; ^. k' `' |: ]' |9 I+ U
  75.     ITK_exit_module(TRUE);
    1 D% X9 b( K1 y) r2 N- j4 ]$ C' M
  76.     return status;( K2 r3 J; ]" J' Z+ h
  77. }
复制代码
) Z3 B6 @. [, I* l

7 K/ O1 \  P, G( l
' A, R. E. x8 g, E
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了