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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
' W& x" q. W* h
Teamcenter ITK二次开发源码分享: 创建一个工作流5 x3 P' R" @; C: D+ h

! A+ N; M) ~0 }8 q, T7 j
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
      s4 j3 B5 f. L" ]; i
  2. #include <stdlib.h>
    " Z: h, s/ b- @& I/ w2 L
  3. #include <TCcore/aom.h>9 ^3 t) K+ r2 g" G: n" ^* {* q
  4. #include <tc/emh.h>
    + V7 C% r/ L2 a- Z  T1 I) C
  5. #include <epm/epm.h>
    , @. R( _" Z! H1 H- b0 S( ]
  6. #include <tc/tc.h>$ H( S+ G1 j8 `/ s- A/ U4 o
  7. #include <sa/tcfile.h>
    7 x' u: L* D& }4 Q
  8. #include <itk/mem.h>
    4 b- Y1 J  n4 m0 T( |
  9. ' w+ j0 z% D/ `
  10. #define EXIT_FAILURE 1
    + T9 x0 T. @  ~( I
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    $ {5 m: n' Q2 ?* k/ c3 f
  12. static void report_error( char *file, int line, char *function, int return_code)
    $ r$ \* _2 [* g9 u4 D: T* X4 v
  13. {
    , Z. ~8 R" ^7 S% O" E2 ?
  14.     if (return_code != ITK_ok)& K! M6 d! I3 _! m/ P
  15.     {" O: Z2 v5 A5 a1 i, f* p4 g
  16.         char *error_message_string;
    ! q4 h0 |& `$ p/ q8 [: m
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);! l+ x) P" N& b0 R' H" ]
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    % }* j: m5 n# T3 Z: m* s& k& m
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);. J: y4 y# R( o0 g. C
  20.         if(error_message_string) MEM_free(error_message_string);
    3 X  v! l5 p' P6 L8 m
  21.         printf("\nExiting program!\n");$ i" Q0 |  K  |9 F7 P' t
  22.         exit (EXIT_FAILURE);   
    , J* ]4 i8 Y  a
  23.     }
      K6 D/ Z/ e2 O# |$ J- B
  24. }8 {" |: D3 c- Z6 g& M/ J# E

  25. - K0 T7 |1 H% N
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    $ o% E" Q. w1 ^# |7 o' o# o1 Z
  27. static void check_value( char *function, int value )
    ; L/ z4 ^' Z: \$ ^. j- _
  28. {
    " M8 [9 T& Z4 w8 \' ?2 u
  29.     if (value == 0)
    * J: U$ \" y4 S# I: |3 R( O5 j
  30.     {1 `1 H% \4 G2 ?1 v& H5 G
  31.         printf ("\t%s is NULL\n", function);
    " P/ r$ D6 i, z$ |" T/ w" ^: e
  32.         printf("\nExiting program!\n");' m$ P- N, o1 b) O
  33.         exit (EXIT_FAILURE);    $ e; {1 T, ~1 E/ T
  34.     }
    5 Y# @; X2 `9 ?  u* @# d
  35. }
    / g, c, _4 C' I/ D
  36. ! @) O9 a" Q; e3 j% n- @, r( W3 k/ P

  37. , n9 p# n) c: Q7 [1 n
  38. static void do_it(void)1 t- j: d* A9 X  ~$ u1 m) n( F
  39. {
    " K" p2 @8 s3 u0 o/ ]
  40.     int 3 C3 d+ y; A. Q# o9 c
  41.         attach_types[1] = {1};+ n7 L' X: R+ ?& L1 b4 P& V+ t- M
  42.     tag_t + U2 ~4 ]3 C1 I" R9 s: R
  43.         rev = NULLTAG,
    ) T& Z6 Y$ j2 J: T7 V
  44.         process_template = NULLTAG,
    6 h3 P: m1 f# M0 Z; \! K+ K
  45.         process = NULLTAG;5 q/ {7 [4 o1 N" j1 E4 N9 F
  46. + u' {$ i8 Z) v' g9 Z- a
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );" Z7 E) v/ p) C
  48.     EXIT_IF_NULL( rev );# f2 G* y+ }; Z  \
  49. ' k9 t8 |& {( O) e2 m8 G5 _
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); ! q# F8 O$ \+ L2 E4 v
  51.     EXIT_IF_NULL( process_template );
      M/ l' `' P( M

  52. ; [. C. y: S8 w; x2 x  Z" o

  53. 7 V2 p1 ^& Z/ P! q5 G6 F6 m  O3 t
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    . |& B; e/ i, V: b
  55.         attach_types, &process) );
    ; ^" F4 q, H3 `2 ^

  56. ; Z( U' `8 x  ^0 `$ {; s  w. n
  57.     EXIT_IF_NULL( process );" z7 A2 ], M( Q3 F( n9 a9 d' c
  58. }  K5 ~3 }! e: o/ S" L. o

  59. ; b' n- `; o5 E8 `7 b8 i' d& g# i- t
  60. int ITK_user_main(int argc, char* argv[])
    * t9 A. ]# v8 k
  61. {
    + g% ]% i; e; P+ J. N
  62.     int
    7 t% j6 o4 B, T; @1 }8 ?
  63.         status = 0; # r) i" C/ q: |( p5 x/ ~4 l$ l
  64.    $ R/ I5 t5 n$ z9 s: ]% x8 q7 j
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    5 }5 I& U( R2 D  o; T
  66.     status = ITK_auto_login();
    ) u2 N" w  J! m
  67.    . m- L  k* V# R
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    ) O3 l- |  }0 b; r* D% ~! V' h7 {
  69.     else
    ; I/ N8 Y0 N; l
  70.     {
    / P) R" ?5 v* b" u/ O; U! j* D
  71.         printf("\nLogin successful!\n\n");5 n% s" [1 o3 i/ q
  72.         ITK_set_journalling(TRUE);& f1 W9 x5 @4 b7 z) V* n
  73.         do_it();
    ; \. z! O2 \: c3 q& f4 _
  74.     }+ y3 A& i4 V  K8 F/ ^+ k4 U
  75.     ITK_exit_module(TRUE);7 ], w$ K) [$ {% |8 v! Q) A
  76.     return status;- p4 Z" c5 [/ p
  77. }
复制代码
# E6 Y* e. `0 p' E
& Z0 w+ r! z& R

2 Y, }7 C% U+ ]' G& h3 X/ v
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了