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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

9 v7 x: k8 v& @6 WTeamcenter ITK二次开发源码分享: 创建一个工作流
: }' t5 U2 b6 R* G: \6 {' t# W  k
( T) ]7 z( o4 w2 y
  1. /*HEAD CREATE_A_PROCESS CCC ITK */* l: \( O/ {# g( b! ~3 s  ?
  2. #include <stdlib.h>
    3 l4 B) \' J" i  q  a
  3. #include <TCcore/aom.h>- _% f$ Z9 ]$ t. h4 b' R+ T" u0 P
  4. #include <tc/emh.h>! \/ v+ j4 U6 T# V) Q
  5. #include <epm/epm.h>3 e0 l" Y5 M% ^, }
  6. #include <tc/tc.h>  ^) ~/ S' s$ D+ p( [; O
  7. #include <sa/tcfile.h>% o! F3 t2 i* I( d1 `6 k8 B7 c
  8. #include <itk/mem.h>
    & G  ]3 H4 a2 e& [$ @& G
  9. % s) j5 [+ Y0 y% s9 c' d
  10. #define EXIT_FAILURE 1 $ v+ ?* _# x  V# \/ i# u& O
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))) x9 _' }4 k, @* Z* [: `/ U
  12. static void report_error( char *file, int line, char *function, int return_code)/ s: [" C! i4 J# m( n$ D
  13. {
    + x1 F  F- A* h
  14.     if (return_code != ITK_ok)
    ' \6 K5 p# X3 Y% R1 F
  15.     {
    + X+ @- Q0 n- U" }( D
  16.         char *error_message_string;
    # ]6 E; [( K/ r, v3 g; c
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    $ k3 _( ^5 T. \2 a- O
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);! X7 l& y/ k( G, G- v1 C
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);% u8 r' R, L, _: E& `
  20.         if(error_message_string) MEM_free(error_message_string);
    1 C: n  k$ Q8 a+ K2 {9 F2 t
  21.         printf("\nExiting program!\n");5 b; O4 j4 S! L5 n: g/ u
  22.         exit (EXIT_FAILURE);   
    ! S* D  Y$ H. x" G' x
  23.     }3 m% a1 E# c, O% g
  24. }
    6 O' L  n3 D- {- n0 N1 i
  25. , G# C0 r8 W3 b7 |+ v' u: k
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))+ Y, ]5 H' b  h1 g
  27. static void check_value( char *function, int value )! F, U: Y6 \, ~" z, V: L% n
  28. {4 ^" g$ s+ C: B) B  m& I# q
  29.     if (value == 0)
    0 U8 x- ?2 c# v5 h0 F( n
  30.     {( n/ \  `* a& o5 L
  31.         printf ("\t%s is NULL\n", function);9 u% [- y; H/ |# f2 x/ e$ R
  32.         printf("\nExiting program!\n");, E, n8 B3 i% W% t" |; Z* U! b
  33.         exit (EXIT_FAILURE);    + l6 S, x3 u$ I
  34.     }: ?: y! r% q: N* ]. V- Q4 z
  35. }* @( q: ~. g8 c. S. O- a( ~
  36. " E( e4 A) k* w

  37. 6 z$ W( ^6 f" j- `. u4 D
  38. static void do_it(void): d! O+ H: D; f0 L4 F
  39. {6 e/ T+ A. b4 u, f# N
  40.     int
    2 l2 a) a" c& a6 R0 D; o% p, f9 @# ]
  41.         attach_types[1] = {1};. H8 q0 x! ~! H& }7 w
  42.     tag_t 1 y1 Y3 v- A, O* h8 u
  43.         rev = NULLTAG, ; k2 `1 g4 I* m4 v; K( \
  44.         process_template = NULLTAG, ; R0 Z* ~2 @. M& l- N
  45.         process = NULLTAG;
    $ d- u+ i' X  X# l2 S
  46. # l3 a* _( E& D9 z2 r; q9 r
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    ( b9 k/ y' `) ?9 I! y* @6 f' @
  48.     EXIT_IF_NULL( rev );5 B/ [- z! k  F# |+ y# D* r
  49. . z( b! c/ w9 @. A1 P, T$ `1 f  |2 g
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); / B# W! s! q( Z/ s
  51.     EXIT_IF_NULL( process_template );9 |. K! H& B) v0 ~% N$ ?

  52. * E3 N# c* l9 x2 a9 \2 h

  53. ) F/ I1 T. M2 M5 j1 n8 [
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, - _) j. e) w' E, T1 I2 R; T: r( |2 U
  55.         attach_types, &process) );
    * x0 s8 m8 y3 [% W

  56. 3 y5 s( u4 n5 q0 J3 U
  57.     EXIT_IF_NULL( process );
    * {, l/ n, o6 n9 d+ S* J
  58. }  s- ^1 s/ M5 u" P, X! [$ L

  59. # y* L0 `; G  e, }: ]5 r, E
  60. int ITK_user_main(int argc, char* argv[])
    ) d6 R# Q/ H# Z- p$ }7 B
  61. {( a2 v& @5 p7 R. M. @" r; }
  62.     int' w3 s4 \& [/ G- D
  63.         status = 0;
    ' @) G/ {3 O3 r* C9 n9 h3 w
  64.      c, x$ k, [6 C1 y7 x+ E, R, r3 L, H' w
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );! f2 P0 q) W9 ]; W, X/ B
  66.     status = ITK_auto_login();; O5 ?4 C+ ^9 K3 c+ }
  67.    7 e8 [# o7 P/ C* h1 J2 P! F' M: a$ W( `
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");! V5 K7 ]* ^* T* g9 ~/ w6 w' B% i2 T
  69.     else
    1 k( _9 Q$ \7 e0 R
  70.     {9 x% `6 X, a) T7 y4 v% a4 z
  71.         printf("\nLogin successful!\n\n");
    0 x4 Z$ p" @* ^+ o2 s! S
  72.         ITK_set_journalling(TRUE);3 q! k- V3 z" A* J' H
  73.         do_it();
    + t# Y4 o4 o9 r* `+ ~6 r( k$ M
  74.     }
    " w6 m1 z, K8 D( [2 o. k8 {# _2 S
  75.     ITK_exit_module(TRUE);1 e* m% ?& w2 R' }; x, r
  76.     return status;; j3 n0 L, T$ }4 O2 X0 m
  77. }
复制代码

! R* Q; D: _- g! \( \4 W+ r5 i
6 h3 \; X1 a! ?( H" [
$ d! l3 l+ ^+ X& i7 a9 b3 m
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了