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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

+ J( D/ x# L7 t0 a. h3 p' ZTeamcenter ITK二次开发源码分享: 创建一个工作流. ^, C7 y7 n7 Z' j8 g6 g9 g

) h% x0 ?' t1 h9 ~6 \5 b4 x
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    * o, _: N5 _1 }& P9 ~$ I  Q
  2. #include <stdlib.h>0 A2 `0 P. |4 q" ~' K
  3. #include <TCcore/aom.h>- O  T& y2 g1 `3 k8 B/ B4 [2 D
  4. #include <tc/emh.h>
    & G9 P; I: L8 t$ y9 O
  5. #include <epm/epm.h>
    - t* L& m, I' t! A& Y7 }; E' A1 ^
  6. #include <tc/tc.h>
    4 h6 q5 J- u+ `9 p5 H# @
  7. #include <sa/tcfile.h>
      W/ C* C2 {2 G8 _$ T$ `1 Y
  8. #include <itk/mem.h>$ i% C- h* H8 D0 Q9 z* z
  9.   Z8 Z( Y/ D$ U( g
  10. #define EXIT_FAILURE 1
    / \4 W" B1 ^2 ?3 G  M( p
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    1 d$ d+ Z/ |5 _# Z
  12. static void report_error( char *file, int line, char *function, int return_code)) A  u2 f4 Q' U$ }* d4 w
  13. {1 @, x8 v6 F2 S7 W5 f" N
  14.     if (return_code != ITK_ok)7 y# ?* i$ k3 G+ O2 J& `
  15.     {
    & k) R4 F, x9 B7 p' {  Y
  16.         char *error_message_string;
    2 Q6 }' r! e3 f6 a
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    * p" L& l7 @4 V7 h
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);! T2 `- l3 V% D- V
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);  g2 O" B4 c, q) N" d, g+ {
  20.         if(error_message_string) MEM_free(error_message_string);; y* b6 h% k- m: `5 x+ P$ y
  21.         printf("\nExiting program!\n");& z. x0 d+ ]! `% y% o* N
  22.         exit (EXIT_FAILURE);   
    " z5 M' H* C4 n& x; G  H+ V
  23.     }& f& v* o3 M5 [0 T6 r4 N4 _
  24. }- ^. a& s5 w, R+ f% \# {3 s" Y& f
  25. ; {0 N8 s3 |; g  @5 b' u/ S" y
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))# i0 N- M- c+ i/ K  Z/ B) P
  27. static void check_value( char *function, int value ): t# I6 k4 I, T
  28. {' B- W- f3 n( ]+ R: C* ?0 T$ ]( o
  29.     if (value == 0)" P- X3 R( w* E2 S; h
  30.     {
    ) l+ K' ]6 k& @
  31.         printf ("\t%s is NULL\n", function);' @, s: X" C- b4 p( T: E) ]( Q0 `
  32.         printf("\nExiting program!\n");5 ^& i# H9 \: Q9 P  B: ]
  33.         exit (EXIT_FAILURE);    & \% T2 c+ M4 i, Q
  34.     }
    : |; O2 ~4 b# j, _3 P
  35. }
    6 V8 u( x5 b  u$ F

  36. 6 q/ {# v9 C. P

  37. & ^8 z# x" s0 Z( m
  38. static void do_it(void)
    + g9 i' p8 v6 E7 V0 X+ U
  39. {3 M! V3 [! M1 X( T3 d4 m
  40.     int
    8 p+ o! V7 o0 Y: `6 u) N- }7 h. ]
  41.         attach_types[1] = {1};
    + h) j$ r( U- ^* w4 e
  42.     tag_t
    0 _% v  M9 F2 `5 L
  43.         rev = NULLTAG, % i! W  S: j3 @1 `( [2 `, F5 q
  44.         process_template = NULLTAG,
    + T# ^: Q; A# g6 n
  45.         process = NULLTAG;
    / x3 @$ F8 Q" G8 m

  46. $ q* x4 I2 [! c; u4 O; C1 }: ?
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    8 m  v; p3 I% ~1 R8 H5 @
  48.     EXIT_IF_NULL( rev );
    2 p% i8 b2 H6 {9 }5 z- i
  49. , g- w- H  C1 z- b" Q7 ~/ T
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    , R" ]' C+ X; e, h  J+ @2 }# G% L8 o6 Q
  51.     EXIT_IF_NULL( process_template );
    * p1 l6 G: u9 \1 g! A

  52. $ v% K* F1 N2 A/ q& X$ c1 H  \

  53. 5 [9 S# B  W$ G2 O7 Q% q
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, " f3 t$ O2 c' G& I
  55.         attach_types, &process) );% g7 I, ?- M+ |: f! h

  56. . y8 w$ m' R1 M
  57.     EXIT_IF_NULL( process );
    + \/ r3 E, o0 ^
  58. }- H0 u# Y- S& `+ r5 c8 M# r% W

  59. 2 t* g; b5 E# t' [  n8 I! M/ `
  60. int ITK_user_main(int argc, char* argv[])
    % s7 Y3 v% g4 k$ ?/ X7 S
  61. {  P  L/ ~, d1 z" l/ ?
  62.     int
    6 S& q+ P+ M8 o5 l5 Q; N; V
  63.         status = 0; 2 _: S6 z; l  V
  64.    
    , N( z: r" L$ u! y) V
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    1 `3 y# z/ x/ Z$ \! X. u$ {
  66.     status = ITK_auto_login();5 x" {* x5 s& l9 h  g% S4 T, F
  67.    
    3 r/ ~9 q. v6 E+ q  x
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");+ s/ I( m: t+ L7 `2 l  a
  69.     else
    1 `# ~) B1 C( G0 p8 t
  70.     {8 ?! Q' z7 e3 |' v" b! r+ w
  71.         printf("\nLogin successful!\n\n");
    2 C6 j; y7 U' Q6 i9 f6 g
  72.         ITK_set_journalling(TRUE);7 t8 V3 d, ^: w1 a; S
  73.         do_it();
    # c2 p. M) A/ y+ G1 ~1 M0 P
  74.     }
    * P; U. R) ?. k' n4 z) L- y; x
  75.     ITK_exit_module(TRUE);" `. C5 D6 J) W, N3 \, N4 X
  76.     return status;. V% q. T' w5 |( n2 c2 O4 ?
  77. }
复制代码

. R. N: Z% K2 w- Q0 h+ b6 O( q0 y& R/ |

$ @0 Z6 k( ^8 F3 ^- i2 [
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了