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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

$ i& T# ^( c* K! Z( TTeamcenter ITK二次开发源码分享: 创建一个工作流5 L# q; q% U) R6 Q! n
, @. u9 v% B, e$ C3 f* Y( g$ |
  1. /*HEAD CREATE_A_PROCESS CCC ITK */. a  n3 L" P) @5 v; u' a
  2. #include <stdlib.h>
    / U. M( M/ D( ?/ [: p
  3. #include <TCcore/aom.h>5 Z/ c. N9 ]& u; c8 m
  4. #include <tc/emh.h>+ z0 `! R( H4 X( w& y
  5. #include <epm/epm.h>, B, L' b! W7 q6 C( v; S- h
  6. #include <tc/tc.h>
    & a- S" m1 j3 i
  7. #include <sa/tcfile.h>; X3 R0 t4 o$ p; q/ W( m
  8. #include <itk/mem.h>- s0 R. m  Z; d

  9. 0 z: @$ h8 y2 ~3 G+ ~
  10. #define EXIT_FAILURE 1
    3 |6 L$ \$ [7 H
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))5 d8 G% [) I  S1 J
  12. static void report_error( char *file, int line, char *function, int return_code)0 d( L  H$ g% \8 {  `& r" T. f8 q
  13. {
    # T  ^3 p& ~2 h7 a
  14.     if (return_code != ITK_ok)/ d  g3 S3 O) a$ ^' w/ U' m8 T
  15.     {
    ; q$ J, ~4 z6 Q3 L; s: \- [
  16.         char *error_message_string;% v+ X2 l+ H& L5 O
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);1 D- e6 I1 N) j# P
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
      q0 X1 L& a- u$ Y5 a
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    - Y2 \8 ]- q! @, ]& {4 l( Y
  20.         if(error_message_string) MEM_free(error_message_string);6 v, q! M; o) s0 L& B9 K. K8 M
  21.         printf("\nExiting program!\n");, P8 ]. x& r) s9 _/ z7 ]
  22.         exit (EXIT_FAILURE);    ( \7 h2 L' i2 p1 W2 }/ K( W
  23.     }
    ! `. Y* `4 ?# f" I
  24. }
    3 d' f" m4 S) K+ F# h

  25. " p: |" \9 |) r& k1 N+ r
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    # O- ]4 m" D7 y0 X
  27. static void check_value( char *function, int value )& q  G1 h" `1 I6 D" u% r! ^  E
  28. {9 c0 \  `1 ]- [/ X1 w; [. x
  29.     if (value == 0)
    " c/ `) d$ U4 a! u' ^3 J# s7 i
  30.     {% {& Z4 `& F" y: b2 \3 B2 Q+ S
  31.         printf ("\t%s is NULL\n", function);
    ( L8 `3 x4 \- r0 ?. i+ {6 K
  32.         printf("\nExiting program!\n");* L$ d$ I. r) r0 v
  33.         exit (EXIT_FAILURE);   
    7 f' A* u; }9 V' A
  34.     }5 B& O+ e0 E/ t& K! W
  35. }. G% a- N- j+ z* L9 K3 e

  36. - Q. {) S' P0 X2 d' X

  37. + l* G) P) `! ~. v7 D& O0 R- \
  38. static void do_it(void)
    . f% b4 g: c7 m" q* O/ A( G3 w2 k
  39. {  a' D0 c9 m9 M, n6 h3 Z1 E
  40.     int
    : [' b) U/ ~+ e* W
  41.         attach_types[1] = {1};
    1 u# x* L( r* k( u
  42.     tag_t - q* E; W7 K! x% a
  43.         rev = NULLTAG,
    ) ~1 B; J. m) ~. P% v; Q
  44.         process_template = NULLTAG, 7 D0 s$ V* ?+ C+ m
  45.         process = NULLTAG;* O; o2 U0 M1 h" d

  46. * e% Y( z* o' W/ j+ c2 G+ c
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );9 H: r) q0 t" v) J& \. @
  48.     EXIT_IF_NULL( rev );! ^2 K% b& D" U0 c% H" e
  49. ; u9 ?& M8 Z: D) y; u7 @
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 3 ~: Y' F( I" O& ^. Q$ W) N! v
  51.     EXIT_IF_NULL( process_template );
    , f7 V4 Y, a9 O- S2 x
  52. 1 O4 u6 [( P% V4 E. J: D% B- a* P" Q
  53. - J& @% T% M( b5 \
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, ; G' n9 z  Q! Q$ f3 o
  55.         attach_types, &process) );: `4 V6 C" v+ v" _4 U8 Z5 X

  56. ! e9 d  z. i) f! L. Q& D5 n7 m
  57.     EXIT_IF_NULL( process );
    / ~' E/ g2 m" ~) x0 K
  58. }
    ! i- t6 Z/ M5 a7 f3 n9 f) x6 r7 M

  59. * h% e7 t" J1 J: }+ Y3 ^
  60. int ITK_user_main(int argc, char* argv[])
    ( K3 Q0 d1 d2 w2 s! `! h
  61. {9 p+ y4 i2 U  r# p, x7 S$ r" ]
  62.     int/ d! ]/ V0 `* A8 {. [9 ^4 |
  63.         status = 0;
    6 i0 p" i! P- h$ p8 y
  64.    0 p1 L& s" A; |8 f, F
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    / k5 F# ]  \  g3 C/ H: P. z% }
  66.     status = ITK_auto_login();
    8 r  t% l- s2 @4 H6 S2 q
  67.    2 _! ]! T# e6 b7 }5 t2 m, q- I
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");$ m4 I- @  M; p0 c3 k
  69.     else
    % w& j: n6 h" v! X
  70.     {
    $ |- d+ z: J+ m6 D
  71.         printf("\nLogin successful!\n\n");% d) Q+ y  U' k
  72.         ITK_set_journalling(TRUE);
    " w' ?  v3 a0 D! V! |4 E
  73.         do_it();; P. h+ ~- m1 r$ ^3 ?3 O
  74.     }3 e6 }" s* W* u0 C+ k  j4 x
  75.     ITK_exit_module(TRUE);3 X! R$ V& J& U5 p; c: k
  76.     return status;( A9 N. p) H! ~
  77. }
复制代码
4 z# x" _" Q( h  m- P) s
. q7 l$ w* {' h3 D" t1 o/ h
$ g/ j/ w' T- `7 E! T) A  e* G
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了