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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

+ F% N( f" V1 T+ e5 RTeamcenter ITK二次开发源码分享: 创建一个工作流. B/ w) }) c* y* V1 Z. ]
- m6 g1 N/ j9 w, W& r, L" j1 B
  1. /*HEAD CREATE_A_PROCESS CCC ITK */& y# R* x2 E$ Y
  2. #include <stdlib.h>, A! x) L6 N$ u: u3 l
  3. #include <TCcore/aom.h>" h1 X+ K% v1 @- }. [( u' ^" f! p
  4. #include <tc/emh.h>
    ' w+ t# D+ [, ^- _5 F! ]
  5. #include <epm/epm.h>
    ) j. r; K! C8 S! Q
  6. #include <tc/tc.h>: u% L8 x* c- Y' X
  7. #include <sa/tcfile.h>
    / E' |6 N0 E; d; b
  8. #include <itk/mem.h>
    - C, I# F1 m/ l+ p/ i0 A

  9. # ]% |, ~3 j6 n7 j
  10. #define EXIT_FAILURE 1 ) u( Q! [: ~1 k2 X1 e
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    : P; m1 r: W3 x3 D
  12. static void report_error( char *file, int line, char *function, int return_code)" K! N  d: L9 G: ^! j! y
  13. {
    & s( w8 ^/ i* a
  14.     if (return_code != ITK_ok)1 S) r9 R! b& M7 P: C" \) m
  15.     {
    1 U/ ^9 E% A8 r1 v( ?
  16.         char *error_message_string;3 r" U6 E( M4 [" b9 [0 ]
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);4 d0 ^7 D  W9 I4 H+ A, J
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    6 X, I5 a& ?  j; @, o8 _
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    6 z9 W' {+ K' x* s: B* q% v
  20.         if(error_message_string) MEM_free(error_message_string);. o" C, I+ ]9 ~
  21.         printf("\nExiting program!\n");
    9 f" M  W# k' k, Q( W& Z" r
  22.         exit (EXIT_FAILURE);   
    $ n/ Q8 F9 l: W6 ^
  23.     }
    7 s9 e2 U& x; b% t/ O
  24. }; W" d. H: U4 q$ ?
  25. . h, a  @3 O: l& u
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    ( F9 u% _( A9 m5 K8 s3 \4 G
  27. static void check_value( char *function, int value )% K% O/ s* x! D/ J; `  L
  28. {# y/ e% A0 D  b$ {% h7 A$ d+ G
  29.     if (value == 0)+ P9 E. d( b" J: E0 v1 ?
  30.     {
    % R9 H+ e6 k, s
  31.         printf ("\t%s is NULL\n", function);# y: T% A" ?$ A- |" L
  32.         printf("\nExiting program!\n");
    * C* q0 H7 @# \1 R+ V: g: Q
  33.         exit (EXIT_FAILURE);    , L1 m9 Q9 s) B; `
  34.     }4 u! B6 u0 @& x. W9 A3 \
  35. }
    - F# {5 J3 C" T* Z6 a; A

  36. : B( z; H& Q) j4 }+ O
  37. 9 |! s3 d. r# {. E2 k
  38. static void do_it(void)- ^7 r5 {, B# W' z& W
  39. {- W: G) |2 H3 q) s+ n
  40.     int
      k. _/ R2 n7 b! S
  41.         attach_types[1] = {1};
    ' `5 m: R* H( E8 H
  42.     tag_t
    3 r% w. ?& R! `3 y, m
  43.         rev = NULLTAG,   e. Y7 Z- w* e( B- T
  44.         process_template = NULLTAG, 2 t* d" s# |! s2 z. z
  45.         process = NULLTAG;3 S! k) y& g0 Y8 j1 J- S9 F

  46. + t- D$ u' Q* o7 A9 k( D
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );$ x: s( |( o( k
  48.     EXIT_IF_NULL( rev );
    5 C% W$ Q( s( |" W& v3 ^" k' V
  49. # S+ P  `, X7 x4 U0 c5 G
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); / [  C( S. G; o, r
  51.     EXIT_IF_NULL( process_template );
    ( ?" n, \' E# L1 U2 j5 d

  52. # I9 y5 g1 ]6 g1 n; A* |

  53. + d; \7 x/ C+ T/ O  B
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, ! U  G4 a/ ?5 L9 Q& s" x3 G
  55.         attach_types, &process) );
    . z# e, a$ o4 y" C" p/ J; e
  56. 0 o3 f. k3 e6 e/ m
  57.     EXIT_IF_NULL( process );
    / C  A. [/ z  K9 G/ Q
  58. }
    3 o( u  t" {% `; O2 |/ \% m

  59. ! W  O. }: b. w' E" x+ _% X) y# B
  60. int ITK_user_main(int argc, char* argv[])0 K! B$ m7 J/ R* Y
  61. {
    $ h1 F2 Z& r7 Y. x0 J
  62.     int
    ; k0 J: D! O9 f, @: G3 p- {
  63.         status = 0; " _$ r% m% S$ F1 T* k) x: W
  64.    1 F$ L5 u& q9 D  Q/ C" b
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );5 y2 O, o* M, {$ K# \" R3 W
  66.     status = ITK_auto_login();
    3 n( ^7 g5 {: O( d- e' H9 D% s
  67.    0 J% {- z' c# i# X
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    ; w9 ^* N7 n+ J9 f6 c: J! r$ m
  69.     else4 q( Y7 V( m% }3 d. H$ ~4 y" Y$ e& x
  70.     {+ `" Z0 e) s) J2 E
  71.         printf("\nLogin successful!\n\n");
    9 L8 p9 j1 T7 w) z" U4 Q2 N4 k8 S& P
  72.         ITK_set_journalling(TRUE);% z9 V5 l, V& @  S
  73.         do_it();
    ) O/ m: S5 Q& s9 @* Y
  74.     }3 l- v9 M2 L! F- N5 i9 ]" U5 k
  75.     ITK_exit_module(TRUE);# ?+ c# p% O" [5 X! H$ ^
  76.     return status;
    6 R0 W- B7 K$ `. E
  77. }
复制代码
2 u8 b) M2 k" k1 U# ?' [6 F# q
$ Z7 {( W$ `+ p( K5 C

2 v* G' D5 y% J* j$ n1 z
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了