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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

/ `; F# R, o! S; w$ C- N8 wTeamcenter ITK二次开发源码分享: 创建一个工作流
0 _; l( \5 @/ m/ p; `1 j0 [1 e& i/ r  x1 n; j3 L; C" X6 r
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    . x4 f0 Q/ b3 A  E3 w
  2. #include <stdlib.h>( l' C9 B' S1 l! X* f6 \
  3. #include <TCcore/aom.h>
    ! Y2 S$ P7 N; `. l( R' H
  4. #include <tc/emh.h>
    & A8 M. ]0 M; G& s& B1 }
  5. #include <epm/epm.h>( U) K. I! B; C. [; x+ r5 I) ?* K
  6. #include <tc/tc.h>7 i+ B: F( o: K) d: L/ f: W; k2 l
  7. #include <sa/tcfile.h>- Z5 C4 n0 i# Y" ]
  8. #include <itk/mem.h>% [$ w$ o2 D' s) o, D
  9. * R& v% r* H2 l3 |- ?0 b6 ^
  10. #define EXIT_FAILURE 1 - \9 C6 y) E6 S" G9 G. ^8 l5 L
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))' c7 @+ t) u. p( S8 V% F1 e' ]0 W/ p
  12. static void report_error( char *file, int line, char *function, int return_code)
    8 d3 u+ m3 G2 Q# H/ H
  13. {
    3 _' p4 D$ d9 t9 Q- F
  14.     if (return_code != ITK_ok)
    8 H# t" v5 w( |6 b
  15.     {
    # I6 \  N8 R" t" J9 R2 j
  16.         char *error_message_string;* w* V2 w; \, ^4 E$ |& a  `/ b
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    " L8 A+ s" }1 d9 U# P# w% |9 j" l6 h
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);2 r# j1 w# S% d9 n+ Y0 r
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    3 C2 o% r/ P4 m, A; I
  20.         if(error_message_string) MEM_free(error_message_string);
    2 a1 l: K3 X  S- k& y+ @  g
  21.         printf("\nExiting program!\n");
    / o# y  P# q9 K
  22.         exit (EXIT_FAILURE);   
    & t9 L: Z0 ^2 i: J% h. F
  23.     }" m& w7 t( p& T& B- ~
  24. }* f$ J% u; G5 {5 ~& a1 f

  25. 9 i8 H0 ?( h4 @7 b, M% }. w- F2 i
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    / u9 i9 s9 @; D& C/ C4 d3 ]# J
  27. static void check_value( char *function, int value )/ L- G1 I% u5 m( v5 M( F
  28. {. [3 K; r' D& i4 X
  29.     if (value == 0)
    5 A2 C* H1 h7 j$ q. o" _" \4 l
  30.     {3 o5 k" x8 G! i' t9 w
  31.         printf ("\t%s is NULL\n", function);
    $ D1 v: N' U5 w; O! |- @$ L5 b8 a
  32.         printf("\nExiting program!\n");
    9 @: T4 t/ z  K0 I# J, f6 N
  33.         exit (EXIT_FAILURE);   
    , @( a. K* p6 V6 H' [
  34.     }
    . l8 @' A7 I4 V3 }% ]
  35. }
    $ E. d0 n9 m8 v
  36. % `1 D- k- Z, u! c; j
  37. ; ?2 X( V# D1 l/ f( {! \
  38. static void do_it(void)& v& M' i6 A; A; j
  39. {
    $ B( }8 g" Z5 h' |
  40.     int
    ' W9 a0 q; F& b; t
  41.         attach_types[1] = {1};: {  w) |, h; X3 d
  42.     tag_t & ~1 L: [& Z0 p1 `
  43.         rev = NULLTAG,
    0 g. |- R* B4 Q0 K: i3 G
  44.         process_template = NULLTAG, 2 g& a/ x7 ?3 Y6 y' a2 M
  45.         process = NULLTAG;. C; [2 _, v$ G9 f8 V
  46.   x, a$ Z$ ~  O3 \
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );7 f, p: p& t$ S. s- i( V
  48.     EXIT_IF_NULL( rev );  Q; {, Y: a3 N3 Y
  49. # H& V2 O* W4 y9 v& x* |
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    " E; m6 G! S( v# Q  G" G, q
  51.     EXIT_IF_NULL( process_template );
    ; G: f/ W4 p' Q4 S

  52. % l* s5 Z9 t' `2 q3 s7 L1 l3 J- f' d7 Q/ j

  53. ' A5 p) j0 e1 x4 P" Z/ M' Q6 }
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    $ q. d/ _" _2 j$ t1 {9 Z- x% a" g
  55.         attach_types, &process) );( v9 W/ Z  }1 \; R' E1 e

  56. ; T+ `- g! A. o, A3 [& u. W/ B/ J% U
  57.     EXIT_IF_NULL( process );
    2 X1 p8 F2 b$ p
  58. }) V' z, X$ e) l

  59. 3 ?" G2 b5 q9 X, c6 Y( j9 a
  60. int ITK_user_main(int argc, char* argv[])# R4 C: F; O. T& S& J% S5 c
  61. {! X7 c( m% F. B4 U7 T' |; N! B
  62.     int: b4 W2 s) C, j+ g3 y  [
  63.         status = 0;
    $ I- {' k# O8 [; ]( S5 s
  64.    : R( d4 S  N) k7 a
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    ( ]0 k8 _6 P3 _
  66.     status = ITK_auto_login();
    2 k/ l+ X6 o+ Q+ h- }% Y. u9 X4 b, z
  67.    ! u1 L2 J0 u5 Y! Z8 P4 ^) m
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    0 U. k) o( D7 M* \0 K& v
  69.     else
    " h. d$ V7 j6 A; Q4 L& U) l8 L5 v8 ?
  70.     {
    * x  L2 m# F# N  A
  71.         printf("\nLogin successful!\n\n");5 i/ {3 p9 A0 _  }, p
  72.         ITK_set_journalling(TRUE);
    1 }" o! C% S* p5 g& l$ d2 z$ [. C
  73.         do_it();
    # m5 q6 \+ p) u9 l" p  i
  74.     }
    & i) A6 P" w" _' U3 x! i
  75.     ITK_exit_module(TRUE);6 n6 C3 v  `" t5 V( }
  76.     return status;
    $ O9 B5 Y$ w3 f, o! P. S! \% R, K/ e
  77. }
复制代码

! ~4 X, u  M: ^4 H
" y# w: G' {) T2 M% t) ~
: _/ ~: }& g! P& \- M: M4 J
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了