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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
7 H4 U4 Z" Z2 S4 F" O# i
Teamcenter ITK二次开发源码分享: 创建一个工作流/ m5 c; C$ H1 C+ s8 S8 i
. h* {: K( W' l6 `6 T: e/ m; I
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    9 f1 I0 c* D# z
  2. #include <stdlib.h>- U2 f5 [+ ~  p: u7 B: j% V: V% j1 Y
  3. #include <TCcore/aom.h>) y' q/ o9 e1 c# o3 r' [! w
  4. #include <tc/emh.h>
    ; |, b7 w9 {- U
  5. #include <epm/epm.h>
    & _$ `* _; M  L" z/ `1 P
  6. #include <tc/tc.h>
    ; W4 g) A/ e5 X. [
  7. #include <sa/tcfile.h># ]% i4 c  e  e) I3 o
  8. #include <itk/mem.h>& H" `2 f9 k- B! i7 i

  9. 1 e+ I) g% ?3 N: N+ b
  10. #define EXIT_FAILURE 1 + `* g0 u3 d$ N! g4 @5 `! p* `0 ?
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))* W& B7 q3 x/ i  p
  12. static void report_error( char *file, int line, char *function, int return_code)
    & k" \; y* P; S% E# N
  13. {+ ?# L& q5 K( A( Z
  14.     if (return_code != ITK_ok)  p' P! P9 O# h( @
  15.     {
    ) b$ x; t" \/ m" W
  16.         char *error_message_string;: _! N% b/ _- O" C2 Q
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);4 C& L* ^% _' M3 R
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);, L' I( `: K( f5 |9 y' r
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);( W" q2 l# \7 U, @1 l
  20.         if(error_message_string) MEM_free(error_message_string);
    . o  S4 f  p8 \; C' R  ^" @
  21.         printf("\nExiting program!\n");
    8 D- @1 A% y3 u! ]" t3 X
  22.         exit (EXIT_FAILURE);    / ]7 e3 K) t, }
  23.     }4 f& c& C7 f# x; E1 J5 i( m0 e# H
  24. }$ @: s1 |4 B+ R+ `* W( A! Q- k- ^$ P) l
  25. 7 _! i; q, O1 j) C5 |
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    * o; _% f5 B& p/ d0 d
  27. static void check_value( char *function, int value )2 S. s7 ]0 c! S/ O- E
  28. {
    9 C  M$ @8 _6 C
  29.     if (value == 0)
    # u, D& s  L( X; P0 w
  30.     {7 K% I; V  K7 h# r! c
  31.         printf ("\t%s is NULL\n", function);
    5 H* c1 U% X2 R( y1 r5 {% [7 M
  32.         printf("\nExiting program!\n");- }; `. a( w( f' v
  33.         exit (EXIT_FAILURE);    % r8 E0 l1 [) Q' o5 P' A
  34.     }5 s( m3 z% Q6 K8 Y. v! a$ ^
  35. }
    * f; C" t! \  i3 r/ T$ F

  36. 1 i2 N7 S- \: ?. |: L
  37. ' `& j) u2 I$ f) k0 |8 w
  38. static void do_it(void)
    7 q8 a/ p; ?) a6 ~7 p' w3 t' H
  39. {$ `8 r- m3 |- r; Y. N) N: k" u
  40.     int
    ; M* x" u9 w7 \
  41.         attach_types[1] = {1};
    5 Y3 Q; @, @* p7 y, s, C
  42.     tag_t 6 V/ `# e- B/ `& p
  43.         rev = NULLTAG, 6 b0 U* v. B3 [; k. q  o
  44.         process_template = NULLTAG,
    + X# s, f: m& z$ t% o) L' b4 c
  45.         process = NULLTAG;
    2 q$ C9 i: J7 B; M9 w" P8 U4 G; Q! H, q
  46. 2 Q7 T$ ?1 _2 u% r
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    6 q6 R' s9 U% o- K1 v. r  z
  48.     EXIT_IF_NULL( rev );
    % o" ?4 L: ]( O$ }8 c
  49. 5 Y$ `: m/ b4 X- F+ U* F  V
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 3 o6 f+ s: W2 z& Y
  51.     EXIT_IF_NULL( process_template );* s- ~1 v3 V- c2 @5 }; T$ u8 N
  52. : S3 a  d( u& |- M: H
  53. 7 d: E) c# p* Q) d5 x2 w
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 9 N! }1 w2 ~( ~9 w1 `# O* P+ m& I0 B
  55.         attach_types, &process) );4 D& l3 D1 T" u$ O3 ?5 E

  56. 4 @9 g. E" b" T3 c' E8 z) H, b
  57.     EXIT_IF_NULL( process );( {3 t- }/ h. k- g& b
  58. }
    8 O1 r4 V9 V1 I0 o' [
  59. 9 M' ?9 q$ v( G" ~. ^
  60. int ITK_user_main(int argc, char* argv[])4 t) l0 c  N4 P5 w5 G
  61. {
    * P* Q0 B3 v$ n) D  V3 h1 f
  62.     int
    * A: }- [  n" l& _( e. z
  63.         status = 0;
    & B0 x* _6 A) k3 i  S; T
  64.    
      t( Y7 e$ N4 y# R
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    ( k9 s. b: H* C. c5 @$ [1 [
  66.     status = ITK_auto_login();6 u: t0 G0 j3 t: u- X/ s" w
  67.    : _, Q+ S: C# e6 I, b
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");% w" H' Y. D( c9 ?$ S
  69.     else
    0 e1 c# H5 r! [. Q
  70.     {
    3 ]( ?: K; [, k  A6 t: |0 B
  71.         printf("\nLogin successful!\n\n");
    7 M. V( G4 c* R* R& P) ^
  72.         ITK_set_journalling(TRUE);+ K) w- @' p# y  }7 T
  73.         do_it();
    8 O& w8 [( O! a, N1 h  k
  74.     }3 g2 D( e/ H' z  \
  75.     ITK_exit_module(TRUE);
    1 j% w. N4 h' R7 G1 r' @1 N! h
  76.     return status;4 g) B6 n4 [$ s& D/ A
  77. }
复制代码

8 s$ [$ I, m. f, i+ Z
# N5 p2 W- w( u  Z7 r; o" A1 ^6 |- 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二次开发专题模块培训报名开始啦

    我知道了