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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

) E  z) z0 V+ e2 l- oTeamcenter ITK二次开发源码分享: 创建一个工作流7 _1 X. k% y! o0 r; S

6 a: Q; V$ _! G) x
  1. /*HEAD CREATE_A_PROCESS CCC ITK */3 t& O; X* s7 y9 b1 k) @
  2. #include <stdlib.h>
    ! }/ V9 j0 i9 v0 {
  3. #include <TCcore/aom.h>2 R  [$ B0 B1 A# C
  4. #include <tc/emh.h>
    ; R+ e. s/ V5 T' W* w  G
  5. #include <epm/epm.h>
    . s9 Y" w- `5 y- N
  6. #include <tc/tc.h>& D2 y* u4 S4 f9 h0 n
  7. #include <sa/tcfile.h>8 {- n9 R1 O+ P2 C( r
  8. #include <itk/mem.h>
    " `% X- V. L$ v9 t5 K

  9. & \9 q# u9 m3 _3 J7 d) x
  10. #define EXIT_FAILURE 1
    3 O1 `8 A! ]5 J8 F
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X))), Q; C% I- _' J, P
  12. static void report_error( char *file, int line, char *function, int return_code)
    / _8 A+ j* g/ K2 d
  13. {
    - @* l9 L) m7 q$ Y9 C3 l
  14.     if (return_code != ITK_ok)
    2 Q) @" }! N+ g( ^! v* N
  15.     {
    6 Y* o* O4 L) |7 H/ t
  16.         char *error_message_string;
    % n9 m0 M+ N* ]$ }% o0 x
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    3 s  K* g* d) G. R
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    0 k4 E" Q* J4 a  v! ~9 @1 `
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    7 i( x; c3 L2 j) ~  S/ ^
  20.         if(error_message_string) MEM_free(error_message_string);
    + z+ d) g* l; E: A: [" Z) }
  21.         printf("\nExiting program!\n");
    ( C% G! Q+ i) W
  22.         exit (EXIT_FAILURE);    ) f0 k& Q, S2 V" b
  23.     }
    & p+ S! Q+ a7 E
  24. }
    * X4 D2 F+ I) C. q8 K4 E

  25. ; l. h: L) b3 L# f6 v" \2 g
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X))); |' W6 q; S! ^8 g+ j# m
  27. static void check_value( char *function, int value )
    5 }' l2 a: P# \9 J
  28. {
    " n* n1 F; B! `& q4 }# R+ H1 L' J
  29.     if (value == 0)  t# o; j4 |: Z8 F9 M
  30.     {
    7 z- s2 d; M7 {, J+ d, j7 X
  31.         printf ("\t%s is NULL\n", function);
    4 _! C" g3 G' K& L; p( v
  32.         printf("\nExiting program!\n");
    , m1 C! r) V7 _6 E( D, \3 O# @
  33.         exit (EXIT_FAILURE);    ) \5 u- r8 L) V4 O
  34.     }
    9 b/ d% M( `$ i) x" a
  35. }
    5 ~; q$ [& p4 X* @) i/ p
  36. 1 w' h" D5 t! T. ~) }& [
  37. $ M7 i. Z! o0 W. P( j' H  K$ a9 p) p
  38. static void do_it(void)+ W# x6 |& b! m
  39. {- Q3 j- c0 e8 \9 L- j  `9 O
  40.     int ! `! ~* `# l+ ~( p9 o$ r* d* _
  41.         attach_types[1] = {1};+ F6 E7 s% }7 h3 G( g* R
  42.     tag_t - u. v3 `( j4 X. ?" X' |
  43.         rev = NULLTAG,
    , r5 P: r/ e- c/ L! N
  44.         process_template = NULLTAG,
    1 e) U6 n8 V2 L9 r
  45.         process = NULLTAG;
    # s6 m$ R0 g" [' ~4 A' q

  46. % V, I, S$ I" u
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );% ^! s0 Q& K2 S; G( ?2 z! f* E  z
  48.     EXIT_IF_NULL( rev );
    . s. n% G' O2 |3 y$ ]

  49. " P7 N+ x1 N1 h+ s9 O
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); . t: m6 o# x7 O3 d( U: A! T1 v+ k  T
  51.     EXIT_IF_NULL( process_template );
    ; D- r, {2 G# }- U( n9 b

  52. 2 {* K$ X2 X* f6 C  v
  53. , ]% c% T0 N' q) X- f$ z: q
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, " \: {% q: @# ^, j' K) u8 _
  55.         attach_types, &process) );8 f! p& X: ]) r3 m+ `

  56. . }. ?( ~! @3 |' Z" c# K
  57.     EXIT_IF_NULL( process );
    ' T6 d$ h& a9 P' l: R  \5 q) W! R
  58. }* Z3 b& f) K+ z, ]3 |/ j$ F

  59. : c- w; }/ t8 I& y  U4 o
  60. int ITK_user_main(int argc, char* argv[])
    $ \) y. L/ `& n8 j) h
  61. {! I# |) c, m1 [9 o7 M. V- N9 F' p
  62.     int0 [0 `3 s5 Y4 u& P0 r4 q
  63.         status = 0; ( I0 y) P! J  `! ~
  64.    6 m0 w2 M* O2 I& ]
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    5 E2 `8 A) F; ]# v% z
  66.     status = ITK_auto_login();
    : R- f9 M( F) g
  67.    
    % r7 O$ p: S# v4 p. _1 K8 }
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");2 }8 z8 ~# R  H) s7 C( m2 [8 W
  69.     else
    + s% N' N7 Q  i4 ^3 h* Z, f
  70.     {
    , R: {8 o/ h- `' u
  71.         printf("\nLogin successful!\n\n");
    9 T9 A( B5 F1 B" \$ q4 l7 \
  72.         ITK_set_journalling(TRUE);$ m0 f% r& c+ `" b5 A7 r0 l0 b
  73.         do_it();! `/ Y; Z! H3 W* r4 ^3 c
  74.     }
    1 |  O, S8 L, c+ X7 n, x
  75.     ITK_exit_module(TRUE);
    ; S- u& h) G, M7 w3 ]  U
  76.     return status;
    2 @( D7 }' s* r4 U7 z: V1 z
  77. }
复制代码
0 o$ X) l  ~% x# A
% w3 M! @3 q9 W/ t

; X: x9 X& u+ A
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了