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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

- b! [0 D1 o- LTeamcenter ITK二次开发源码分享: 创建一个工作流( ]( z4 l  p" D: F8 z% K) k* n# s4 Y+ t3 Y
+ }! }$ n3 F- K# a1 [% h# F* p* f
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    . p* Q& ]  |% ], p
  2. #include <stdlib.h>$ L. {) s( A2 n- f
  3. #include <TCcore/aom.h>
      e/ c/ `9 w. n9 w
  4. #include <tc/emh.h>, T) X% w! w) J8 o9 p# A
  5. #include <epm/epm.h>
    8 J' f( w+ R$ X' r1 p
  6. #include <tc/tc.h>/ p) t/ L6 g9 B9 x. S. d
  7. #include <sa/tcfile.h>) |1 @% z  w. w5 T  U7 Z
  8. #include <itk/mem.h>
    ( _) }+ a' H! F- I! B
  9. 1 g0 C1 {+ ~  H2 p: b- U
  10. #define EXIT_FAILURE 1 + h  S$ x$ A  O/ m# ]
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    5 H3 g/ z, z+ w' s8 z# w
  12. static void report_error( char *file, int line, char *function, int return_code)0 o# b+ h5 |# z- ^+ V
  13. {: }/ D3 D* G- a( Z
  14.     if (return_code != ITK_ok)
    * r, @! H* w& b
  15.     {
    0 X! l: K3 i% N0 k% O) O8 f
  16.         char *error_message_string;; O/ q# p) M. Z+ ~5 J2 ]
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    5 F* F# b0 T) T5 E# }/ C
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    ; `) o* k4 p5 T7 d+ r6 t
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);6 P* J- M) R, ]3 k. L9 G
  20.         if(error_message_string) MEM_free(error_message_string);% J5 v6 a  ?) M. N1 F  O7 \
  21.         printf("\nExiting program!\n");8 I2 @# T0 ^; R* ^& G) r
  22.         exit (EXIT_FAILURE);    + H9 D: W# B  g" x
  23.     }0 L" E( ?3 }; w: S: j' B7 B
  24. }
    3 m9 g/ x; P6 Q2 P

  25. $ T( S  p9 J/ ^3 q9 R2 \% G
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    ' t# F; X: r! f; w0 {% i
  27. static void check_value( char *function, int value )
    + V4 E8 E  D6 ?4 v
  28. {
    * z' D5 h1 [; U7 ?. h" a
  29.     if (value == 0)9 A  K8 S  R, {5 a$ O
  30.     {3 N6 q$ z; F% n! G! D! `# k% V' M2 M
  31.         printf ("\t%s is NULL\n", function);2 u, g5 [/ ?# L% Z6 q, M
  32.         printf("\nExiting program!\n");
    6 j" u- I# U1 Q4 ~, I/ Q: N
  33.         exit (EXIT_FAILURE);    6 P% j% j: K; ?( P7 L1 }. c
  34.     }
    ' I6 p- s* Y* M
  35. }
    ) c+ G, O. P1 m. [- s% {& r
  36. ! J# v$ B7 ~+ h( i. T* }9 Y( H
  37. : |; C8 |1 S2 z, E. a
  38. static void do_it(void)
    ' T3 W1 K0 Y& L- l& M) {# I+ C4 p
  39. {
    4 N# a" `: z5 b0 S' |. u
  40.     int
    * A1 e% G& @/ @  e
  41.         attach_types[1] = {1};( y. ^& g. F) ]
  42.     tag_t
    : S1 c* ^8 N' |; X
  43.         rev = NULLTAG, ! z' S- F) s- L8 k8 ^! l8 \
  44.         process_template = NULLTAG, . D, t% q9 t3 ^- v4 @
  45.         process = NULLTAG;
    $ P( D* N0 z* m- i1 ~/ ~6 n) {

  46. ; }  c  o2 d: p& {
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    9 e( z: X3 b% o- O6 p6 z
  48.     EXIT_IF_NULL( rev );
    $ }- `1 T9 x. L% h  Q
  49. 8 k7 D  S5 s8 {( P$ v& N
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); $ o  ~1 u  H# k' H- O9 g4 n( V
  51.     EXIT_IF_NULL( process_template );
    9 N/ f1 B+ x1 E$ K9 L% R
  52. 2 c; i* \, I" I" p* w
  53. 1 F+ f, F. H+ X. T4 F: @0 d
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    / N, t' y' K/ i1 r) P6 O& J- [0 p
  55.         attach_types, &process) );/ r6 J4 h7 g3 m4 `

  56. 9 O) K! x: F+ X# k1 j: Q
  57.     EXIT_IF_NULL( process );
    " x: b5 g0 ^6 U. Y! I9 g% C
  58. }
    ' j/ p8 @6 e. c3 K- A' I% I
  59. , u1 M9 g& e4 b) {2 {7 I
  60. int ITK_user_main(int argc, char* argv[])
    / V& a5 X& m% c, ^5 M
  61. {
    2 c5 X" y+ c7 Q; x
  62.     int
    - a) F9 P. Q! r3 R  m
  63.         status = 0; % r/ n' {) U2 E, f
  64.    1 ^; C. p- f/ |% G0 D
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    & n9 l. p* z7 I! b$ a: P! O3 z1 S- \
  66.     status = ITK_auto_login();7 n  E+ o7 {/ o" M6 L8 ]$ z
  67.    
    1 w5 C5 \$ c, S7 D2 H
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    9 H- i( F" k" \& S* b
  69.     else
    $ `$ `4 y4 y2 m, o
  70.     {
    & y) C! I: ~! w% c0 i1 ^+ s
  71.         printf("\nLogin successful!\n\n");3 `/ I3 X; L2 t. G
  72.         ITK_set_journalling(TRUE);
    2 t: j  S6 z1 `$ q
  73.         do_it();
    4 Q, d; E! B+ B; m+ ?
  74.     }
    4 V, ]! i1 S) a- ]% c
  75.     ITK_exit_module(TRUE);
    , v- V4 E/ y4 {! l. Q
  76.     return status;
    - _9 X% S* ?5 k! P8 L$ g# w: [
  77. }
复制代码
" {- L1 M/ z' [6 y# n* m

5 q( I, Y" s6 C9 p: F  O% N8 H5 k/ T( y, x& l' @2 g9 _/ ~% T8 f
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了