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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

. G1 O( e: _4 b1 T' v3 H' YTeamcenter ITK二次开发源码分享: 创建一个工作流# X  c, e; o( m) C- Q! e
0 z. j+ E! E, \8 l$ v3 B
  1. /*HEAD CREATE_A_PROCESS CCC ITK *// q4 W# y% e7 O4 V- g8 d- W; h( J
  2. #include <stdlib.h>
    ( e: ]2 @) C2 w$ G: q; ?+ Y
  3. #include <TCcore/aom.h>* h+ ?# t" E7 t$ T
  4. #include <tc/emh.h>, b! W' z0 `* a' H" j
  5. #include <epm/epm.h>* R, g3 l( }7 y  O
  6. #include <tc/tc.h>8 Y( E4 e3 u4 h0 R- {" n
  7. #include <sa/tcfile.h>5 b/ E" Y  \/ _; S; }" v9 N- y
  8. #include <itk/mem.h>
    * ^4 d3 x* G! O" L# C2 o5 w1 t
  9. 5 C- d# ?8 M" {7 y, k
  10. #define EXIT_FAILURE 1
    . k0 [0 Y8 Y7 E0 K
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))7 W2 P5 r! y6 `+ [4 p" z
  12. static void report_error( char *file, int line, char *function, int return_code)
    , x% C6 e! ~: ^6 m
  13. {
    ! E7 z: u8 W- f$ J: O" x
  14.     if (return_code != ITK_ok)
    / p2 D0 J' Y* p$ t3 H, ^# f
  15.     {
    9 @+ x4 W- v9 q% ], q- Z
  16.         char *error_message_string;, N! E9 w8 \8 v5 J3 q
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    ! {+ l2 V: L3 E7 P% t! B
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    0 P  {$ Q; f0 D3 n4 n" B. E
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);1 T9 n7 Q" f( R- s$ L% w. B: ?* z7 b
  20.         if(error_message_string) MEM_free(error_message_string);# a3 z$ e# a# M+ ^
  21.         printf("\nExiting program!\n");
    5 z2 _( {- j5 ]
  22.         exit (EXIT_FAILURE);   
    9 C9 A% ^7 Q! o" Z  f
  23.     }
    4 |9 c; P2 I5 g7 R/ n' q+ S1 K
  24. }
    0 }/ a8 j% z& X3 G3 {

  25. ' {3 }8 D4 \8 ~9 c
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))( {8 w# t$ g3 x7 w+ Y
  27. static void check_value( char *function, int value )
    3 t* K% b( V9 Q
  28. {
    5 r: m1 Q+ Y7 u2 ?  t' j
  29.     if (value == 0)
    - ]2 ^( k& u6 N+ d& Y! `: G! K+ ~6 [
  30.     {& Z0 ~& n  u: F2 G8 U
  31.         printf ("\t%s is NULL\n", function);- i) |+ `. t# i4 r* p5 X
  32.         printf("\nExiting program!\n");# e9 J# R* w  j' [
  33.         exit (EXIT_FAILURE);    " b  X1 E" ^: h2 y4 u
  34.     }
    + {, ~+ j: S8 V. {" L6 s' ?
  35. }
    * V8 k9 M8 c) B, ^9 t$ J2 }( v- r
  36. # z$ t5 w! q% c3 C. P& Q" g
  37. : O4 Q" ]' x0 y4 s
  38. static void do_it(void)
    ! u+ O4 P0 ^( T7 b& H: R
  39. {% @! n, _7 s6 K4 w: G6 p9 [) H
  40.     int - n  D) t$ x5 I3 B
  41.         attach_types[1] = {1};. X# l2 N4 C, A3 L4 {, U
  42.     tag_t
    / l, k! ^( v; V4 E. c
  43.         rev = NULLTAG, # M' v+ [$ D: j2 q
  44.         process_template = NULLTAG,
    4 L1 r2 J% ^' q, D. A" ]
  45.         process = NULLTAG;' H8 l* v2 h, t/ f$ x" S+ N/ I
  46. , R$ n2 K- S4 V1 t
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );: n2 |) h9 Q# q: Z( X, W0 s. l
  48.     EXIT_IF_NULL( rev );
    6 d8 Z7 w6 v! f2 t/ I( F/ f" p

  49. + p* o. Z: m! }
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); ) V* f. C5 L3 C* r; ~" ^) U9 V5 C
  51.     EXIT_IF_NULL( process_template );
    " W6 ~+ [4 u: G. V3 F* G% K8 u
  52. ! k, ^. L! u4 L
  53. ( D2 \2 z0 Q8 X) e8 R
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 1 [* m; r$ o; \5 Q: _' s
  55.         attach_types, &process) );1 Q. I; p% ?1 U9 n' Z+ E9 O5 Y$ `

  56. * P( s/ S1 }! d, q; T
  57.     EXIT_IF_NULL( process );( t4 H: ^+ j/ {5 u, r
  58. }/ t+ x( _  T. J+ ^
  59. 3 X+ ?/ m5 v# ?' n) `5 L
  60. int ITK_user_main(int argc, char* argv[])
    8 W- Z$ c. i0 q! z% S
  61. {
    & c" }& {. ]& U
  62.     int% D; T9 y5 Q" b* m7 `, U( o
  63.         status = 0; ( p/ r& ~, ^; i" H& o& P7 u% S
  64.    4 |* A/ }2 J* w; O
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );  B, y* }& o2 K2 W7 A: i% i- A
  66.     status = ITK_auto_login();
    % _1 Q( y0 q. h: A( Z7 }
  67.    4 @- _- q8 ~) y. _
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    % c6 r' W" s% u
  69.     else
    ( L) h- h& F7 }' n0 j  x6 D7 w
  70.     {
    4 @! A# b  I$ g; ]
  71.         printf("\nLogin successful!\n\n");7 F9 x  F+ K8 T: w
  72.         ITK_set_journalling(TRUE);
    2 a+ s3 \% `7 z+ n, {! k
  73.         do_it();, G: T4 I! V4 e3 e; I' ^) b
  74.     }
    8 x. O  W% o7 ]% ?
  75.     ITK_exit_module(TRUE);
    . N2 }' ?. N( j( G) |
  76.     return status;
    # i8 M2 e/ B% p# b9 X8 O& \
  77. }
复制代码
+ Q- W( _4 l9 l% p9 {( K
+ i" `5 C3 }( O) }" p1 P7 z1 ]
9 x0 j5 |. Y1 R; V, p4 g" l
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了