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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

8 f2 U3 i! f- ATeamcenter ITK二次开发源码分享: 创建一个工作流
5 ?# }# I2 N4 Z! B
" _/ U) s, V3 d% ]1 z  s8 q% m
  1. /*HEAD CREATE_A_PROCESS CCC ITK */" G4 |/ {5 d, k8 D
  2. #include <stdlib.h>
    - _; E! S+ q- F9 c
  3. #include <TCcore/aom.h>
    % C, @4 v: j0 Y# i
  4. #include <tc/emh.h>
    $ P  u4 |; N% |+ Q* }
  5. #include <epm/epm.h>
    ) r/ ^& U/ `3 B9 n4 i
  6. #include <tc/tc.h>
    4 ^) ~/ A! H" x4 p$ x
  7. #include <sa/tcfile.h>
      w, S6 b1 R1 ~
  8. #include <itk/mem.h>. E& k1 ~: C; A& `' j+ Z" O2 [1 R
  9. & O+ j; i6 A7 i/ I$ m6 P
  10. #define EXIT_FAILURE 1
    7 I+ y& @* c: h! Y1 h+ i. X
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))& x& y+ W& [( l) w3 c* U
  12. static void report_error( char *file, int line, char *function, int return_code), G5 I# ~( m2 _( B( K* `
  13. {7 u0 F- T* H3 H) s3 G
  14.     if (return_code != ITK_ok)/ u! }$ c+ M; H& U
  15.     {
    2 T% g: M; v* s( J0 o; P8 J
  16.         char *error_message_string;
    , \8 u: O+ B; |8 u. ~5 {
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    * k2 B  E& `0 M. k  @8 O" q5 p5 I
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
      R& @3 ], i0 ~9 C; }: B
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    7 y' Z% s5 Y* y- ~) V3 D) H/ \
  20.         if(error_message_string) MEM_free(error_message_string);
    9 j& X5 V& w; P. p1 I  W* w
  21.         printf("\nExiting program!\n");  z; {" b) w+ ]! }4 B% ?8 R8 n+ c
  22.         exit (EXIT_FAILURE);    " m" @$ W, k) ^3 }0 p/ v
  23.     }
    * E. f+ ~1 T0 G
  24. }
    & X- V: A9 }" l! x  _

  25. 8 C: T6 ?. R7 h- [) Y. ^3 Z
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    . t1 T& Q) Y, v( G; d% g  o
  27. static void check_value( char *function, int value )3 A5 g, p, |3 d' H- t  Q5 a
  28. {
    8 E( _3 J0 \. p! H4 f$ ]+ p  G
  29.     if (value == 0)
    $ v/ _4 H3 o6 @
  30.     {; J8 u$ N+ p$ Y6 c/ @/ a; I
  31.         printf ("\t%s is NULL\n", function);- Y  Q- n- w* H& W1 i
  32.         printf("\nExiting program!\n");! @9 `  n7 Y, B  ~* t
  33.         exit (EXIT_FAILURE);   
    2 q; v: j9 k, |# N' `. R  v
  34.     }
    ; `8 y& M8 Y4 p' l( {
  35. }
    9 @/ c/ V2 e- s
  36. # X- J6 F4 }5 V0 H- n

  37. 3 r' p5 Z5 P/ ^7 U3 T: i
  38. static void do_it(void)
    . [( s" T' R: q# _  X2 M: k
  39. {
    ! G+ d7 R; l* S+ r. o& l0 K7 t
  40.     int
    - F  W  `* p6 F
  41.         attach_types[1] = {1};. A# y! J2 p: X$ \
  42.     tag_t
    % n0 l) w* z$ B/ ~
  43.         rev = NULLTAG,
    ) [/ j; n  Y4 l2 q3 w# h+ f
  44.         process_template = NULLTAG, 9 n; @3 t! o/ U7 N% y
  45.         process = NULLTAG;, D! u; \' }" S5 f
  46. ; {7 M2 G. h6 s! V0 h
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );' i6 w: j4 B* a' ?) @7 D( c: ~
  48.     EXIT_IF_NULL( rev );: t- M1 Z/ ?& k

  49. 1 w% F5 Z. d9 r( v0 x# B, b
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 9 F5 `4 x. v% u2 K2 ?( R
  51.     EXIT_IF_NULL( process_template );8 Z% {3 I0 O) J8 w5 _1 R3 C! D+ j" L
  52. & G1 {* h- A, E
  53. 3 d% r8 w8 u* C
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, . z* s7 a( ?& ^$ V' C3 @9 j
  55.         attach_types, &process) );
    / n3 e, R: Z1 \5 G
  56. / ]6 J- N( v, T, _& s' X2 e
  57.     EXIT_IF_NULL( process );( Q4 `2 b3 @0 B1 m  K( z0 T% I. ~
  58. }1 B( [+ U6 T1 F

  59. - v5 y& \, E1 x2 K# k
  60. int ITK_user_main(int argc, char* argv[])
    5 u* U4 s( t) q: j
  61. {
    3 ]# A( ]+ u! l
  62.     int+ ]9 w6 I' c3 u* W" [1 M
  63.         status = 0;
    % ?: C* I0 m0 [
  64.    ! R$ q" }( a) s7 t1 V3 K- @% e1 w
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );& _& Y" A! v  Z, Q
  66.     status = ITK_auto_login();
    1 v, R+ q7 W+ d: J; J* s% I- W7 L
  67.    
    & r  w& k! r2 U- K/ D- T
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");6 t# V/ f% ]4 ?0 i1 H! P
  69.     else
    - [! v: d6 Q8 A9 A( J
  70.     {; Y( E8 K" w5 I- ~
  71.         printf("\nLogin successful!\n\n");
    3 d' M( I& o0 h0 W3 Y4 X5 {9 j
  72.         ITK_set_journalling(TRUE);
    8 w( n  v; @, d4 f* k# s* @
  73.         do_it();8 o* V; q4 g0 u5 ~! s6 F) m# {
  74.     }
    : d% P8 S7 e. `- f" ^# ~
  75.     ITK_exit_module(TRUE);+ t4 D& t9 f5 a% Z
  76.     return status;
    ' j  m) [$ w+ x* X) `
  77. }
复制代码

- Q2 P: c" G& g3 Y3 R8 i% w/ z5 |$ B  K% m( \0 Q6 Z
! p5 i5 B) x2 Z* z( B( v# k) B
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了