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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

% X2 d/ e$ O9 k% fTeamcenter ITK二次开发源码分享: 创建一个工作流
7 @# O1 L5 `" \0 B/ [3 p  ^" Z! p9 c! X7 ^% W; o( ?8 W
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    ! D3 X3 `8 |( a
  2. #include <stdlib.h>
    # y5 N+ ]& W' B( |( ]/ |
  3. #include <TCcore/aom.h>
    + i" c+ G! `+ z; R$ L% g$ P! o
  4. #include <tc/emh.h>6 e3 F! C; [. G/ T
  5. #include <epm/epm.h>
    * `2 ^* O) E# d1 {& ~, t; {
  6. #include <tc/tc.h>6 Y% V' J% l2 v  L$ ^$ q& I
  7. #include <sa/tcfile.h>
    # `5 h0 s! O: A
  8. #include <itk/mem.h>
    - Y$ d) s% O- Q- h0 U. U+ p% X
  9. 3 `+ X2 c1 B1 U" e! m% I
  10. #define EXIT_FAILURE 1 ) ^, i9 N  X4 C0 q  M& t/ g
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    % t! ], I4 o$ B, c
  12. static void report_error( char *file, int line, char *function, int return_code)
    : P1 M9 a6 v3 b& E! Z6 z2 ~; B9 o
  13. {3 h: q( K) F* g
  14.     if (return_code != ITK_ok)
    ! O+ F2 \2 k9 i/ `9 w
  15.     {1 J; v/ @; x6 m2 R8 g
  16.         char *error_message_string;% [6 @+ v- \/ u2 R( c$ u' v. o
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    . o2 ^% o" p8 L1 T
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    / Z# Q6 ~( @/ A1 B: P
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);& }' A8 }  E- G- p$ w' r7 j: Y2 w
  20.         if(error_message_string) MEM_free(error_message_string);3 T3 s! n) r3 v5 m0 K- V- @) u2 p
  21.         printf("\nExiting program!\n");
    : R4 N2 C( H1 s5 x5 D* S
  22.         exit (EXIT_FAILURE);   
      ?. j& y; ^  L8 G% M
  23.     }/ g% h% N# R$ N: z2 b( G9 {
  24. }4 I+ M2 o, Q1 N0 V' A: V& T
  25. + h/ {+ s5 |7 d0 x, c- V( v5 h
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))- @3 Y. O5 J9 x6 G' x* B- n
  27. static void check_value( char *function, int value )
    % w6 S* N8 d+ J; g! Q0 g0 O) t8 p
  28. {; l; V8 K! ]3 X( \
  29.     if (value == 0)( J* l. E# m5 M& R
  30.     {" h- a! @$ [. b% g5 }0 E1 g8 ^
  31.         printf ("\t%s is NULL\n", function);& c4 Q2 f  [0 h. P5 y# m7 \
  32.         printf("\nExiting program!\n");
    $ [+ g  k$ D! F$ i7 e: Y* d
  33.         exit (EXIT_FAILURE);    8 o" Q" I8 O( J5 Q8 R
  34.     }3 S/ f8 d% x- s5 `& C% X
  35. }
    7 w1 `0 T* A; @6 i
  36. ( }  x2 f7 I" D0 c* Q7 A: b  L
  37. " g: N6 i8 }3 X0 l
  38. static void do_it(void)
    , v7 b6 S. Y; W% S5 X( y/ A! M, g
  39. {
    : F/ H* g8 e8 i/ q0 w3 x
  40.     int 2 Y9 `. n$ D; |
  41.         attach_types[1] = {1};
    + o+ M# [. ]  C$ e6 r6 X
  42.     tag_t 6 J* ?3 a0 C( v9 L! f9 r
  43.         rev = NULLTAG, / Z+ f, {. ?  f3 _
  44.         process_template = NULLTAG,
    ' n5 z1 f! ?/ [6 q( j& t
  45.         process = NULLTAG;
    3 D$ u, G' M& x, B7 o' \5 \

  46. 8 U/ h1 a4 B+ m
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    * T( Y" B* f/ e
  48.     EXIT_IF_NULL( rev );  m6 w' c( g( g* n4 ^/ r# g

  49. , }5 _1 i$ P% H" N, w8 D# F
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    + f% k. E6 I  s. m4 o3 S- c/ m
  51.     EXIT_IF_NULL( process_template );
    / `; j7 n& ?4 P% l4 c8 E9 r9 n3 M; t
  52. - H; `" r4 T! Z$ \4 B( `
  53. 7 H+ r0 v/ R( [
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, * @* y: |/ t! Z, W0 z8 Z% d8 q
  55.         attach_types, &process) );
    0 f( g% J! v( X/ c* a; X3 G- @
  56. : y+ Z. f0 z  k8 Q. q7 U9 A
  57.     EXIT_IF_NULL( process );
    ' ]- ?% [. Y; t; w: v
  58. }. `8 o- W7 R2 ~* x# t
  59. 9 I( g# s' D# H& S- P4 e, F
  60. int ITK_user_main(int argc, char* argv[])
    ( P; c$ `. x' P
  61. {
    + s5 D4 p+ H3 Z8 C2 u) ], E3 j3 F
  62.     int8 G" [& O4 U0 W
  63.         status = 0; / Q/ [" H  @* g8 O5 Q6 Q0 N* @. V
  64.    
    4 o3 m1 B! A0 A/ i% I, w
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    6 `6 [$ J) W( u
  66.     status = ITK_auto_login();- v0 r0 V' t4 J1 k; I
  67.    
    $ Q7 }' ]$ t% [/ v5 @+ J
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");2 ]0 U' a- Z% s5 h
  69.     else
    " m0 w* m/ D$ w. Y+ d! p: u% v& i
  70.     {! x  B4 `0 @% ?- a
  71.         printf("\nLogin successful!\n\n");
    ! l& s% ^" `. M* ~6 t; f' }
  72.         ITK_set_journalling(TRUE);
    + V: r) W3 G* Y+ d) ?# H3 }
  73.         do_it();* e4 s( v7 f& u! _' v* b9 S
  74.     }
    & n' e* o: t- F1 X( j
  75.     ITK_exit_module(TRUE);6 j! q# s  {# B' n. m- ?2 I1 k5 c. m
  76.     return status;
    0 A5 _' g7 G( ~7 y/ w
  77. }
复制代码
- W: u0 ^0 r0 x2 j+ U' Q% |: d

9 t2 s1 T, J  Z0 ~9 M% P$ H: B* u' Q. M9 q
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了