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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
7 F4 F! ?) L  J% \" N# k, {8 Y
Teamcenter ITK二次开发源码分享: 创建一个工作流7 m, g$ x& @) G4 H. Z4 ]3 i; {

5 w( I" y! E  [# ^
  1. /*HEAD CREATE_A_PROCESS CCC ITK */# ]# u2 e; K$ E, F
  2. #include <stdlib.h>1 Y0 P% f2 f% h/ l. H8 \) x
  3. #include <TCcore/aom.h>
    5 C* \) }4 z. }' R
  4. #include <tc/emh.h>3 M! l  L' D# A$ j, J) s) ^
  5. #include <epm/epm.h>1 k. K; f3 J$ i$ c, C, p9 [% B
  6. #include <tc/tc.h>
    : v. s/ b! E+ D6 n0 R
  7. #include <sa/tcfile.h>
    2 j  p0 J1 a; c4 [8 [* V4 N
  8. #include <itk/mem.h>9 |# [% x8 E. M7 g* P/ L" l. W

  9. 5 J+ T  J" c# T. V% P7 K
  10. #define EXIT_FAILURE 1 % N' O  i/ x/ `! Z7 j' F% h
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    % }, K8 B; ?/ G
  12. static void report_error( char *file, int line, char *function, int return_code)
    & f+ f: ?  b- T
  13. {- ?* W, K: b8 a; V5 R  Y
  14.     if (return_code != ITK_ok)
    9 y0 [7 a9 h7 |. ^# `% j
  15.     {
    . a7 ]: O. d8 }  c# R. h
  16.         char *error_message_string;( O$ @/ F& u; \. u5 f
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);" A) k4 q' P% S  D/ c. g) a
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);* M7 s$ G! g' B" ~
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    9 a, E  t. G; D, ^8 e
  20.         if(error_message_string) MEM_free(error_message_string);# W4 F+ F6 X  {( k! n
  21.         printf("\nExiting program!\n");
      I/ p0 P, G. B4 z! u4 G$ ~* R
  22.         exit (EXIT_FAILURE);    ! n1 P& N1 i- J- V6 C, p
  23.     }" k4 ^6 U6 R8 X; N* h1 Z
  24. }
    ( z4 O- r6 r) V/ B/ S

  25. 9 W+ j) g: @& N& k
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))6 r, N% g) Q4 {8 j0 w
  27. static void check_value( char *function, int value )
    1 X+ e6 g$ Y+ E& m3 \
  28. {( ~( N5 f1 f$ A4 j
  29.     if (value == 0)( X* K# U" Q3 j
  30.     {
    2 V5 `9 [" f4 ]: Q; c
  31.         printf ("\t%s is NULL\n", function);
    + J% |* Z9 f' f) W7 B2 D0 O
  32.         printf("\nExiting program!\n");! H: P5 p7 E/ P$ d9 W
  33.         exit (EXIT_FAILURE);    1 s8 Z" C. a( ~
  34.     }
    . ^: |1 N: x; t# W0 t, D; G
  35. }" ?5 f: F! g& m8 k7 v
  36. * P+ Y  ~) p$ o1 n1 m  H! m. T
  37. ) P  k9 d& }+ g; K: a" |# S
  38. static void do_it(void)2 w0 A  `- }0 p& k9 D* y! B: p
  39. {. Y" E' v! Q3 h" k
  40.     int % Z: j+ o/ J- B
  41.         attach_types[1] = {1};
    $ `0 Q, q8 O# z/ `2 j
  42.     tag_t   ~) k5 t7 I1 o8 k
  43.         rev = NULLTAG, : j) ]1 _- f* X3 K# D
  44.         process_template = NULLTAG, ! M+ O1 ^, L% a0 c: Q. ~" B
  45.         process = NULLTAG;. c) I. ]# s8 v+ J+ a5 Q

  46. " f: U% o' v+ _& G
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    2 D3 T8 C+ V4 O9 N5 L
  48.     EXIT_IF_NULL( rev );; i7 u0 D" {) M1 s2 ^, K
  49. 5 {# {2 I7 U. J# |, E  a
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); ' }: u) [) S" r* Q
  51.     EXIT_IF_NULL( process_template );0 [8 @' \6 V) d- o2 p! y
  52. 0 h4 E: G- u+ C+ q$ u
  53. / m$ @4 l: k' g4 @0 O0 i' Z
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    . z3 m3 I# g7 p
  55.         attach_types, &process) );
    9 G6 @' ]- D; g" S. a- Q

  56. ! U4 U& _- i6 f! E: }) R
  57.     EXIT_IF_NULL( process );# w: g1 q6 Y1 N2 @$ q6 `
  58. }+ Z* P+ O( R4 W( h, v- _
  59. 5 l' f* T# [3 V4 C" E4 ^
  60. int ITK_user_main(int argc, char* argv[])7 W: B" n& O2 J5 I( M
  61. {
    / n. L; J% R5 k. }) A6 e
  62.     int6 [/ |& E0 z. W9 O9 }, W& T
  63.         status = 0; 3 L: w; e* L7 r& m7 j$ f, ^
  64.    
    ' }7 T* {0 V2 b1 w& V
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );, U( e, {5 @/ R& }3 C- w/ N
  66.     status = ITK_auto_login();
    & [7 N, N* F1 x: |% E  I/ w+ x
  67.    
      ^1 O' ~' T& T' |1 W4 f1 ^
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    0 @! u7 M$ D5 T) R+ |- n
  69.     else
      p6 f% `/ W# `4 z, p  i
  70.     {& M6 ]( \# t# ^% A
  71.         printf("\nLogin successful!\n\n");
    . _. a- q8 [5 j1 g5 i2 Y) q: K$ F& d
  72.         ITK_set_journalling(TRUE);
    ; O- G* V9 A+ e9 B5 o! }
  73.         do_it();" z* n- t; Y: s3 u, h7 H
  74.     }
    9 g! A& b; o6 s+ M: \. t- U
  75.     ITK_exit_module(TRUE);
    5 {8 N. [; I" ]  h
  76.     return status;
      E+ L2 M7 Z2 K3 e( A3 R. \2 s- y& L
  77. }
复制代码

4 Z* J, y* z) ]1 \  ?1 v9 G0 ^7 L* p2 A. a7 S
4 J+ F$ p; ]6 _$ L8 x* @* D' T+ M3 U1 t
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了