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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

, e2 M- |! C2 m9 KTeamcenter ITK二次开发源码分享: 创建一个工作流
" y) g3 h# q  f) o1 y( p6 P0 C. t: i2 e# u' N  t
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    * w) H6 @2 A# N8 I2 R5 U# E
  2. #include <stdlib.h>
    ; V; P1 y5 j3 X/ |; Q& z1 \
  3. #include <TCcore/aom.h>  z3 B/ ~0 B/ ^# r4 F% Q
  4. #include <tc/emh.h>
    + z6 P7 A; d( G1 q8 o# D
  5. #include <epm/epm.h>
    : {% D1 }: ]% q
  6. #include <tc/tc.h>
      X6 o7 ~% E0 g9 m
  7. #include <sa/tcfile.h>( a& }" n" t, B* Z/ K' s6 ~( L
  8. #include <itk/mem.h>
    ( H7 n8 o9 s1 a; P" d/ |
  9. & L; j, p4 I/ G" _; I3 b0 b/ I! a2 G
  10. #define EXIT_FAILURE 1
    ' M/ N' I8 t5 S' s1 h$ P' P
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    0 j5 |7 U: \9 Y6 l6 f3 [: B
  12. static void report_error( char *file, int line, char *function, int return_code)! }) [2 P' a4 k# ~( T
  13. {
    + r' p0 B6 t/ S+ N$ e+ f) x
  14.     if (return_code != ITK_ok)- v5 R( h: |+ i; V" t$ R
  15.     {
    ' G' P) ^# h; j6 c7 i% l# j
  16.         char *error_message_string;
    9 N3 f1 @$ r4 t" l2 x7 f6 [) h. d
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    7 h7 y) Z6 F( M0 G' D  C4 t
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);: w9 N; l- S* }/ A
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);1 Q! v  [% |- V0 S( n
  20.         if(error_message_string) MEM_free(error_message_string);" ^! M6 ]  I9 I
  21.         printf("\nExiting program!\n");
    ) Z- u3 v1 N# x
  22.         exit (EXIT_FAILURE);    & Y8 h! \* K$ z, \# Z  v, A1 x/ B
  23.     }
    , o. Q; |( j/ S! {" D' g1 }
  24. }
    0 k3 u& B, J: t' `

  25. 8 c, ]/ h" r! H5 k0 G
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    7 q( ?' R5 [0 a1 Z! \  `2 K. ?
  27. static void check_value( char *function, int value )& K" ?, A( [/ t. z. p0 X5 D+ |. k3 f
  28. {7 Q) J, ~8 u) _& X
  29.     if (value == 0)
    , b/ @9 ^" H" B; W4 D, p
  30.     {
    2 C  O& ~+ R  W+ T3 c. {1 E; c
  31.         printf ("\t%s is NULL\n", function);
    % F1 I8 s$ a+ J6 J" y  `! }' n
  32.         printf("\nExiting program!\n");
    " D: l5 z: B% V0 F+ k; k# m3 T
  33.         exit (EXIT_FAILURE);   
    9 X, L6 l9 |' z1 Z5 ~- L
  34.     }2 }, k- q+ p5 {8 R) @+ l  R( j
  35. }; L3 {$ ~- O' l5 x; N* }) b" B

  36. ' ^% b( u/ y/ q; _0 N

  37. : v" t9 g+ q/ z7 F, o& v
  38. static void do_it(void)
    7 O$ A: [2 E: d% n$ S) h
  39. {
    ( }: L9 C% ]. P0 I0 s. t
  40.     int # @/ w9 y9 _0 p& k/ N, B
  41.         attach_types[1] = {1};4 n4 U% j2 X0 q3 h! p, H
  42.     tag_t 2 X( v: l- l& f6 Q
  43.         rev = NULLTAG,
    2 l& z) e( n" ^/ _+ B- Z+ x5 A1 u2 a
  44.         process_template = NULLTAG,
    . U# B: ~6 h: F
  45.         process = NULLTAG;
    # Z3 q/ Y: K; U# g6 Y1 }7 j! ^- ?
  46. - N; F1 F+ ?7 C! [1 D. F
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    # k' u& ^$ X. S8 {' i
  48.     EXIT_IF_NULL( rev );
    2 [2 G8 |" K2 o+ b9 x
  49. ( n% h. u" y6 ]4 f, P! G
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    ! @5 t7 y& K1 D/ ]
  51.     EXIT_IF_NULL( process_template );
    1 q9 y1 l8 z! O5 x# t8 L3 E( p$ v
  52. * n* d( h' }! @! i# r

  53. ! G9 J: O5 ^9 o1 c* B
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    $ \) t7 s' K2 p0 D# E& L
  55.         attach_types, &process) );
    $ f6 |+ l7 m+ z/ D  X. ^" N

  56. : j" W( q* f. m, y- y. r1 r3 v
  57.     EXIT_IF_NULL( process );
    , C- Z9 e! |! @- h/ s4 A. w
  58. }
    , Y) f# h: T8 g  A# T. ]

  59. ) Y: n. i0 S) w) `3 s2 n7 l& g
  60. int ITK_user_main(int argc, char* argv[])
    - X; W4 k" j5 a7 V1 r9 n
  61. {  @" v5 j' L2 C8 e. _: Q
  62.     int
    1 s% z  S" [5 d6 e
  63.         status = 0; , m1 O' B0 j& ]
  64.    0 O; r( L; A  j9 X  H4 V6 U0 M% A. w
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );2 D7 v- \0 Z/ T4 b- O$ G( C' |
  66.     status = ITK_auto_login();6 Y' G, i5 D6 |3 i9 t3 _) _
  67.    
    3 }6 h% Q( i9 I: ]/ o- G( @2 m- R
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");3 Z$ I- f, o7 S/ j
  69.     else
    + f/ k* d# Y- E0 O. m( v7 _' ]  v
  70.     {
    . ~: ^& J: S; f5 v" i
  71.         printf("\nLogin successful!\n\n");( j$ U. [, F& G, }% H
  72.         ITK_set_journalling(TRUE);
    . f% ^8 k6 G$ f! r' @  _$ w
  73.         do_it();: J  K/ i, V- S4 y# b
  74.     }
    6 P, e- @( P9 {2 n' ]( B, A' }
  75.     ITK_exit_module(TRUE);
    , I2 Z) B% |! ^3 f& _
  76.     return status;4 M0 r- j8 N  ~9 Z
  77. }
复制代码

* z  r  w* W% g! {( N  t0 v- P/ r; I  }- A) K+ C7 }
+ I/ y9 [! W. w# X3 N. d! ]' W, C
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了