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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
9 h' X3 d2 c4 S0 x- x8 T  \5 L
Teamcenter ITK二次开发源码分享: 创建一个工作流
; p4 k1 {  n, @
* }- k( b) O' I+ U3 z
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    1 p! v) v& a& \6 O4 {( |  u- S
  2. #include <stdlib.h>
    ( C) {' n) T5 ~( q  p; G
  3. #include <TCcore/aom.h>% B- G2 V: G1 l* a; D/ Z& N
  4. #include <tc/emh.h>5 R! H# N; {3 b" B8 Q: A
  5. #include <epm/epm.h>
    5 T( G" ?  M1 t/ R$ N4 h2 K
  6. #include <tc/tc.h>0 L( p- r# C* K& }0 f9 M9 z- {
  7. #include <sa/tcfile.h>7 l, @! q5 }& s3 T* Z- ?
  8. #include <itk/mem.h>$ _; s: x" x# v) P( r. Q+ ~! p* {
  9. ! Z' f- ~5 s( T6 `; V
  10. #define EXIT_FAILURE 1
    : D- H# J. x( {4 T3 i* G; O6 b
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    5 }8 x4 h; p$ k6 t# ~" `+ R: _
  12. static void report_error( char *file, int line, char *function, int return_code)+ O& E4 `+ R: n: l. P
  13. {. B5 G4 ^) J" p
  14.     if (return_code != ITK_ok)* i0 G; w: S7 d/ ^
  15.     {
    - M. X4 L: W  k. r1 a- ?  k
  16.         char *error_message_string;) o1 p: m! N" J7 R4 b& L" u2 F
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    4 k/ e& V9 T7 d7 E
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);: H% N4 c' Y5 C& q5 [; o8 G! p
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    " s8 [# _7 p* i/ b! ?& ~
  20.         if(error_message_string) MEM_free(error_message_string);
    ' H" y& ~& B1 a/ @" {' z/ q
  21.         printf("\nExiting program!\n");# o2 p2 w( {& p
  22.         exit (EXIT_FAILURE);   
    3 S/ U' R% u- I& o5 ]( M
  23.     }
    # }! C2 T  `) ^% P) @6 T% I
  24. }6 a) R/ c# R9 C% J  [: y) I: m

  25. % I# k) _; m2 D5 N
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    ! K9 U% m" S+ c, S) \) H- W4 k: ~
  27. static void check_value( char *function, int value )
    $ c4 G) Y2 y. ^* J. m
  28. {0 t1 m8 a1 e6 W
  29.     if (value == 0)% ^% M9 O; r6 T
  30.     {1 q( ^) R' ]# @
  31.         printf ("\t%s is NULL\n", function);
    - K8 O$ G* P1 g& v2 b& R
  32.         printf("\nExiting program!\n");; @/ r+ B  |9 U
  33.         exit (EXIT_FAILURE);    / ]0 T8 O, F- U; K9 u
  34.     }4 h7 U+ X7 H% b4 f# @7 A$ s
  35. }
    % C* a& K. e& u, v3 I0 c9 _! c

  36. 2 x9 v: `2 Y0 i+ G0 @6 w
  37. , ]. h, ~2 ^6 f* ^3 t
  38. static void do_it(void)
    $ A& y) S5 A# [+ o
  39. {
    5 H+ a$ I; W1 W2 z- y8 b9 S
  40.     int
    0 F9 O( i! k! g
  41.         attach_types[1] = {1};; Z3 t1 P( G" E& H
  42.     tag_t ! h, I8 `1 P# j' H
  43.         rev = NULLTAG, 2 s1 @2 i, H8 ]  h( s; I) C
  44.         process_template = NULLTAG,
    # m4 K" J" A2 y5 t0 `6 t- F
  45.         process = NULLTAG;" F  D0 p/ q/ e6 |- l! L' X
  46. ' e+ ?5 g4 J6 q3 e0 T( C) s+ R
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    " A: s' f" e! |* m$ f) m; u  j6 H
  48.     EXIT_IF_NULL( rev );
    4 s, s5 T8 W3 X9 i) V: W
  49. ) d, O# s+ Y. q+ S9 \6 C( L
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    * K( H- @' X; z+ Q( v+ x4 x( _
  51.     EXIT_IF_NULL( process_template );2 @$ R0 z' g3 ^; p# z/ [4 M

  52. 6 Z7 G, M# l6 O7 x$ F
  53. ' A7 i' M' s8 ~4 e6 P
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    + u- u* |8 I2 P& Y3 x$ r
  55.         attach_types, &process) );: E$ w* {) I& |( b

  56. . ]( l# v  k- d/ ~9 g% `& t
  57.     EXIT_IF_NULL( process );$ U- `& w8 h  l8 C  R+ R
  58. }
    * d! V8 j' ^' `1 O2 K# c3 x

  59. " O7 {. H% @- t0 \& D
  60. int ITK_user_main(int argc, char* argv[])
    # P/ I( L9 k8 L+ @# q8 A
  61. {" ~" ~9 L8 L/ u4 `) B; z
  62.     int
    ' B* K" I# U1 M. \
  63.         status = 0; : m, T, i7 X2 \, m" n* ?& y( |/ L; D, a
  64.    
    * i2 o! W9 b2 [1 B) v% R
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    ' l, a9 U% A) @' I
  66.     status = ITK_auto_login();
    ! q0 J* q) {- @( R1 O
  67.    / l6 O4 R, t, H, Q1 R
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
      I* W0 z! Z9 P! b" i
  69.     else8 v' e# j2 Y# x+ U* J
  70.     {7 M# ?/ J/ K4 S: O1 e
  71.         printf("\nLogin successful!\n\n");
    8 T' R0 j) V) C+ ~
  72.         ITK_set_journalling(TRUE);
    8 L% Q/ `: Y0 J3 \+ w  e
  73.         do_it();
    1 N6 r" d5 n0 q% \( O2 j
  74.     }
    4 s- [' _% [3 j3 J. F
  75.     ITK_exit_module(TRUE);
    + B5 E. ^6 A& J
  76.     return status;3 W4 Z( `) t9 C' \8 ~8 G
  77. }
复制代码

, b# O1 t$ m8 k" g* S) t  S- V- x

4 w' S* [: C2 p  M: Z- Y' G
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了