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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

, [$ q% c, m' t" S6 f; VTeamcenter ITK二次开发源码分享: 创建一个工作流
6 N" U# r& O+ H1 E
% q" X8 E: x. i3 k4 S+ G1 N0 M
  1. /*HEAD CREATE_A_PROCESS CCC ITK */5 }3 t: U8 a. o/ I/ ?& i
  2. #include <stdlib.h>" P! J7 X* w- _4 E. O- u
  3. #include <TCcore/aom.h>. e; N5 |  C1 m& N2 r& z- @  I
  4. #include <tc/emh.h>
    1 f4 {4 P! }5 D$ L
  5. #include <epm/epm.h>
    7 V2 x* N1 E2 i8 u" s0 B& C
  6. #include <tc/tc.h>* |9 [7 C$ d, F% G
  7. #include <sa/tcfile.h>
    $ L, m( Q, v& {" M" a% S8 I5 _
  8. #include <itk/mem.h>
    * X( t2 o3 l. V7 r6 b- i

  9. 9 {' H4 I/ q% f- M# n2 |. V$ g1 F
  10. #define EXIT_FAILURE 1 ' B7 K# i0 ~( W6 o3 J! @: Z' C+ X" @
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    : U- a7 s- r" R3 M' A( O
  12. static void report_error( char *file, int line, char *function, int return_code)
    # U" @6 g9 i; i* n) P9 d
  13. {
    6 H' F# S9 g( F" m" ^1 M
  14.     if (return_code != ITK_ok)
    6 g" x6 J0 u$ R% s1 N
  15.     {, f, r+ ]8 D1 e9 G' W8 \
  16.         char *error_message_string;, z! \0 ^7 f( q
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    6 a0 m& L5 X, t# Y0 d$ M
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);6 C' E9 \. S4 J: R4 T, Q/ g
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    ; o, v6 c4 R2 T! s: ?
  20.         if(error_message_string) MEM_free(error_message_string);, k, W3 J: I# v; x' q0 @7 l
  21.         printf("\nExiting program!\n");! E3 b" Q# \* a. Y7 v8 h0 K' U, |
  22.         exit (EXIT_FAILURE);   
    3 f) g9 ]. x) ^( V, _% n. ]
  23.     }; V* d7 T6 Z; q6 x- @
  24. }0 J3 B' [( r, c  ^5 n

  25. 9 y8 L5 M; s' S7 l. w( c3 q
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X))); ?  X3 g7 @$ C: x3 s" ?" P) F' j' t
  27. static void check_value( char *function, int value )
    ' t6 ?, u7 m. n3 V1 J
  28. {
    9 P% G" o4 m, s7 h# i5 [- d
  29.     if (value == 0)
    " y; R' z6 N& T" a+ d0 k
  30.     {0 t' P5 m: S, Z$ K4 z9 Q4 D
  31.         printf ("\t%s is NULL\n", function);
    ! s/ U% q, U7 h9 s  U2 x
  32.         printf("\nExiting program!\n");. ?9 I$ F0 O" C! G) n0 k( K
  33.         exit (EXIT_FAILURE);    0 a  \0 g0 A- _) }' o
  34.     }# R; {0 Y1 d# Y$ z5 q
  35. }! _7 w7 B8 B8 C; \
  36. . ~+ h4 y+ J: ^5 S% u7 i
  37. $ `3 e& }, o* _$ J) [% G
  38. static void do_it(void)
    . l! V1 q/ K% A- h  d4 |
  39. {
    6 P0 v) ^& O6 Z% i- ^& v9 b/ c
  40.     int 2 e1 q* d) J: C0 y, K! u
  41.         attach_types[1] = {1};/ P( U2 c" _1 ?4 c
  42.     tag_t 7 ^, ~. B/ P( M! y) `3 n: X4 h) {2 u
  43.         rev = NULLTAG,
    + r3 W5 y; j2 E* v
  44.         process_template = NULLTAG,   C# H4 p2 F  m. \: y+ w
  45.         process = NULLTAG;
    # W& o  Q; ?- Q; @

  46. 9 ^2 }# X$ w) d- T0 M
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    2 K0 u1 c0 D8 e. E4 d1 ~& t
  48.     EXIT_IF_NULL( rev );: \+ Y- y  y+ V( w/ I2 i
  49. 1 ^: m5 j4 U$ S7 z& r
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    6 P: I$ c& Y2 r, n- F* s. E1 d
  51.     EXIT_IF_NULL( process_template );* Y( R3 }+ z4 a* i/ A+ _

  52. & \( ?4 \2 G% ~  j6 {/ F; u) g7 p
  53. 7 p$ _. ]8 |9 p, @
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, + F. |8 ^3 H& y* e
  55.         attach_types, &process) );; x* k$ h1 w7 I0 F& D# ?) j6 L. x
  56. $ l; `& v0 [* b' G1 a6 j8 e  p
  57.     EXIT_IF_NULL( process );
    / N  o) O0 g% B6 E8 D1 r( r* |
  58. }$ D) r# `  Z7 y4 v
  59. 0 _, X! O% W$ b5 S/ `
  60. int ITK_user_main(int argc, char* argv[])9 W" _, Z( ^; p# g, F4 v5 M
  61. {0 S$ e' g' F) N) f2 [$ g) ~$ F* d' E
  62.     int
    ; ?' v6 g# l* P) f; O1 G
  63.         status = 0;   C0 n4 M! q4 i4 L
  64.    
    4 B6 z0 o$ V; ~* _5 n
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    0 l' n/ Z7 r8 ]6 N" Z
  66.     status = ITK_auto_login();; m) ]9 _3 h* |0 `6 j9 N
  67.    $ N$ J9 U/ d* u$ i: N6 k. l
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    : e' |4 K( o% j
  69.     else" P2 Q( R6 S0 c3 r1 L7 t  R
  70.     {
    . l) H8 F8 R+ V' L# i
  71.         printf("\nLogin successful!\n\n");
    ! x  E4 n  C8 ?& R, a
  72.         ITK_set_journalling(TRUE);
    4 U( P  ~/ |" g9 b) _- L
  73.         do_it();
    3 X5 t% E2 L; f2 m3 A2 x8 }' u. W+ V
  74.     }
    " `6 c+ |8 L/ V+ x3 P# ^
  75.     ITK_exit_module(TRUE);% M0 H! v+ B5 w9 K% w4 T+ f) N- c
  76.     return status;+ D5 G3 \  J4 W
  77. }
复制代码

* _7 b! l7 f$ x' I1 j
! ?; Q& ?- Q; \9 M# @; C
# W7 p0 G2 B8 S6 F" Z1 ^: F
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了