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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
0 m& g. Z( V1 g* c* ~4 c7 l8 Q
Teamcenter ITK二次开发源码分享: 创建一个工作流5 V. W% ^: e7 [  F% Z& _
' H& ^0 A( ~1 d' A3 K. [9 F3 f  u
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    # l, ]9 f) z; P9 a, X# @- {
  2. #include <stdlib.h>7 W$ x/ c7 K" V% \1 Z5 I0 z* O
  3. #include <TCcore/aom.h>
    9 k4 ]/ `/ P% Q. F
  4. #include <tc/emh.h>( [5 X+ X; G* t, Z  N
  5. #include <epm/epm.h>
    . Z. a" f* Z% I. z+ l0 Y6 o8 S, n
  6. #include <tc/tc.h>6 \5 l  m" g& W& t
  7. #include <sa/tcfile.h>
    * O- W' X7 I5 p2 T: `
  8. #include <itk/mem.h>  }% q# V: F4 m6 t

  9. ; B; ^% Y$ S9 s! q
  10. #define EXIT_FAILURE 1
    3 S6 j5 q& N  a: C
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))3 P' s4 P; p, N1 @+ X# N  a
  12. static void report_error( char *file, int line, char *function, int return_code)! q; L. B( \0 R
  13. {
    % {; B( n4 I5 j
  14.     if (return_code != ITK_ok)
    2 H/ |$ v4 t1 h
  15.     {2 C' s' S$ ~$ u# j3 k: f) t
  16.         char *error_message_string;0 d" H# c' Z& q7 E: d9 Q
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    - d. u/ S4 _7 s/ m7 t7 p9 Z
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    " p- M( ^( v* m, _% U2 m
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);7 g- E$ L7 l* x9 c
  20.         if(error_message_string) MEM_free(error_message_string);& m: Z# z/ p5 v: g' {7 \+ ~: s: i% S0 s
  21.         printf("\nExiting program!\n");
    9 w$ D1 O4 M# T& \/ }1 s% R
  22.         exit (EXIT_FAILURE);   
    " s( G: q7 P( c0 c' }% F
  23.     }
    : z/ @1 b7 c& t
  24. }  Q3 F/ N8 ?3 Y/ |" C) R: J

  25. / B2 \" m' L! Z, @$ [
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))/ G: w! N; Q; H# b3 }7 {
  27. static void check_value( char *function, int value )) g' ?: e. k/ N1 S
  28. {
    $ Y. b; r9 p% v2 a& Y, t; ?
  29.     if (value == 0)6 t3 i! \( u. T# _  ]( a; v; T5 s0 [. J
  30.     {
    : K! G% L  J4 y9 o8 V: ]* r
  31.         printf ("\t%s is NULL\n", function);
    * Z# e. y! z7 @
  32.         printf("\nExiting program!\n");
    2 |8 P3 J& q& ]7 g
  33.         exit (EXIT_FAILURE);   
    & f- U) Q8 \4 ^7 p. [6 V* X
  34.     }) m: c& k4 L. W6 y9 m
  35. }
    . f3 a1 p1 W3 b- a

  36. 3 c4 Z2 b0 _. d5 B1 Y
  37. ; V! U2 E: k- \& N* B2 ?
  38. static void do_it(void)
    - h7 ?% Z/ {( u$ U$ X0 P# r! i- Z2 N3 `
  39. {; u% m, N  B' e$ q$ ^" i' o) h- n
  40.     int
    % h& D0 S, U8 w7 L5 l- a
  41.         attach_types[1] = {1};
    + g8 @! g5 _+ T! x. D& L
  42.     tag_t ! [! w1 M5 V3 E# A4 u# }, a- n
  43.         rev = NULLTAG,
    0 P5 N, r6 C  q) f) L7 ^
  44.         process_template = NULLTAG,
    5 V; O/ U# I/ d3 C3 Z- {
  45.         process = NULLTAG;
    ' ~- e9 I+ Z& q5 ?: @; [7 r- Q/ p
  46. 1 I" ^4 w. a8 {* C$ J/ A" i* |) ^
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );+ u4 f: x3 g' a, t# p
  48.     EXIT_IF_NULL( rev );+ _/ {/ C- u8 Z6 ~/ M. {
  49. $ W( o6 |7 _/ q( D$ P% t, I: N6 }
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    , R4 k) S) W' d  t3 g
  51.     EXIT_IF_NULL( process_template );( s; d# p* J+ h( }' o

  52. : p4 U1 j9 H# T8 A- s
  53. 0 [  c& c3 u0 x
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 9 Q; R" \( p4 w
  55.         attach_types, &process) );
    ) d6 j6 k  v! d9 J9 v4 U- g
  56. - U2 K2 @) }; E: `) y
  57.     EXIT_IF_NULL( process );
    + x: g/ C' f* x* }. u$ h) u
  58. }/ F  _: _; V- r' p* v1 y
  59. " L, R& \; T/ `! U+ i' H! I
  60. int ITK_user_main(int argc, char* argv[])% P, G# ~0 }& F4 ~0 ^
  61. {! i. H) C9 G; i& E, g% F( M, q
  62.     int
    - a" q' w$ G6 t% H  o; a9 F; Y, C
  63.         status = 0;
    5 X& i9 I5 N5 n- b1 n6 M) C
  64.    $ E6 Z3 b# U. H, {8 X) }: V
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );  o2 t) U2 E9 |9 G% y; K; {# b
  66.     status = ITK_auto_login();
    : W! e+ P) `: H4 E
  67.    
    8 q8 t( D  r5 Q  H& L0 F
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");% G& z- M; a$ O9 s; ]9 H
  69.     else
    . T- c5 l7 U, }3 {. K( X
  70.     {6 h4 V4 Y1 w1 n7 G6 g( T
  71.         printf("\nLogin successful!\n\n");
    : x& u# J% [; E' v7 t' R4 d) s7 Q
  72.         ITK_set_journalling(TRUE);$ {( n$ e/ {+ `7 E* s- ~
  73.         do_it();
    ) d9 x. C3 y' E9 G( a- w
  74.     }# p; w! Q, |; _' |% Y
  75.     ITK_exit_module(TRUE);
    " w" i5 {: v3 {: W" ?8 A$ z6 e/ g
  76.     return status;" r$ r- U$ V: @+ W3 \5 u: a0 t
  77. }
复制代码
$ t0 Q' r3 ?' `# R' x1 q7 F8 Q
' O, y; F0 w- B
6 a2 |; E( t2 {7 q& ]
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了