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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
9 R+ ^! l% L( I4 Q( @- K+ p! m
Teamcenter ITK二次开发源码分享: 创建一个工作流
1 ^# L  @' \; v) }
4 v7 F' w; x. U4 |- l! S
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    % g; y5 I! g5 v
  2. #include <stdlib.h>
    ; e! O; F; ~! e! r
  3. #include <TCcore/aom.h>0 D8 M0 |% N$ z; v' \( }
  4. #include <tc/emh.h>
    1 j& y! B  J+ b  p* S  g& C
  5. #include <epm/epm.h>
    ( X( r! @% Z9 R. k/ F2 F
  6. #include <tc/tc.h>  {/ e; g% M' H  m: o9 M' e
  7. #include <sa/tcfile.h>
      ]: l: d+ G8 M% x
  8. #include <itk/mem.h>& U3 `% k+ x/ D4 i; }; H% f! ~2 {
  9. ! P! Y# z  J. {+ I6 w
  10. #define EXIT_FAILURE 1 " c- k" E! {" q% X6 b# {7 U, K
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))  t  ^2 }! j4 K( ^$ ?* z
  12. static void report_error( char *file, int line, char *function, int return_code)
    # k+ m# J7 T- x
  13. {) Z  p1 U. t5 E6 }) x9 x
  14.     if (return_code != ITK_ok)$ k* w- J5 q* P: j
  15.     {" x- @: P' b0 T' I, o4 Q
  16.         char *error_message_string;
    + X4 I. X. i1 m1 T+ w
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    % R( G. Z4 h/ h/ Y' i
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    6 s' Y7 l; \  m" U4 q- w4 S: X
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);& _/ Z: L8 v; j
  20.         if(error_message_string) MEM_free(error_message_string);9 X# Q( R' v' [% p& e4 e$ |
  21.         printf("\nExiting program!\n");
    * k" F2 Z7 x6 w$ T* Q
  22.         exit (EXIT_FAILURE);   
    0 N( ?4 ]8 E4 s0 y0 s* @( b
  23.     }0 v9 A. S/ S! O' I) ~! r
  24. }! R9 G  f: u7 h( d: @  p( S4 t

  25. ! ]! L' o( U( J# t% M& G
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))! k3 m& Q  N. B. e% R2 A" c- A* G
  27. static void check_value( char *function, int value )- F# n) O' a; |( U$ Y
  28. {. }/ `4 o4 P8 C% |" }9 _
  29.     if (value == 0)
    8 ~: o1 I& M5 @5 Z6 X0 {& l  R/ Y4 x4 c
  30.     {
    ) K  G7 Q0 h4 n3 Z: C
  31.         printf ("\t%s is NULL\n", function);
    4 M2 s, P' Z! _$ p5 }
  32.         printf("\nExiting program!\n");1 H  |/ j; _: H7 {2 m9 S
  33.         exit (EXIT_FAILURE);   
    # I4 K) q" V% Z/ c8 K& _/ V
  34.     }+ E! @2 H/ P7 x+ \: s7 g
  35. }
    7 Q/ p' a5 B3 `4 M. O2 |
  36. ' R) i6 O. X% C8 d$ V

  37. # l$ o2 i  J- m) d, _
  38. static void do_it(void)( ~7 k7 L. o; X8 g+ [) a# H* F
  39. {. M3 C- S& {- r& p0 {+ K+ y* {
  40.     int
    ! P1 p6 S' h  E: N+ R2 _- v1 b
  41.         attach_types[1] = {1};8 J! l' y' \* W- [, d* m. f
  42.     tag_t " s& i" l) M6 v; }, A+ s1 \
  43.         rev = NULLTAG, 5 i$ c/ D: p1 j5 g  q3 ^4 J* _
  44.         process_template = NULLTAG, 9 e! B9 R9 z; X4 }
  45.         process = NULLTAG;. o  ^! c# ^: w% C; |

  46. + W4 K. x7 Z1 S3 \7 S
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    ) v/ d! `6 N6 A0 |2 ^
  48.     EXIT_IF_NULL( rev );- A( }* j& T7 Q8 S! z/ E' Z. N; m

  49. . O+ R9 ~; t+ t" ]3 `# N
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    5 P1 M4 U, Y1 p5 b
  51.     EXIT_IF_NULL( process_template );( Y2 h  _7 W4 z* u
  52. ' k- i  D* l& x. P1 ]' v) M
  53. 0 K7 s+ v  V3 Y8 r2 u
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    . X0 O" Z6 |3 }% x+ e$ U
  55.         attach_types, &process) );
    $ _5 a# e0 }( G+ C+ S- n8 N5 R
  56.   c( y: [( Y4 t8 O
  57.     EXIT_IF_NULL( process );' H0 c2 V& ^9 r6 m6 d, F  M& n
  58. }$ D4 R9 x4 o, T: ~

  59. & _3 F- R7 i: L
  60. int ITK_user_main(int argc, char* argv[])2 c2 C* h) k$ V: k" F6 M
  61. {# i8 [  ]7 F& X0 `
  62.     int4 w- ~: G* |4 H( F
  63.         status = 0;
    0 g! \0 f$ Y6 A2 u6 E
  64.    
    ) \9 K4 G% S& ^8 ?3 B8 f! V+ X
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    7 X5 W" ^, }6 c: e
  66.     status = ITK_auto_login();
    3 h: k$ B% @: ~8 T
  67.    - e' S$ g9 e& Q0 |% a% Q  E
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");; y& ~9 U$ s" d4 I6 ^
  69.     else- }9 e! F9 R( m) U0 }4 O
  70.     {
    5 F, S: s& \: K, c" ~5 z* x! O0 B
  71.         printf("\nLogin successful!\n\n");
    4 }" e( x; ^  I" z* E* q2 M
  72.         ITK_set_journalling(TRUE);1 J( G4 k* `- f( h( b# I! K$ @" \
  73.         do_it();+ u" y) j% l6 g+ D
  74.     }& ?$ k5 @' V0 E. V7 B! [+ ^% K# S! J! I
  75.     ITK_exit_module(TRUE);
    ! W/ o  \* s6 z8 j% |- x- t
  76.     return status;/ m: p- }. Z2 A8 {& {6 v
  77. }
复制代码

9 r/ ?  @9 s9 g1 G
  R6 z  z1 J: P1 \3 O, s1 g- O" L9 y5 f  D$ B! `
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了