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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
" _- h6 D) |2 l' |  t6 s
Teamcenter ITK二次开发源码分享: 创建一个工作流0 T4 B  E! K! p5 v

* d6 R; ?5 R  w. {5 S
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    3 }' N( |$ z, S( e
  2. #include <stdlib.h>) f1 I4 ^% X8 u; c. d
  3. #include <TCcore/aom.h>
    . z5 m- v1 I# P$ a3 M" F8 l; P# c: \
  4. #include <tc/emh.h>$ O" O2 K% I4 v7 m  U
  5. #include <epm/epm.h>6 _3 p* p, z. u  u$ e
  6. #include <tc/tc.h>
    ) ^# i4 z# p2 N& o! [' O' F
  7. #include <sa/tcfile.h>( z9 |: f8 r% ^6 c& e
  8. #include <itk/mem.h>$ H7 y4 ?& B$ E2 [. ^

  9. # r( {4 ?& J2 ^- b
  10. #define EXIT_FAILURE 1 " l9 w2 D+ A/ d4 j: R# c
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))+ T$ v% C# t0 S% M# v  ?% t! m
  12. static void report_error( char *file, int line, char *function, int return_code)
    0 v# b4 S% m% s) S" g
  13. {
    9 h$ E& M# U7 }& z9 }" r
  14.     if (return_code != ITK_ok)
    - B, B$ n6 S2 f1 _1 V
  15.     {
    9 C# \; c2 M% ?5 R3 p
  16.         char *error_message_string;% \+ a1 i' g# |! {
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    * B; H  P6 c( [* T: w- a3 J
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    ! u* {7 Y3 s- G, o0 l, I
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    9 }& p# i, N0 p9 |7 f+ {
  20.         if(error_message_string) MEM_free(error_message_string);" E+ t1 b, e/ V4 O
  21.         printf("\nExiting program!\n");. Q; M' T5 ~" i- A0 B6 l
  22.         exit (EXIT_FAILURE);   
    6 z: D5 c) Z: p. X' q
  23.     }8 O+ t3 p0 c# O
  24. }
      }/ K1 h0 B0 N( _8 y& m8 f8 v

  25. ; ?" Y0 i) b, I  r# r
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    / m7 T8 N! z  m6 g
  27. static void check_value( char *function, int value ); ~  j; f% |8 o) c% Y# O
  28. {9 m( e! l) D( M8 R) [% ]# Z
  29.     if (value == 0)
    + p+ l: @2 h. c/ j  |9 |& K; Z
  30.     {
    + U6 d* v0 Q0 U( m! o+ J
  31.         printf ("\t%s is NULL\n", function);
    ; U) Q( T% z/ a& c3 s! L0 h
  32.         printf("\nExiting program!\n");
      q1 H4 ~% T* y3 v* y/ O" ~
  33.         exit (EXIT_FAILURE);   
    ( I+ w3 j7 }: o0 r
  34.     }
    ' r1 @7 ~* k+ P+ e, g  D' t& Q
  35. }
    9 i2 N" T  P4 n1 P+ ~

  36.   Y! {* a5 h5 v  k4 g3 a

  37. 0 [6 ^2 @) U* X: c, B" U# K
  38. static void do_it(void)3 V- w4 q7 r4 m+ _4 L
  39. {9 H4 b$ l+ U) k$ R
  40.     int 7 I7 `0 k& a. ?1 U# I- ~6 z' b
  41.         attach_types[1] = {1};
    ' n  }$ e6 z8 q% N0 V
  42.     tag_t
    8 O( a9 n- g9 o+ |4 |. _
  43.         rev = NULLTAG,
    , T  e7 [: \. S4 {+ z
  44.         process_template = NULLTAG,
    , {7 P+ t8 f1 b- m# }' K+ K+ s- T2 t
  45.         process = NULLTAG;
    / F/ X" u/ r* k3 y/ p
  46. / n" y7 a8 Z. `; T' Y* a3 }: ^  ~
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );. r; E8 [: G& h( i" R! O
  48.     EXIT_IF_NULL( rev );
    9 S. R+ |4 v/ i) F, j

  49.   T5 f4 m9 S% R1 R2 i! l1 i6 H
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    & k8 O9 E6 M/ C+ I5 m. S7 e/ C! `$ b
  51.     EXIT_IF_NULL( process_template );, {/ f7 W6 b. B# J5 K0 A
  52. 2 ~: z. F: }' i) G  `* ]* r

  53. ; d' a/ _% F# K! X# ]
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    ! O- H- d6 b8 Y7 X- B- S& o
  55.         attach_types, &process) );
    + l  C$ r) E1 e* ]  x

  56. 8 _" B6 i, k. K
  57.     EXIT_IF_NULL( process );8 C6 L& |: c$ w- h( [! a
  58. }( {+ A/ H9 L" z7 Y

  59. 8 r7 b6 K$ r' M" _7 K7 F
  60. int ITK_user_main(int argc, char* argv[])5 T; c$ w6 z; h0 I; t. o) m7 h; L
  61. {" e$ k1 R' ^  F" r& p: J
  62.     int
    1 o+ I8 O# ~& W/ _: l. P
  63.         status = 0;
    % ]6 [# {$ M9 s
  64.    9 \: s# ]1 W0 ~0 N& U0 N2 `" ^0 Q
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );3 l6 d- ~; h' U" J6 E2 t2 a
  66.     status = ITK_auto_login();3 h* y3 F5 _# c. Q' H
  67.    
    3 U# J1 c  A8 S1 d
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    1 |+ }0 i  p; x5 v" E# F
  69.     else
    " m; [+ X% p3 p- q. v7 S, L  V  n' F* `
  70.     {
    $ S) D( B; \% P5 k
  71.         printf("\nLogin successful!\n\n");
    " B1 y. p  S/ I/ B. j. [
  72.         ITK_set_journalling(TRUE);, {9 p1 F7 h, z; s, L  Q) D( X
  73.         do_it();
    9 d+ R4 }1 b! }3 o: Z! W
  74.     }
    ' o2 P0 ~3 C1 C% s
  75.     ITK_exit_module(TRUE);
    0 v$ d1 P3 z( c& `0 ?$ ~
  76.     return status;8 R! s* [" u. ?( ~
  77. }
复制代码

# w; j* @3 W( r4 z$ Y$ L0 Z6 P9 c% Z
1 i  `! F6 w8 \* {. Y$ h. 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二次开发专题模块培训报名开始啦

    我知道了