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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
" k2 z; K) ~3 N# R. a4 n5 k7 k5 J  s
Teamcenter ITK二次开发源码分享: 创建一个工作流. b4 X  H) Z, O, L
4 q6 T2 ~  I; D. G
  1. /*HEAD CREATE_A_PROCESS CCC ITK */' X" ?0 F, h' ^
  2. #include <stdlib.h>' c- E; |! c% Y! M+ q
  3. #include <TCcore/aom.h>; g' M5 i( `* G6 A4 m4 _: J
  4. #include <tc/emh.h>/ R$ f+ ^1 t0 l) C& ^
  5. #include <epm/epm.h>* l7 o, \2 v+ b# x# E& @8 g
  6. #include <tc/tc.h>! ?. F9 M; ~0 w3 {
  7. #include <sa/tcfile.h>( H' s8 {- }0 t4 T& G5 h6 i$ n4 B
  8. #include <itk/mem.h>1 D& C/ _6 T$ i6 Y1 f' T4 \
  9. ' k2 C$ |# L& S6 T" h
  10. #define EXIT_FAILURE 1
    3 f& V* [' Y' R5 E3 y3 s
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    1 c6 n, g$ V" |" n$ e- V
  12. static void report_error( char *file, int line, char *function, int return_code): r: C7 n, V0 I. c
  13. {
    0 P) s! {! u6 n' T+ t/ v  y
  14.     if (return_code != ITK_ok)/ ~' Q" h" u' {# V7 q
  15.     {4 Z8 m1 A7 o" z9 u0 i6 b4 x
  16.         char *error_message_string;
    0 R$ r( ?/ _2 l5 g" g9 a; L
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    . H4 @6 d- t9 I% v7 _
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    5 l, g( p0 [( G8 p& D2 I  k: _
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);7 i+ M! F( I2 R- l
  20.         if(error_message_string) MEM_free(error_message_string);
    , g# D% w: P( X, _, b6 z5 l
  21.         printf("\nExiting program!\n");( N3 `) d. D$ v  V
  22.         exit (EXIT_FAILURE);    ! }- `9 q8 F) V$ O5 R# `% H- h
  23.     }. B3 x% t5 f, j4 z, G
  24. }
    ) }: q# \6 p( c/ e
  25. 5 I6 K! g1 U8 ^) V, @( m4 F* r+ Q
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    5 G/ O4 q" o3 f2 ]  m' d  q- O
  27. static void check_value( char *function, int value )
      M' V+ V) {% P$ m
  28. {# m7 V& j' d, x1 e/ r2 A
  29.     if (value == 0)" u2 w0 `7 S2 Y. o* x8 r4 N
  30.     {
    9 R5 e% Z9 Y7 W* U3 @% v! ?2 z
  31.         printf ("\t%s is NULL\n", function);
    ; m8 M" g5 r: k' @+ R
  32.         printf("\nExiting program!\n");9 k! y' ~; c3 ]- x  A  `
  33.         exit (EXIT_FAILURE);    1 [4 W  t  j+ g" k+ E
  34.     }$ _9 w  j& e) x) W# s
  35. }) [0 t  I( F9 A3 \! h

  36. - u# J) q3 @& f  r1 z+ S, h. r
  37. : O; X6 U2 C* Z) A$ p
  38. static void do_it(void)
    . [4 L1 x% Y8 w/ A
  39. {
    9 J! y5 u$ v" q
  40.     int - u1 k( ]( O9 }' S
  41.         attach_types[1] = {1};6 x! Y3 h% c0 v7 w( f' _
  42.     tag_t
    ( p) |( U: ?# r6 x/ G' E
  43.         rev = NULLTAG,
    , ]; }4 h: S5 D0 m; V) B. n' s3 m
  44.         process_template = NULLTAG, ; c' M# x7 a6 s" K- A" C  [- y5 f5 e
  45.         process = NULLTAG;! e0 L9 r/ J5 o

  46. 0 x. C$ a8 n6 i6 X2 l
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    8 y  ?! f" p/ |0 R3 I  G. I
  48.     EXIT_IF_NULL( rev );
    $ c7 m6 C# O2 B$ k7 h( c( D) k

  49. % H. A! @" f+ M) I% I
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); ' P" w' w1 f) ?" Q
  51.     EXIT_IF_NULL( process_template );
    7 v2 u3 d) D# D4 {  X$ R& R8 x& c

  52.   Q5 W. s2 W8 c+ e/ |
  53. 2 Y8 S; v1 m7 A. V" o7 \& G
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    9 U! o2 ^9 z6 |/ b* @# F, X1 e
  55.         attach_types, &process) );
    ' D5 `" e5 z8 h: V$ k: Y) D  \( B
  56. % n: ~9 z4 e3 \* U- J; d& e5 O, S; @
  57.     EXIT_IF_NULL( process );7 K3 D+ W% X1 S6 |* L/ Q3 @9 w
  58. }
    1 W( J( j0 L6 S. w1 r5 j6 q1 Y
  59. 3 ?: d; @8 H* e5 G- _- D' ?2 K" s
  60. int ITK_user_main(int argc, char* argv[])
    ! |4 l! P  H$ H( M
  61. {
    2 Z4 A# Z/ w9 b; ~$ m" j5 j6 R' M
  62.     int
    6 a4 _5 y" m1 e! I3 ~. q- V( E
  63.         status = 0; * o* e1 ^' G6 `
  64.    
    ' Y" F8 h" E3 T# X% ^( l
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    3 @2 H8 Y: I1 x- i" S2 c2 W
  66.     status = ITK_auto_login();
    8 V1 h  u6 T+ N
  67.    . B' g9 [+ u" Y" k
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    ) h0 o2 K" O0 n; w5 k* M( Q
  69.     else2 }8 v4 W8 Y1 e5 ]% S
  70.     {
    # B. ~) n1 l1 K2 p
  71.         printf("\nLogin successful!\n\n");5 ]! e. q% l3 W/ Q8 w& C  e( J
  72.         ITK_set_journalling(TRUE);: U: Q, L; P7 o6 g1 k+ {! L
  73.         do_it();
    $ s1 c: e5 |3 `7 z$ q
  74.     }
    ) z8 n6 R7 D8 U% d+ \  D
  75.     ITK_exit_module(TRUE);/ d, H2 z- e; e2 f
  76.     return status;
    2 k$ O7 \4 x; A. J  M% F1 ?
  77. }
复制代码

0 d3 B1 O) v2 Y/ v% f4 l' U9 ^
; d9 S9 \5 W$ _0 [
% K  f, ^, K3 Q! K
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了