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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

2 g: g( c( ?) CTeamcenter ITK二次开发源码分享: 创建一个工作流
0 b  [5 d" h! q5 r# ?4 K. t
0 u! M! a. Q1 V8 j" M
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    / O/ i* ~: J# v" K' J. l0 w
  2. #include <stdlib.h>
    ' T; A& |' r$ \! B! O
  3. #include <TCcore/aom.h>3 r! x5 ]4 J7 A6 q& L# E
  4. #include <tc/emh.h>
    $ H: G5 t, d  ^3 W6 b
  5. #include <epm/epm.h>
    4 D8 }9 {- h) ]7 Z+ y4 q5 S
  6. #include <tc/tc.h>
    " z4 z. s4 V, \7 w
  7. #include <sa/tcfile.h>" g/ C3 ?* Z$ O* p+ E
  8. #include <itk/mem.h># w0 T7 i9 N9 o$ _; O. Z

  9. ' l* o( h" c8 F( Q
  10. #define EXIT_FAILURE 1 3 K9 c3 B: F8 ~; v! G
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))# b% h8 ?+ L1 C6 o
  12. static void report_error( char *file, int line, char *function, int return_code)1 L7 Z/ ~; u: \( y2 B) J
  13. {3 z  ?- v. Y, ]$ [: R3 o! N/ s
  14.     if (return_code != ITK_ok)( M8 m) W& W& k. B
  15.     {
    6 h: i. E. f) c2 n# d
  16.         char *error_message_string;
    ( f$ `) H0 Q& f8 v2 x* O
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    5 V% f; x0 s7 s* n% H0 M. H
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);3 T6 X/ I7 ]0 ?
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    0 w/ A2 A# x! @! X8 I, `1 B1 U6 @
  20.         if(error_message_string) MEM_free(error_message_string);5 ^8 a' p, y  [+ t5 @7 y
  21.         printf("\nExiting program!\n");
    ' y5 k+ H8 }6 ?. K0 U
  22.         exit (EXIT_FAILURE);   
    2 M4 I1 K- ?5 p2 s5 K. ^3 E
  23.     }1 h; t- W9 {- W7 E
  24. }
    7 `( B/ M2 d: p- k2 n  t* r

  25. 4 v5 E$ Y5 W! S" l1 J8 {
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))8 q( }' R- q& m; \1 \
  27. static void check_value( char *function, int value )
    * V" a( L) O5 [3 T4 N8 D# d
  28. {
    " f! w3 e% M+ }8 A2 [5 [
  29.     if (value == 0)) j9 V% ^* q; @0 n* R  m8 C
  30.     {
    4 g) M7 ~8 d( x( [! ?, H  g/ o
  31.         printf ("\t%s is NULL\n", function);
    + ?: V3 F* A1 c; n; l: Y1 L& |4 s7 e
  32.         printf("\nExiting program!\n");
    3 I& d+ e1 U6 K8 o& g' \
  33.         exit (EXIT_FAILURE);   
    3 M- N. Y. [- v
  34.     }
    9 G* i' m5 o( B1 v, D  N( Y1 g+ C, ], d
  35. }
    ( d2 F$ ^0 H) }! d( J4 S' U9 U$ X% O
  36. . t5 o9 q; |- p) o0 C/ X% I9 ?
  37. 9 s6 c" d1 {; q. e6 }
  38. static void do_it(void)* @. {5 v# Y8 l  C
  39. {
    0 p( [- x3 W" A; a# o- y
  40.     int $ R2 A6 t: v1 b) g! O; I4 g
  41.         attach_types[1] = {1};
    ' y4 u1 k" b2 C/ @6 l6 \
  42.     tag_t + E5 c* J, y  \. w& E7 w* Z
  43.         rev = NULLTAG, 7 w3 r  |8 j: v3 a' J# U* l. b& Q
  44.         process_template = NULLTAG, 9 f. }7 Z9 H. V, E0 O0 q: t
  45.         process = NULLTAG;
    & Y' H& \/ I9 \0 ^# x

  46. " `: [! P6 H4 W$ x* ^9 J( B( B" Y# V& E
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    $ b: C* @$ \6 x9 b$ i
  48.     EXIT_IF_NULL( rev );
    * R" y3 O' F  \6 X

  49. * N, o; c& u- L% u! h) u
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 3 J! Q( r0 }4 ], l& x
  51.     EXIT_IF_NULL( process_template );
    ! S, n. y9 w% v' b: k
  52. " e1 E0 q$ H# W
  53. , D! a7 p# w5 z
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, ! e8 |+ z# `* F) z1 m
  55.         attach_types, &process) );' A6 n8 Y- f9 C4 n; [% F4 m

  56. 8 y& c; e/ a% K. `4 |
  57.     EXIT_IF_NULL( process );
    7 ?1 S9 ]5 ~+ W$ U2 m
  58. }
    4 O; O+ d! J# j% W
  59. 2 f& N. |# k4 `; l
  60. int ITK_user_main(int argc, char* argv[])% D) j2 V' ?% G, n
  61. {
    8 U$ `7 i' b6 V4 x) O
  62.     int- Y) g) d/ d2 q, G9 h
  63.         status = 0; & q, J3 M# s- ]9 u6 P
  64.    0 e5 L( n6 P% m
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );0 Z4 P0 U: B7 _9 J
  66.     status = ITK_auto_login();
    5 u: N* \/ o# E( S3 [
  67.    
    1 `* m2 J& C- w
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
      F# `8 F+ W4 }7 V7 [. v
  69.     else& K  i! r+ _' Q3 X1 i
  70.     {; s* A2 @! v, ^; y! }+ I( @
  71.         printf("\nLogin successful!\n\n");& d6 }/ d+ @7 h* C$ R
  72.         ITK_set_journalling(TRUE);8 h  ~/ B: s5 q# D. p, b
  73.         do_it();% V% _3 q7 J0 g( [5 u% s
  74.     }
    0 g4 r7 u& n. Y( M. W7 d
  75.     ITK_exit_module(TRUE);
    1 e! t' t8 H1 J8 v! L2 ]; }
  76.     return status;7 [7 i7 P7 R. ^* F* J
  77. }
复制代码
( N+ Q; o# z* ?& f9 c

. i/ j% g1 _  b3 e
0 v& p! h" [6 x& c3 R
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了