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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
4 w0 @# D2 U" j5 u
Teamcenter ITK二次开发源码分享: 创建一个工作流0 u# n4 U2 ~9 d" ^8 j
, l: r) |# L$ m8 z
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    . ?1 j! y* l+ l! b
  2. #include <stdlib.h>; O* p% g$ L% Z2 w" E
  3. #include <TCcore/aom.h>
    3 h$ F* d( S- q2 |3 u
  4. #include <tc/emh.h>& f% x5 _3 S4 g$ }
  5. #include <epm/epm.h>
    " e5 K9 f' o! Y# s
  6. #include <tc/tc.h>
    $ W4 p6 S4 H+ {/ L
  7. #include <sa/tcfile.h>
    5 T4 J5 M2 L! m9 o- O6 J
  8. #include <itk/mem.h>+ r! @- N* f$ k8 y

  9. 6 \6 D! B3 z4 m
  10. #define EXIT_FAILURE 1
    ) r6 f" m5 g3 M% p6 @3 a* I
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))9 @5 ?& ]! V- i# n- \/ W
  12. static void report_error( char *file, int line, char *function, int return_code)6 d8 K; o+ y+ A2 K# }
  13. {8 ]3 Z9 w0 g) p
  14.     if (return_code != ITK_ok)
    ) v5 Z, F  D" L' ~" o
  15.     {4 e7 A' t8 Y/ A/ P! w
  16.         char *error_message_string;5 ^0 q' B' G2 ]0 T) k3 Z
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    ( V3 e1 O: A+ r$ X* A
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    % {, B/ v7 {. r+ t4 q; C
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);* X, H3 }7 o: f* U7 w+ K% A
  20.         if(error_message_string) MEM_free(error_message_string);- ^0 b! d* O& b
  21.         printf("\nExiting program!\n");* K* E0 P9 K! @6 t
  22.         exit (EXIT_FAILURE);   
    ) [6 w& \/ p; |
  23.     }% V' F6 s! Q" T6 Y; r0 m
  24. }% V6 B! H4 L0 y# ~% U* L& w8 f
  25. $ o, Q' k! N. u- }+ A
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))7 N1 O- ]8 I, @1 j
  27. static void check_value( char *function, int value )
    ' @8 P2 D; v( w. P8 Z8 t& y
  28. {
    ; m9 k3 v5 e0 T' n
  29.     if (value == 0)
    ! x% S- l/ e- Z! W& ~3 K
  30.     {; T3 K4 X1 B' Z3 w& T7 k: g
  31.         printf ("\t%s is NULL\n", function);
    , D2 D' D! j: T3 r
  32.         printf("\nExiting program!\n");
    $ z$ _) E$ Q; i1 t* J2 _
  33.         exit (EXIT_FAILURE);   
    8 j0 V7 d# e1 `* u
  34.     }
    . f$ }& E- M5 Y; m- h) v- E
  35. }
    # `% U1 Q5 {7 D7 f8 `( i
  36. 8 K" m, h- h" [9 j2 ^* H- j9 H1 L

  37. ( v( t; |/ B0 g
  38. static void do_it(void)
    ! m% s  Q, Q6 T% }- Z- Q( T, g
  39. {' u+ h. B* }% z" B0 A
  40.     int 2 b( ^! ^4 W" w& X+ ?8 E
  41.         attach_types[1] = {1};
    - i; V% b4 \" h2 y, m
  42.     tag_t % o0 `7 j- C( D& d3 w' m
  43.         rev = NULLTAG, 5 p9 {' k! n5 ?& `8 B% B: Z
  44.         process_template = NULLTAG,
    4 y. B! c$ x, \8 L
  45.         process = NULLTAG;4 K+ |" z1 Y- n1 b# Q8 a" Q

  46.   d5 w  |* F  Z
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );% m* q' J3 q7 z7 i6 b( c
  48.     EXIT_IF_NULL( rev );
    $ e0 @% v, y6 q
  49. - R3 i$ d; n2 J4 D" c/ a
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    3 e! z. J9 U9 ~8 F' s+ L7 v4 X
  51.     EXIT_IF_NULL( process_template );) r: q  o& T% W8 ?
  52. ( n' F- X+ K9 W
  53. 9 H2 A7 [6 ?2 Z. c; q4 }
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, / ^8 a' |% Z# P/ X, V. t. P
  55.         attach_types, &process) );$ R' E: O7 o0 z

  56. & M7 o/ p4 P6 E( K5 F* k( i+ l0 R
  57.     EXIT_IF_NULL( process );/ a9 p7 K+ y$ H, _- e
  58. }
    1 A1 g9 |( k$ U' u8 I  o' a

  59. & G0 P& b" a5 e9 \0 s/ ?9 S
  60. int ITK_user_main(int argc, char* argv[])* D4 Z1 Z4 j) y6 V' ~
  61. {
    + c4 K3 @  w, b, G. c% r6 e
  62.     int( z7 \! o% K/ @5 Z! X$ I$ R, {
  63.         status = 0;
    ) H6 u: @5 S1 o. Q0 w0 I& t
  64.    ; U/ p- a* Y% x6 f7 V1 B
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    3 }! l2 J; N4 Y$ E6 v0 A
  66.     status = ITK_auto_login();
    # Y8 R1 |! d" c* E5 A' J, S
  67.    " F7 g+ T$ L& X4 K% [2 G
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    : m6 m' j) U6 j+ s  P/ j3 q5 ]% c
  69.     else
    , P4 x+ _0 Q/ d/ }8 s* g, o
  70.     {: w% S0 d& x9 v, b9 T) J
  71.         printf("\nLogin successful!\n\n");
    3 }/ S) z! Y* X/ z5 ~. \
  72.         ITK_set_journalling(TRUE);
    3 T- l. O5 r& u* f  ]# m1 L0 b
  73.         do_it();
    - w( x' \3 U: k
  74.     }
    , \  x, d0 o! P- @! H' Q+ K8 t* T
  75.     ITK_exit_module(TRUE);
    . K# [' W7 z4 i0 ^/ U8 e7 _, d- I
  76.     return status;9 I8 F* p7 A( }! `6 O
  77. }
复制代码

- v, Q) v5 i2 }" Q# L! L2 G: b0 @; T/ I3 W8 o, X& N
9 Z- z2 Z9 |+ N, [. T' p2 U
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了