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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

1 I5 o3 r& J- R+ `' bTeamcenter ITK二次开发源码分享: 创建一个工作流4 b9 T) Q. K( \+ f1 y  [- T
+ y6 a7 j( P: r% b3 c% }
  1. /*HEAD CREATE_A_PROCESS CCC ITK */7 D. u' F5 b% }0 y
  2. #include <stdlib.h>
    0 i6 N4 S5 k' X* r% ~
  3. #include <TCcore/aom.h>9 f4 S* K3 \0 ]/ e# U% c
  4. #include <tc/emh.h>* o. d' ?1 d$ W1 p$ ]& c
  5. #include <epm/epm.h>) y7 K! D, }- Q3 O0 a
  6. #include <tc/tc.h>
    * a) a: i) h3 p
  7. #include <sa/tcfile.h>
    ( V0 N# |# t  a2 g8 h3 a
  8. #include <itk/mem.h>' J. R7 n  Y2 \7 M6 A7 y& O, D
  9. ; B/ U$ f4 l( B2 Z7 I
  10. #define EXIT_FAILURE 1
    ) L7 s' R- j, t/ z7 ~- F
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    : l" y* k& U3 w0 e  Z' ]. L& K
  12. static void report_error( char *file, int line, char *function, int return_code)
    ' b1 E9 m% w* J0 `. {6 P- C: ]
  13. {  n$ h, x( Q+ p; s5 U
  14.     if (return_code != ITK_ok)3 T2 `4 p' W( j( G4 f$ S
  15.     {
    + O' I" c9 u7 @0 Y1 L
  16.         char *error_message_string;# @$ x4 s7 I  K% e' u
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
      h9 `8 ~6 [3 s( q1 f0 B5 ?
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);7 u: z. S# M% ?$ f. d" C6 u
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);2 C# w7 O) V7 Q7 g
  20.         if(error_message_string) MEM_free(error_message_string);' ~) ]. Z* e+ k5 P, P" R
  21.         printf("\nExiting program!\n");
    - h9 M4 M" F% L) G
  22.         exit (EXIT_FAILURE);   
    ) d% z! n* T) _, L
  23.     }& R, [! W7 ~2 V+ q$ h4 x
  24. }
    6 R  t# m3 G; D5 |6 P9 [
  25. ' c; S7 e* Z* D! S& z- D) m2 S
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
      J, n' X4 I# o* B3 h- H7 X
  27. static void check_value( char *function, int value )
    7 E, u# a5 l+ H- W9 T7 t) z8 ?
  28. {, }2 p  L+ Z# x* u( e
  29.     if (value == 0)3 w# Q' ]% s$ ?1 H* e# S
  30.     {
    $ _: t( K9 e% P5 v5 s& R
  31.         printf ("\t%s is NULL\n", function);
    * f  Y0 t: ^+ J$ ~( M
  32.         printf("\nExiting program!\n");
    3 b+ K+ a! H: f" I8 S: v& S) M- j
  33.         exit (EXIT_FAILURE);      z# j. h& r$ a" Z. H( Z* |
  34.     }
    & \0 D/ {% v, _) `: U, O3 C
  35. }! G4 J3 G& r, U% k; F; w

  36. 6 D/ |, Q. |/ S' G* H4 S% B
  37. / r+ u3 u* z5 z1 o9 s1 W
  38. static void do_it(void)+ v8 H6 P3 c$ U, e* J
  39. {" _" `" O* v: ~3 q
  40.     int & E' o1 Z, _) T2 y! K
  41.         attach_types[1] = {1};" R" i! H" ?) t
  42.     tag_t
    ; O! M3 W, z" E6 x9 g2 V' c
  43.         rev = NULLTAG, ( E( e3 i$ o( {& z1 x  f
  44.         process_template = NULLTAG, & {, B# n: u6 `2 e6 h5 S3 T4 n4 k
  45.         process = NULLTAG;
    3 e% ~8 W0 h! r  W
  46. # Q6 g8 P+ Q* B# ]
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    / \3 K% V  w& A
  48.     EXIT_IF_NULL( rev );
    + i+ B& ]; L6 D7 y1 C9 P& l& Y  N

  49. # i, e3 B# i& k- P: d: S, a
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); - f% K5 _3 V' w* s8 w
  51.     EXIT_IF_NULL( process_template );
    6 @+ N* D6 ?6 t; Q
  52. 2 P8 c$ l* }' F" h9 x/ _

  53. 6 Z" ]% L6 F6 x6 r+ C/ Z' }  |0 {
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    ; w; x8 Q* {+ o* p
  55.         attach_types, &process) );
    ; t* V4 i4 r3 p! b+ J

  56. * R# Y3 \* R8 N, y, g' s1 P3 ]
  57.     EXIT_IF_NULL( process );
    & T; f0 R$ Q( l6 a2 c* ]( \
  58. }
    + Y3 Z3 B, }" e/ }3 M* {0 |
  59. ! S$ S9 a1 C! k, x1 p% \6 U
  60. int ITK_user_main(int argc, char* argv[])! ~* h) `+ a# y3 x  E7 ?- m
  61. {
    & @7 h$ N% A6 k
  62.     int
    , N4 e$ l+ g; Y4 Q
  63.         status = 0; 7 Q% N; w, a  w% B' z3 N+ m
  64.    
    ) K6 P6 k' t6 o. h! M
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );' ]& T, Y- X3 C/ u9 P
  66.     status = ITK_auto_login();; X5 [! Y9 I1 E* N2 c6 m9 h
  67.    
    ; e+ y5 l, F0 c& Y
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    ) C4 }9 T. D" ?
  69.     else
      Z; m( ~" [; B5 k( O
  70.     {
    ) X* f  K8 I+ W% r3 f% N+ [
  71.         printf("\nLogin successful!\n\n");
    , }, S/ [$ Z3 t- w9 p' A, g
  72.         ITK_set_journalling(TRUE);
    ; E( ~2 ^2 S* l" S* P& w1 f
  73.         do_it();
    . n7 _7 p9 |2 x: q' w4 i5 B
  74.     }' r# H* {) {! Z! J
  75.     ITK_exit_module(TRUE);
    - |! H% C2 g6 Z  N9 H' ?
  76.     return status;
    ' e' N' N. P" S2 S9 k/ S
  77. }
复制代码
6 m4 x* _+ G) f" M2 m) @6 o

  Q) h% H# U' D& @- u' s) [2 D
* d5 t( ?8 [+ p' q8 N1 u8 j; s8 B
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了