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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
$ f' V% [+ S$ G. [7 F/ r: Y/ t
Teamcenter ITK二次开发源码分享: 创建一个工作流
3 h% B. n: W  |7 l/ C
, D8 Y3 t$ {7 S  j
  1. /*HEAD CREATE_A_PROCESS CCC ITK */! B9 T1 L, W  H
  2. #include <stdlib.h>
    5 J* O- r- s6 x2 ]0 w4 Z
  3. #include <TCcore/aom.h>
    % J' G7 X9 C5 |# r+ y3 h
  4. #include <tc/emh.h>; n5 z  ]" p9 ]( ^8 T. U
  5. #include <epm/epm.h>, j) B" z* n" W' J5 m+ \- w: q
  6. #include <tc/tc.h>
      j% X( w+ r; K* ~$ g
  7. #include <sa/tcfile.h>) \, `0 B, Q& }7 ^8 k( L
  8. #include <itk/mem.h>
    $ C' L2 M) M9 N* ]; O# D

  9. : X+ |0 P5 h6 [5 n$ F+ E& v( \% X* E
  10. #define EXIT_FAILURE 1 ( `! b( B- I; m3 F" l
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))* g' ]0 H' y+ r) R, n# @( _5 O
  12. static void report_error( char *file, int line, char *function, int return_code)
    ( F3 ^( H8 p" k2 h  j1 w" b
  13. {
    5 Q' y& C& D% q
  14.     if (return_code != ITK_ok)/ l' ?* ^" s3 G; e0 E: b7 Q
  15.     {1 s) J  O  U2 J8 H8 I3 |% m+ M
  16.         char *error_message_string;) N. s3 [" s! j7 s! G
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);( m# {* B; C: j* T! w7 T5 s! B
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);6 U3 r& d, v! Q  h6 ^# j& a$ d  C; x3 \$ o
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    : N8 ~% Y" `2 L+ t( ]4 p0 j
  20.         if(error_message_string) MEM_free(error_message_string);
    7 v( K: q6 O3 q$ ~6 T
  21.         printf("\nExiting program!\n");
    3 h" F/ n+ Q  {1 C& }0 M: \
  22.         exit (EXIT_FAILURE);    ! u# I( f4 L& v( u6 v
  23.     }
    - A4 {; p4 T! t
  24. }+ _5 K2 F+ r. g$ Z8 P  D

  25. : N2 i6 t+ O! L9 ]1 C- i8 G
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    7 X$ d, F- s  h4 J
  27. static void check_value( char *function, int value ): l# k0 z7 n5 b* ~/ U6 }, d2 v1 U$ q1 Y
  28. {: L) E' H% Y9 T0 `
  29.     if (value == 0)
    2 U7 k& U  p7 A6 T
  30.     {
    3 Y$ E) ~* x8 `5 J( h
  31.         printf ("\t%s is NULL\n", function);3 X+ H, T8 f: Q& s( M
  32.         printf("\nExiting program!\n");
    ) P* W4 X4 G$ _, Q& @
  33.         exit (EXIT_FAILURE);   
    & o9 `4 T7 d+ j, i( D
  34.     }
    % B/ T6 Q9 u0 {5 z# M7 i6 @  F
  35. }
    & C7 \0 V! m) E- ~2 v* S

  36. 8 s( j7 f' U7 a, l, k) l
  37. ) [! C$ x2 G# B# ?
  38. static void do_it(void)
    : F& A2 K8 S0 ?( C+ n
  39. {0 J( v1 t: b8 S, q8 Y
  40.     int   n$ S' \9 j! B- ]! ?  v) @' b
  41.         attach_types[1] = {1};! E% a/ z, T, x. H" N% X. n5 |
  42.     tag_t
    4 }) j8 W) i$ j  w/ c$ f
  43.         rev = NULLTAG, + e2 l' b1 U. l, ~9 E$ P# S. x& ^
  44.         process_template = NULLTAG, & N* u. H3 M: G- n
  45.         process = NULLTAG;
    6 s& g$ n* W7 i: ^7 L
  46. + @# W' n8 K( C& o
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );& _* `- a$ _9 Q& z% D8 o* o8 Z
  48.     EXIT_IF_NULL( rev );
    % @( Z' l/ ?; Y) w" f

  49. 5 u& W' ^6 ?6 ^7 V' q, r
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    4 n/ ]3 U6 `2 {8 z
  51.     EXIT_IF_NULL( process_template );% S; `5 W7 ^* D
  52. 8 U. w7 ^; R+ ^/ p

  53. $ o2 R! M7 Q  j1 |
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    8 y/ |( Q# M/ A' j
  55.         attach_types, &process) );
    9 Z/ c- O2 U; m& |5 M2 s6 [
  56. 6 T6 F! L) V. Z* {* f5 o$ c
  57.     EXIT_IF_NULL( process );
    $ M/ q) z% c! z. {# F8 D- f
  58. }
    # F4 j& q. G$ \* k' N
  59. ; B9 }% V) H6 `+ s# F7 ]4 ?9 M  g
  60. int ITK_user_main(int argc, char* argv[])
    + ]1 T9 a. j  D% S
  61. {
    + X4 E* s8 }. i5 h' F6 U7 C: Q% O, a
  62.     int
    ) z# O" Y! |1 Q7 t& [
  63.         status = 0;   y' @. l+ }; [2 b4 n
  64.    : {* ~& L$ h3 X: U+ V+ ~" X0 I! ]
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    1 \- e0 M) j- \# T' X
  66.     status = ITK_auto_login();
    ! Y1 O1 P4 g& R2 @  n
  67.    
    / ]  l! Q1 Y+ r. k3 \  i( l" N. I
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");" _; ]; a5 u8 W& G' {
  69.     else
    ; Q' k. e* _* _& }: N% _, o
  70.     {* r/ K" g5 _/ z& }  l
  71.         printf("\nLogin successful!\n\n");
    ; m" h4 q' y$ U  P$ K# O
  72.         ITK_set_journalling(TRUE);9 W! N# E% v' S/ z
  73.         do_it();
      D- I  c6 x7 n$ r3 |" @
  74.     }# z3 t* S4 w+ y
  75.     ITK_exit_module(TRUE);
    , a- c# S: @" P; ]6 `) w2 B
  76.     return status;
    . V1 ^/ t! j3 f, M) F1 _5 U
  77. }
复制代码

7 \2 d! _) h) o* J  ?
% ]$ ~) O% t+ @3 {) Z% ?
/ m: {8 p6 `3 J& u, X3 Q$ K* c9 ~
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了