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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

! c2 u0 R: u  h# h& w/ }! D5 A3 [Teamcenter ITK二次开发源码分享: 创建一个工作流
; R7 c9 S: X8 O3 j
6 p8 y% y5 {3 }) @$ X
  1. /*HEAD CREATE_A_PROCESS CCC ITK *// l' G1 D- |7 V( |* I9 R# |4 R
  2. #include <stdlib.h>
    5 I$ A' @8 Y- G- j% e
  3. #include <TCcore/aom.h>* h1 V6 J; ^4 A9 T6 Y) z8 l( N
  4. #include <tc/emh.h>5 J" {6 r* K- k+ G/ D
  5. #include <epm/epm.h>
    7 V4 U. X! }" [" E( N5 f0 s
  6. #include <tc/tc.h>
    % e0 w  U6 l- a0 m7 h
  7. #include <sa/tcfile.h>
    & ]1 D8 p2 I- ?' Y8 l
  8. #include <itk/mem.h>8 a8 `7 r1 M2 O! |5 m- w8 j) T5 D. f
  9. - H- H) q" r8 n5 b
  10. #define EXIT_FAILURE 1 # V0 Z1 t  P7 x' j: C' ^5 I
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    4 p2 n5 G8 f- b1 m* r
  12. static void report_error( char *file, int line, char *function, int return_code)
    & X0 O% |, g& k) `+ r
  13. {
    7 T; X- x# \- Y: \+ ?- r
  14.     if (return_code != ITK_ok); `0 X' ~: @1 h. f/ R3 b2 Q0 j
  15.     {5 N& A) z/ l( C, f  ^
  16.         char *error_message_string;3 O" p% Q# I7 o  d& s" v1 O6 A& v* I
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);( o3 M: N& ^7 g& ~  M4 y
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);2 U) v" h1 K4 f% U0 I
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    . g* O9 w4 o& U, C5 s
  20.         if(error_message_string) MEM_free(error_message_string);% y# H2 a/ z: f4 e: Y1 e* y1 y
  21.         printf("\nExiting program!\n");9 W% D' A' u. _5 [3 C" X, T
  22.         exit (EXIT_FAILURE);    , b) @: S2 ?5 P  O
  23.     }
    7 ?' o8 m% |) E* L1 Q
  24. }
    . Y+ |5 b, \/ U# J

  25. : g: X/ K* L: M' d
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    8 O0 i, G; U8 }
  27. static void check_value( char *function, int value )3 E/ D3 \+ O9 \/ y
  28. {
    ( A1 f: s$ k3 n$ Y3 R! y  ^' y
  29.     if (value == 0)4 [! K( @* ^3 b$ t; l5 c
  30.     {# d0 g, I# A/ v( `0 z
  31.         printf ("\t%s is NULL\n", function);; C! f% G3 }7 ^( g
  32.         printf("\nExiting program!\n");
    2 x2 b* M4 z' O
  33.         exit (EXIT_FAILURE);   
    - G+ y4 T: j0 O' o# Y
  34.     }6 p& X* o5 b, W4 z) ^
  35. }$ ^: V: a5 X' D; O- G
  36. ) {; l6 f5 M: S

  37. 4 V9 j( x4 _. A+ M: y3 r. w! b
  38. static void do_it(void)
    ! A) J7 J- l: K& w1 }/ h
  39. {
    - q+ @5 c# m6 l3 {' o! o
  40.     int
    7 Q5 e0 r. w2 y
  41.         attach_types[1] = {1};
    : N7 M' j4 ?7 x* D0 E$ g) J- f1 [
  42.     tag_t
    3 \/ D4 [3 ]; e( m0 ^6 L
  43.         rev = NULLTAG,
    8 u3 v# `7 e/ ]& [' J; ?
  44.         process_template = NULLTAG, 1 o; S. E$ b5 y5 ^5 H7 @1 @+ _# p
  45.         process = NULLTAG;0 O& v) s' R7 v" D7 R2 j+ E4 n
  46. * _2 n) C+ Q! }
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    . `8 z% r" R1 ]4 i+ G% a/ M
  48.     EXIT_IF_NULL( rev );
    ; y; w  n3 Q: _$ ?) e. X

  49. # g, O. Z; v, X: b+ l" Y0 g
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    ' u, \1 d. s% g5 E; `5 G! W  @
  51.     EXIT_IF_NULL( process_template );
    4 B2 J% B2 \2 c: U/ l

  52. ; z& ?1 ]7 A: i

  53. + Q9 D2 _  y0 w( U% T1 P
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, ( c( f" Y" E, v& }" d
  55.         attach_types, &process) );
    % e! l% q0 ~5 V+ h& l' c
  56. 1 Z  ]# K7 [/ S( @' m# E" |
  57.     EXIT_IF_NULL( process );. z3 q$ G2 n+ O) H! j# d
  58. }  ^! Q; {, F, H- u+ U6 ~
  59. 2 B7 o* _( Q- A& m* A) W' Q7 i
  60. int ITK_user_main(int argc, char* argv[])& c3 T3 L- [* k0 p# L1 _& U
  61. {
    2 H+ m. n+ M0 r9 o' t
  62.     int
    " N7 i% K9 M/ q& H+ g+ C
  63.         status = 0;
    8 g2 V7 N" ^2 \
  64.    % @1 C' Y8 [8 i7 b
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    3 x0 l! d! o, ^- H3 p7 a
  66.     status = ITK_auto_login();) [' [( H! r  \% V8 }
  67.    
    5 G: I0 o% w+ q$ a
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");3 O5 O3 F2 c& n' X' K6 N" Y
  69.     else
    6 k' S4 x: ?3 W" }
  70.     {
    4 L; S- `! @& A4 J7 G
  71.         printf("\nLogin successful!\n\n");
    ! D. l; |& |' d, O& v: }: }: G" Z
  72.         ITK_set_journalling(TRUE);
    + @2 F# P8 u# n7 Q
  73.         do_it();5 T6 v6 v3 j! a4 W$ F( Y
  74.     }  v& z% K' [  e' _* m" i
  75.     ITK_exit_module(TRUE);. c+ M; [/ c7 b5 l
  76.     return status;
    ; b( D" `% ~) M# n1 p
  77. }
复制代码

' P7 L9 U7 l6 x1 p- Q; X
2 A7 A- c3 ]. t# H  R
7 F1 n3 _/ |! X* l0 N5 s& S
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了