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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

) f4 G6 ?; e" I. I0 r6 LTeamcenter ITK二次开发源码分享: 创建一个工作流9 @6 X% H. n" |% [! L8 p
" Z9 @2 c' B/ }5 R0 e- C
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    ; z# w- p/ D2 v+ [* F
  2. #include <stdlib.h>
    # [) V, L/ N  p7 j( e* N; D2 O$ N2 @
  3. #include <TCcore/aom.h>) y! h& l2 U# j; x+ p1 W% {0 ^
  4. #include <tc/emh.h>8 l8 q4 W* Y# R5 @/ D
  5. #include <epm/epm.h>
    % k7 {0 g! v* J2 V; j/ h" ?
  6. #include <tc/tc.h>
    ; L, l- m2 p. U8 v" ~% y
  7. #include <sa/tcfile.h>
    + m! p5 [7 S  v
  8. #include <itk/mem.h>
    / v  r* i6 P4 E- D, q' i. s* x0 c

  9. ! X5 h4 n; `4 }! _5 `5 Z: b
  10. #define EXIT_FAILURE 1
    . P; S! s+ Z, s5 t: i9 p
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))6 b8 f2 q8 l1 w2 O, L' x7 T% g& r
  12. static void report_error( char *file, int line, char *function, int return_code): G3 S8 j; n- y  _6 V
  13. {8 m7 N/ M( Q! n3 v6 B. D* p
  14.     if (return_code != ITK_ok)" |$ S, c2 w3 n
  15.     {
    # Y/ E) w) y7 Q  X( ^
  16.         char *error_message_string;' Z. V( z. ^0 e4 v$ \8 C' c' j
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);6 ]- o& Z% c; Y  X
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    # Q* h. x3 C, v" t4 P, R
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    % N; b' a3 X8 F! I: d  R3 F
  20.         if(error_message_string) MEM_free(error_message_string);
    , w5 k; X# U0 i
  21.         printf("\nExiting program!\n");
    & D! e! n6 z, U! X
  22.         exit (EXIT_FAILURE);      z5 J: `3 [0 V+ w, ]! A
  23.     }
    , k$ q, `2 K$ |
  24. }- P& i  T# L  n  R0 C) V

  25. 2 K3 n/ j6 [+ l; J4 v8 E+ u
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X))), v* [# P$ t. f) s6 k' L* t+ J4 k
  27. static void check_value( char *function, int value )
    ) c9 @4 y( T$ u# z) a3 n
  28. {0 H$ o# `4 j) o) ~
  29.     if (value == 0)
    9 b1 F' y3 E% X5 m4 K/ `
  30.     {
    + v" _: P) L3 B; }7 g3 }6 T
  31.         printf ("\t%s is NULL\n", function);& B# i% |$ I+ K/ f7 k- @3 F+ U
  32.         printf("\nExiting program!\n");
    ) B/ Q$ q4 ~# v3 t# [
  33.         exit (EXIT_FAILURE);    4 |0 _) O  ^$ Z! P3 @+ L
  34.     }1 j7 j6 ~8 `% t9 M5 A& e
  35. }
    + _2 _6 R( I4 i

  36. ) v5 R1 F" P# O- Z( ^; L

  37. 3 S1 w9 d( O5 T) N1 G& M5 O
  38. static void do_it(void)) d( t/ v5 G, r. `4 L/ P
  39. {* w) s4 D( ^' T+ Y, E( `
  40.     int   G0 G# Y' Y5 o% t3 `1 E2 E
  41.         attach_types[1] = {1};
    / k1 o( P3 m* X  y+ ^) T3 e
  42.     tag_t 9 |5 L9 a. B% y4 Q. p7 F
  43.         rev = NULLTAG, ( M/ R' F8 f! E
  44.         process_template = NULLTAG,
    3 g% j( D" [$ T
  45.         process = NULLTAG;1 ^" p4 @4 l: X& o
  46. 1 V/ o) ~$ c& ?- k( `
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    1 q4 q# K% e3 F. S' ?' R- \
  48.     EXIT_IF_NULL( rev );/ ~6 b  ^3 V6 h7 L# U! b, u- |$ y: x

  49. - C+ a5 c' f' y1 J6 {8 d
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 0 z( _, F( L9 L7 W3 n' u* j
  51.     EXIT_IF_NULL( process_template );
      F6 w* M% @: Z" p4 v
  52. 3 s% P: D/ u6 g( C* R2 j
  53. ( v  D6 q7 [( }3 z
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, / z- c0 n% z& |2 O( B
  55.         attach_types, &process) );
    + ^* ?' ~- R( G0 a1 K: P3 M) Q) P$ t

  56. 3 V8 k  c* ]( t' T
  57.     EXIT_IF_NULL( process );
    % h; A4 {% W  Y, M; H
  58. }
    ( e7 ~4 H- U9 w3 e
  59. % {* s( s# i9 P- f6 L7 j6 U2 P
  60. int ITK_user_main(int argc, char* argv[])# |4 R8 G5 \8 a& ?
  61. {
    / n# n. A, @3 I
  62.     int
    4 B7 y7 R: }8 @* G
  63.         status = 0; ) c7 C4 v. y; s
  64.    
    ( R7 B9 B0 K5 I
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );) k" U7 Y* Z& }' l  ^. W
  66.     status = ITK_auto_login();
    5 `# j5 E/ v* J2 L4 p, X
  67.    4 v% w* B( r4 j0 A: j( A; c
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");! E! @( `8 K, E% K5 q  a: \3 q( a
  69.     else
    $ E0 a/ y; o5 P/ I& E
  70.     {
    ) {* [! ^1 U& ~" `9 m+ U# K1 Q8 N
  71.         printf("\nLogin successful!\n\n");% B+ j3 g9 d& F: k$ b. }  Q7 z" V
  72.         ITK_set_journalling(TRUE);
      I9 F9 ]2 O5 p$ [6 a* `4 j! s7 J4 A
  73.         do_it();5 g1 T. ^/ e1 Y! ?
  74.     }0 O) J6 H2 X7 L
  75.     ITK_exit_module(TRUE);
    . X4 r& m5 g  G" u* R
  76.     return status;
    1 W7 \0 B9 Z7 j. ^0 J3 @# y- {
  77. }
复制代码

- N8 Q: \! z; Q2 |! j. J
7 A5 u! u$ V  G5 Y$ Q) j) ?/ C0 W& P! t( e8 \
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了