PLM之家PLMHome-国产软件践行者

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
0 i( d2 `- V9 j
Teamcenter ITK二次开发源码分享: 创建一个工作流1 F, L/ b  M' n8 _; |. c
+ ^( N; X! s, O( I! ]
  1. /*HEAD CREATE_A_PROCESS CCC ITK */& C- N1 e4 [; h0 H" z" M2 T9 x9 N
  2. #include <stdlib.h>8 x! @% c& e! s" v5 {1 i$ Y
  3. #include <TCcore/aom.h>
    , Z1 D: N$ e- h3 J: E
  4. #include <tc/emh.h>
    $ d! @# b& F% @7 U! g
  5. #include <epm/epm.h>2 I  G5 d/ ?' K5 G6 c$ _
  6. #include <tc/tc.h># Q6 I$ W8 N4 o4 A( F9 j/ I
  7. #include <sa/tcfile.h>
    & i% N& @2 s( }# E: w* R0 y
  8. #include <itk/mem.h>
      m) [5 a) }2 }% [' T! }

  9. - v& f% a) s# H  i$ {
  10. #define EXIT_FAILURE 1 . ^8 N( T8 G" P. j8 w# o  Q5 l- ~) D
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    0 N+ x3 K& S/ ~1 s- F  R
  12. static void report_error( char *file, int line, char *function, int return_code): d0 s" ~8 V! k4 V0 M
  13. {0 W7 Q+ G7 P1 A3 W
  14.     if (return_code != ITK_ok)% [, ?) Y: M9 D
  15.     {
    0 t) y0 H5 B, c) z* W* T6 t5 }
  16.         char *error_message_string;
    $ k1 ]2 m4 S5 F. q
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    5 b: L/ c- X" j. L! T; U3 t. M
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);+ @' O' e& K; n" F9 e+ m1 H
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);( E4 G/ n. d$ f% q/ K0 e
  20.         if(error_message_string) MEM_free(error_message_string);$ H( O3 j: j# G2 t  T1 F7 d! m. L4 @
  21.         printf("\nExiting program!\n");2 h2 `/ `- \2 K* M" b! c: I- y5 }  [
  22.         exit (EXIT_FAILURE);    " x$ W( q3 A- L/ \& B' |, {
  23.     }
    $ ~: p! C. Q7 ~
  24. }- }: [. i& O6 E# S
  25. % ]. M+ y' U$ a- L( X
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))4 s% Y- F" x* _5 h$ P
  27. static void check_value( char *function, int value )8 Y5 q/ ~1 i- T5 W2 W6 v
  28. {; U9 ~. ]: |9 _5 ~8 \- n" r
  29.     if (value == 0)4 h( `# n9 h2 {1 l
  30.     {7 R5 W" i/ l9 G% R8 F1 h
  31.         printf ("\t%s is NULL\n", function);  t4 U' n! w. K2 K7 a
  32.         printf("\nExiting program!\n");0 h/ ?8 @$ l  o/ y4 ?' b7 t
  33.         exit (EXIT_FAILURE);    : ^& k6 D$ k* }8 d8 r$ h
  34.     }) Y  K. w& D$ Y1 A% H* r
  35. }1 i& Q3 ?5 U: m) R
  36. + ]% b  w4 _, B' [$ X
  37. ! m& I: ?8 b! d1 ~" j+ H
  38. static void do_it(void)( \7 t  ~8 w8 a$ H
  39. {2 V; b. G: @, I/ z, M2 q. D
  40.     int
      a. n3 s: n/ I, ^1 Q' p
  41.         attach_types[1] = {1};
    ! `. D/ e, Q" {: ~' A( s
  42.     tag_t
    % F; T1 w3 g* t1 d
  43.         rev = NULLTAG, % r/ Z! C% a( l/ q# E
  44.         process_template = NULLTAG,
    - I' _4 G0 i/ j! `) n/ p% Y
  45.         process = NULLTAG;
    4 A/ q' }4 M* O7 |

  46. ; ?0 ?2 S. \) G9 c  N- x
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );5 D# A, Y2 k5 i1 a8 C
  48.     EXIT_IF_NULL( rev );, P4 ^% w2 z$ S' A" ~
  49. $ h. `( P! i4 J& ?9 n
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    ) r) R/ a( w# i' |4 A9 T9 S! r: d
  51.     EXIT_IF_NULL( process_template );: O/ w/ j% X+ l5 w
  52. ( O" [) L6 A- w6 y2 ~# d2 h
  53. 6 y* g9 c" d) N; V& q
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, ; c: w3 L" |7 u8 O. ]( @
  55.         attach_types, &process) );
    ' P+ q/ K4 u. \0 O8 v+ ]0 u2 P

  56. 5 f. V3 Q" c$ w: k
  57.     EXIT_IF_NULL( process );
    0 l* Z. Z. f# ]6 ^" O; r  p
  58. }+ D0 d1 ^3 [  F' m' N2 l

  59. 1 D0 R9 w9 \/ t; W1 }& W! `& V
  60. int ITK_user_main(int argc, char* argv[]): h; _! ]; H1 E; h
  61. {
    - U' r- T2 w% }; H: z3 L- [
  62.     int8 J. }4 m; B0 I
  63.         status = 0;
    4 ?5 K+ J5 F/ o* C" T1 |
  64.    % @$ X- Z& _; j  U, P6 k8 h
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );: }9 ~$ p" L9 n1 u$ ^7 o  B
  66.     status = ITK_auto_login();
    2 ]" N+ o- h7 a  Y! @# D
  67.    , r' I3 |) r2 t0 u
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");2 T& x. W$ Z* D+ t. X$ D; S
  69.     else
    % J, j7 ]! y& r. W
  70.     {
    ! P2 K9 P) a2 `1 L
  71.         printf("\nLogin successful!\n\n");
    1 w1 e# j. p3 h
  72.         ITK_set_journalling(TRUE);- P% W& o- U, T5 W
  73.         do_it();
    4 d& u/ c+ A. R; l* e
  74.     }
    ; V* D" R, c0 q, Z% i+ [
  75.     ITK_exit_module(TRUE);  E: A9 |0 d$ C& I2 K
  76.     return status;
    & `) ^1 m' g0 B
  77. }
复制代码
6 [7 M5 p- P/ z, Y0 e& ]. G
4 j% c  P+ L( W4 v: `1 Z) I/ K& c9 O

" J! x% W% T# C0 P
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了