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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

4 P& C" N1 E3 R; j5 `Teamcenter ITK二次开发源码分享: 创建一个工作流
. M8 S* @; ]! H
6 o" j  l5 [4 G9 O( r. G; }
  1. /*HEAD CREATE_A_PROCESS CCC ITK */! L) \/ R2 U9 Q4 _/ R3 v' r5 G
  2. #include <stdlib.h>$ o0 V2 m" B5 w# U  F
  3. #include <TCcore/aom.h>
    # W. p- j- @& O/ E
  4. #include <tc/emh.h>
    4 W4 F; G/ M: r- N2 N" ]5 c
  5. #include <epm/epm.h>
    3 r9 u! w# }* r# z6 h
  6. #include <tc/tc.h>
    & M/ q9 n* A0 \. c) i
  7. #include <sa/tcfile.h>
    0 t/ }5 L: r2 ~. g: L8 D4 ^! F
  8. #include <itk/mem.h>
    1 d, [0 y, K5 E
  9. - N  O; v/ ?) t% z. e: {
  10. #define EXIT_FAILURE 1
    1 u  i5 i* y8 j, z
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))7 _- n3 F7 x- H6 R9 W9 B, E& H
  12. static void report_error( char *file, int line, char *function, int return_code)
    2 E( E2 U/ Q. F' V( b
  13. {
    % P. d1 P2 o0 k
  14.     if (return_code != ITK_ok)
    / ~* n% P4 R/ E
  15.     {! z! F6 R" Y2 Y: l0 h
  16.         char *error_message_string;
    * F8 \# @/ A5 G+ [6 f2 F* L' T* [
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);; A$ k. O4 f7 i! S! g2 C7 G
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    5 k  ?3 D  X( ^3 M" i7 L
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);' `* F1 L; m2 T1 ]1 @
  20.         if(error_message_string) MEM_free(error_message_string);
    5 {- H( P( R% D5 Y: F: Q
  21.         printf("\nExiting program!\n");
    ; p6 N9 F& v# {7 S  {1 F
  22.         exit (EXIT_FAILURE);   
    6 F: B2 U6 C  g5 a6 H7 v* ^. \
  23.     }
    3 p4 p& L# R- o: A4 z4 X( Y& s  p
  24. }
    , B& C! I! i. a' j/ G4 D! z( b

  25. ( ^, B: Y* f$ L6 A% P0 H; R4 J
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    0 {3 {4 {5 h3 U
  27. static void check_value( char *function, int value )6 l' b8 L1 M$ s
  28. {, B- I3 ]1 o2 F0 N. m- E
  29.     if (value == 0)
    & H8 w& `, ]2 X& B5 K
  30.     {
    8 z; x1 t$ E1 ]% }* N/ F# n: \& P5 a
  31.         printf ("\t%s is NULL\n", function);, r8 l3 m" L0 T$ t3 |2 c4 d
  32.         printf("\nExiting program!\n");
    / n4 n3 s7 \: W
  33.         exit (EXIT_FAILURE);   
    # F0 f2 V! Z& P! j
  34.     }
    ( a1 x' ?$ [9 b( d
  35. }
    6 L4 @4 r. o) S' y; |
  36. 7 P  i9 }0 g7 R; c1 i) B
  37. / }, i  I4 `% c
  38. static void do_it(void)
    6 G6 T( [5 r. p% p5 t0 Z
  39. {, A6 V8 n- n# ?9 L
  40.     int
    2 z8 d& ^$ H) [9 x* V
  41.         attach_types[1] = {1};7 D; Z5 x- }+ O% S* _& a3 q. p+ s
  42.     tag_t ' i/ R+ ^7 A% w9 n, ]4 g$ s( Z
  43.         rev = NULLTAG,   A: F1 t3 r# d) m7 N% a& O  P2 P( O
  44.         process_template = NULLTAG, * {! j4 K3 k) }% b. U* V
  45.         process = NULLTAG;2 g( ^8 w  h6 c3 ~
  46. 0 k1 M, `  K) _: ^, ^9 W
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    $ t5 N$ N" W! c
  48.     EXIT_IF_NULL( rev );  A+ s, z- i/ P+ n

  49. 2 G. N7 N, z6 z1 L
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    - F- }! A+ J6 L0 [! U3 P+ C
  51.     EXIT_IF_NULL( process_template );
    ( D& p6 Q4 K7 p

  52. - t& n5 V  k- w7 J1 E8 [
  53. 6 r/ ?/ G7 s4 d! r( Q, a  k" g5 A
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    * g$ e6 G6 s  l1 h  d
  55.         attach_types, &process) );
    & b4 {9 k0 H. ~3 }' r  }

  56. 2 O6 H# {/ ]8 t8 D1 |  S
  57.     EXIT_IF_NULL( process );1 b  O  z1 M5 p
  58. }3 U1 S2 j2 Y( o2 |# N4 i, x$ P
  59. 3 x8 h9 {) h2 z# R4 Q
  60. int ITK_user_main(int argc, char* argv[])
      F- x' F3 v; H3 Y
  61. {5 j& T0 [7 u; C6 a
  62.     int
    $ d# S$ \! |: T  f: w) ?
  63.         status = 0;
    ) t# A  M5 R5 |% R2 q0 X
  64.    
    & t/ x4 h% H: u$ J5 G" V
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );7 @! Z8 e& ^" ?/ |- B
  66.     status = ITK_auto_login();
    8 z' h; M7 }7 J6 L: c
  67.    5 {, J" B& K0 u
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    2 M" O6 A+ _0 A: i! l$ ~, J
  69.     else
    3 x4 M9 o+ r% z, }
  70.     {
    9 U8 C: }, Y/ i0 n- J% K1 Y; i
  71.         printf("\nLogin successful!\n\n");# q/ t& s: @% Y( \4 B+ x
  72.         ITK_set_journalling(TRUE);! r- I. L7 Y# w. H: E. i  g" p
  73.         do_it();8 D1 ~) d  z. o0 |) I
  74.     }5 W% K' y; T  ^/ H# @: q1 P4 P+ D
  75.     ITK_exit_module(TRUE);$ R2 A( {/ q5 X8 F5 |
  76.     return status;$ |: t! H0 [2 S9 P
  77. }
复制代码
% q4 J. l( a0 L! s$ M$ X9 I1 y9 W. p

" V, R2 t4 O! u3 \4 b/ L" k& \2 u  c3 r4 g0 L7 G1 V
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了