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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

8 b! }6 o; j* X; TTeamcenter ITK二次开发源码分享: 创建一个工作流. L! x0 V- n; X7 z, T

8 ]; n8 l0 e; |: D0 y, r8 m9 z
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
      j+ }2 A1 N# H, S
  2. #include <stdlib.h>
    $ Y# j0 {* n" B/ o0 w; a
  3. #include <TCcore/aom.h>
    8 |+ D$ A) p1 b& m* @
  4. #include <tc/emh.h>
    * ^: q. M' L: Y- L4 ~
  5. #include <epm/epm.h>
    0 [6 G0 i% f9 l8 U( w: O9 u8 _' m
  6. #include <tc/tc.h>
    6 k* T. f0 Z( U' n7 Q5 z; u, O
  7. #include <sa/tcfile.h>* i: V) V) M' ^+ o1 n& L
  8. #include <itk/mem.h>
    ' i- l' B4 K" |% J5 Y

  9. : x5 l0 G3 s; Z# t6 o
  10. #define EXIT_FAILURE 1
    - ]( i/ i) l: S# T
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    / _5 W/ a/ V$ _- q  {" I1 L  N. w
  12. static void report_error( char *file, int line, char *function, int return_code)1 _) P2 }: g4 G
  13. {7 @8 F4 ~: C5 _/ G/ {, U( R
  14.     if (return_code != ITK_ok)
    5 U! b6 D. h4 t5 f
  15.     {6 E3 m( y6 p/ H, ?
  16.         char *error_message_string;
    % p" T/ w9 M4 I) ?, q
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);2 z3 k/ k/ D& |- r' `
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    * z" H' T% j, ^; J' S( o
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);6 C7 P1 m( h( t) p' S& k3 J# |0 n
  20.         if(error_message_string) MEM_free(error_message_string);
    / k* E" n& Z$ {- n1 u4 o; K  W
  21.         printf("\nExiting program!\n");
    + T% V( a6 |. `  A& @. b
  22.         exit (EXIT_FAILURE);    5 w& b9 s; @% Q) B" k  |9 T+ t
  23.     }
    $ m* o6 [+ X, l! U1 m
  24. }
    - e# s! F5 X: ?$ u' H. f0 L% _
  25. 4 G; h( n5 b  W' z4 H  ]
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    # g! M: B' f3 O1 r% {! ~
  27. static void check_value( char *function, int value )( g; l; h. ^* m' U
  28. {
    : w5 _* t) k2 R* ?1 }
  29.     if (value == 0)! x5 n4 U9 t; @5 ^5 `
  30.     {
    ) T! S- Z- s6 K: o4 Z
  31.         printf ("\t%s is NULL\n", function);: u5 `( x3 U- I
  32.         printf("\nExiting program!\n");4 F" u. z& @9 Q5 k0 {
  33.         exit (EXIT_FAILURE);    $ d/ a, ?+ l3 K  r$ c9 s. e" \
  34.     }
    ( e9 L7 |# N( S
  35. }
    ! K& L7 {: r! S
  36. / J+ F+ P# B* ]- M7 ?
  37. , {: C, p! y9 H2 B! Y+ F! ]
  38. static void do_it(void)% H$ h# b6 Z4 `0 ]
  39. {- l: a; x4 [6 _, I* n& K2 O3 n
  40.     int
    / H0 Y5 v2 |: b$ ~6 i  A- i9 C5 |
  41.         attach_types[1] = {1};- m# V/ G: _# l$ ^
  42.     tag_t 1 l0 y2 `3 X. z: G( Q
  43.         rev = NULLTAG, . t0 Y3 y  C0 B: R
  44.         process_template = NULLTAG, 6 I, U! `3 t5 {* P
  45.         process = NULLTAG;8 r% f3 Q( I7 p5 i) H, W0 x

  46. 5 F* a6 w. {+ g, }5 h. x( W
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );8 n% m8 Z9 v( _
  48.     EXIT_IF_NULL( rev );
    / e3 J/ o$ g+ W! |: _
  49. ) g! M+ ?6 ~% v, _% a" d& \
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    " D2 R; N9 N' F7 [
  51.     EXIT_IF_NULL( process_template );0 a( \0 A/ N, x- z% L
  52. ) a" i! B. S. n, X! _- t3 j
  53. " m5 H- V6 `1 c( ^# Q
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    9 w3 ]( E) I. [  T1 @  M; C! H
  55.         attach_types, &process) );) D4 ]1 q2 d0 Q3 M% }  u( p

  56. 9 C' M% Y# a# I2 D5 |
  57.     EXIT_IF_NULL( process );
    ) f- F7 x/ Z8 j8 Y% N' V
  58. }( N9 ^  B8 q) m. U2 @0 P
  59. 3 Z' ^7 d( g4 J4 c& k- ~0 B" U% E
  60. int ITK_user_main(int argc, char* argv[])) X* `4 P: ]4 x
  61. {
    + ^/ s' j9 ?2 d. Z! b
  62.     int* T* T: w( i9 u3 _  T
  63.         status = 0;
    8 F5 ~0 |! ]4 B/ f, P. e
  64.    
    ; L; w% B. n, ~8 [! q
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );% s' f- k+ I6 w/ Y+ g8 s
  66.     status = ITK_auto_login();7 B) v& p% h( l, D6 N3 I& i7 h6 [, c
  67.    9 z$ P5 {' R8 E% g
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    . g& g, _& H. S
  69.     else
    & K! p5 ^; o9 V. Y
  70.     {
    : y& a) l$ n. x8 K7 b$ M) @1 }
  71.         printf("\nLogin successful!\n\n");
    4 A# ]* E. C, @; ^3 v2 l3 V
  72.         ITK_set_journalling(TRUE);$ E  b9 ]* W; f
  73.         do_it();
    5 T2 l: o% q; E+ s. x. k
  74.     }6 w# J  x' L) w( w* v# a
  75.     ITK_exit_module(TRUE);: j6 M8 `% A+ y; n
  76.     return status;; v* ^" y2 H0 X! z9 d8 G4 r! P
  77. }
复制代码

6 @% H, ]8 G+ w4 k( V' c" B( W' u" N* T  C0 g8 `) c
+ M. f1 `5 b5 y: P" {6 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二次开发专题模块培训报名开始啦

    我知道了