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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
6 p" I% a- j( r" t/ ?6 s+ F& n' @
Teamcenter ITK二次开发源码分享: 创建一个工作流
8 r; G' }6 {& E6 m" m9 F$ g  Q- Y, `5 c  s1 h4 K
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    6 R* e. Z: D1 W# ~
  2. #include <stdlib.h>
    , d9 C5 E( l) Z! m
  3. #include <TCcore/aom.h>
    7 w1 W" a7 `* p- r0 b2 j. A
  4. #include <tc/emh.h>1 _5 _# ^6 X4 h& W) b
  5. #include <epm/epm.h>% r$ d9 o: b$ i% }5 P
  6. #include <tc/tc.h>
    # f+ n( B7 w  D6 Y" r4 n
  7. #include <sa/tcfile.h>: O$ m2 K$ g0 f) R5 Z
  8. #include <itk/mem.h>
    , A4 K5 f0 w5 `5 }; p
  9. ) J3 F# G% {; K; ~9 V1 H, p5 z3 C
  10. #define EXIT_FAILURE 1 9 S' @: _- E9 v2 e* d* n
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    ; D5 X, E* Q4 U
  12. static void report_error( char *file, int line, char *function, int return_code)" G$ T/ L$ a; b+ U! _
  13. {
    / h- I+ t) m0 b8 o
  14.     if (return_code != ITK_ok)
    , v5 J5 x9 R: W9 f( c
  15.     {: I: F9 \4 `. C
  16.         char *error_message_string;
    4 e  W! V" o6 ]$ F" k: j1 e+ U8 l
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);& W; H$ |) G2 j# c
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    ' s" q. Y/ y% J5 W, v
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);0 X* q2 [  y( M+ W
  20.         if(error_message_string) MEM_free(error_message_string);
    + y& d$ J& }8 O2 a( E% U7 y
  21.         printf("\nExiting program!\n");
    6 _7 Q2 n3 x# ^/ @3 u+ A5 h% ^
  22.         exit (EXIT_FAILURE);    ' V) s1 E; y+ }! l) \+ h
  23.     }
    ; c: U3 b+ U+ U& Y$ w0 a7 u* |
  24. }
    7 O; x5 Z( r8 b* u/ C
  25. 7 X8 f0 x) I) e" a( m3 G
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))- [+ E3 X, i: p* d+ |
  27. static void check_value( char *function, int value ); w" W7 G$ s. I3 Q, M
  28. {
    6 z5 @+ |" P4 h4 L( c
  29.     if (value == 0)/ O! ?/ \+ x. p, X
  30.     {& O8 o  R' W7 g" A
  31.         printf ("\t%s is NULL\n", function);: d* O0 @0 R- R' g
  32.         printf("\nExiting program!\n");3 s7 j/ x) y0 F6 H9 \4 E
  33.         exit (EXIT_FAILURE);    % y2 t" t9 L( G3 U( `7 v% C/ ]
  34.     }/ z7 D: K2 Y  l0 `* s" m
  35. }
    ! f# X( f+ A- X( Y3 W0 G+ l' w6 t# \2 O6 }

  36. * N# j' i: q- v5 M% s3 a/ B4 a* @
  37. ' w; J* k0 l! x  V2 i7 c
  38. static void do_it(void)
    " A: F2 e8 a  }
  39. {9 \' H8 _9 I. Y
  40.     int ! Q" ^1 B6 u8 K4 p% m: Y
  41.         attach_types[1] = {1};5 ]' w% D% N1 _) m3 m' b
  42.     tag_t
    , w. @% ~. W5 Y; v0 ~' I
  43.         rev = NULLTAG,
    9 p" Z( O  g$ J. F; J
  44.         process_template = NULLTAG,
    % @% e9 H1 Z- ^/ ?: v
  45.         process = NULLTAG;5 l) b+ \5 v1 i8 G

  46. . Z. r3 ]8 z6 O
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    4 U3 I! I) y/ q" ~9 F
  48.     EXIT_IF_NULL( rev );0 ]& f/ a+ Z. V% I
  49. & d5 H3 B  s8 D- O
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); ' W( B: S9 ~+ N) r' s
  51.     EXIT_IF_NULL( process_template );
    " b# `3 Q( |7 g9 W2 C
  52. : f1 o3 c6 q! [8 \4 v
  53. + z1 v0 H& [7 b1 ^, k  }7 W4 [6 b
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    1 I, S6 a6 j( W) p4 }0 d  _- Z
  55.         attach_types, &process) );( Q. Z3 n7 D6 \) P/ }
  56. / B4 ]! S  J( Q7 \0 z: p2 q
  57.     EXIT_IF_NULL( process );
    / d9 G3 a/ H3 M" g* [" c
  58. }
    6 {/ C2 z$ M. C; {# ^
  59. 8 h) P: W. a' ~0 F: }$ u" R- e
  60. int ITK_user_main(int argc, char* argv[])
    ) V1 q+ T" \! x+ B9 ]4 F* o' Y
  61. {& ~6 g% N" {( S  r3 J
  62.     int
    % O+ f* W' C0 m! s+ B2 V
  63.         status = 0;
    7 W% u. t( ?# A1 d. X
  64.    
    # U5 D+ d. _& C. O* r3 P# z5 n5 `- j1 a
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    , z" `. H# _" N9 P2 D
  66.     status = ITK_auto_login();9 H6 K, @5 F; n
  67.    & m$ O! d0 U. g) q  w1 r: U
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");8 v4 Z- q: i. G
  69.     else
    - Z/ \* s1 i2 v% A
  70.     {" a' R8 z# C) t% F8 j' C; @
  71.         printf("\nLogin successful!\n\n");
    2 y# G7 {, C! h' E4 u. y, |- I
  72.         ITK_set_journalling(TRUE);
    " H. C+ D3 X1 ?) G: j
  73.         do_it();7 r1 l& X; Z7 K* ?
  74.     }% B/ a6 R8 F" q. N
  75.     ITK_exit_module(TRUE);# I# v: Q/ E3 F3 r) l
  76.     return status;0 I. D5 J% q4 ^: ~3 T
  77. }
复制代码

, n+ T3 ^( y# ?' s0 @, O; K$ c
$ N6 H# N' ]+ L0 Y! Z2 B
7 W* w, [: c. F" [: \# u: ]
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了