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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

: T7 n$ ^7 B3 W% jTeamcenter ITK二次开发源码分享: 创建一个工作流( q' s/ S+ C9 C

4 F& |+ ~5 Y7 P2 Q3 V* L
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    0 ^& ?6 z( Z& S8 C& _
  2. #include <stdlib.h>
    3 U3 b2 @6 n! |- j
  3. #include <TCcore/aom.h>
    . M% i2 M4 I& e9 ?% G2 n5 o
  4. #include <tc/emh.h>! k* W, ?8 {8 z
  5. #include <epm/epm.h>3 g3 z5 a2 N6 U3 q$ F! j, e
  6. #include <tc/tc.h>
    1 G, h6 z0 J, e* r6 i. U* o% [
  7. #include <sa/tcfile.h>
    / W9 ^: R3 L+ c/ n( G+ _/ z' y
  8. #include <itk/mem.h>6 q+ ^. ^' S# Y7 T, p
  9. . W% R% x! k) q& S3 b( U
  10. #define EXIT_FAILURE 1 $ y" M' Z; N1 M8 D; l" G' z( B
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))( a1 K4 v" y& w6 ?) I! g# x$ X% \
  12. static void report_error( char *file, int line, char *function, int return_code)# L3 N- ?* o: q2 M2 v
  13. {( ~; v4 R9 H  t* f4 S8 E( R0 O' u
  14.     if (return_code != ITK_ok)
    , o- W5 d- b, C
  15.     {7 \# c; G+ m5 {; ~" S
  16.         char *error_message_string;
    7 n  ^, i6 K1 g, _
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    ! O2 v9 M! i% y7 y2 ?% I
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    - i% L: k4 F7 e
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    - b  a3 d$ ~( m- \. T) Z
  20.         if(error_message_string) MEM_free(error_message_string);2 v5 ?5 Y9 F" d/ x" ^
  21.         printf("\nExiting program!\n");& E' d/ o! N' i9 ]: \# q( g
  22.         exit (EXIT_FAILURE);    4 ?# _1 q% X/ H( x
  23.     }5 B% z1 w( F  [( K+ s8 _" E
  24. }
    1 _7 X$ ^7 t# A6 m7 t6 n- C
  25. 2 s$ {' _& T5 r9 g
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))9 F3 K' c# D  c4 R8 Z
  27. static void check_value( char *function, int value )* f: M0 |4 h2 U# j) A
  28. {
    ' B/ M+ W* \3 |+ y4 a
  29.     if (value == 0)
    8 U$ Z& v) M; B
  30.     {9 {+ T& B1 H* m  P7 z
  31.         printf ("\t%s is NULL\n", function);
    1 |$ L& _; X9 S
  32.         printf("\nExiting program!\n");
    ( R+ g$ ^& `  b5 `' \) T
  33.         exit (EXIT_FAILURE);   
    # d/ O  L2 y% v9 o- B8 v& J  |
  34.     }1 S2 q4 Z9 ~$ A
  35. }$ a" s" j9 x; l7 s

  36. + ]' s1 b# @9 }( l

  37. 3 D$ W% I4 S) B4 }3 J- S" ^% m9 I
  38. static void do_it(void)
    9 @) }" E$ i) N% O
  39. {6 c+ Y; \* F7 J# O0 i) S: t
  40.     int , h: N' G7 G0 v$ j/ |' I; N
  41.         attach_types[1] = {1};
    6 q- g( p& ?9 b0 _# c7 h; C
  42.     tag_t 9 ~  i9 `( r/ Q/ F; F- w. \8 X
  43.         rev = NULLTAG, 3 p7 i/ G8 ~# K; ]* s- R, s
  44.         process_template = NULLTAG,
    4 M0 q  M; e: {8 E& ^* Z
  45.         process = NULLTAG;
    : i7 _8 x) n4 @4 R2 i" N. u- t* i
  46. 9 \7 K+ z1 L: ^5 b
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );7 b& N. U7 `8 i9 U$ F
  48.     EXIT_IF_NULL( rev );( Q4 B, s! A! x% @3 l# g
  49. , o0 B0 k2 y# @8 l: l
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    0 V9 _6 b/ F% W( n/ r
  51.     EXIT_IF_NULL( process_template );
      Y( s9 C( C# }' b( Y
  52. 0 w$ r  O+ n& y# E+ `

  53. $ v% {% P5 H; u4 l7 ?% g$ \
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, " |4 O3 |# O% @& r. J5 t3 A9 Y
  55.         attach_types, &process) );
    : s& t- K, f0 ~  H0 @& |+ V

  56. 7 w. h6 ?* k5 J5 Q( u+ e( R& C& ]
  57.     EXIT_IF_NULL( process );
    $ v7 |) t. Q) v  |+ ^" ?( R
  58. }
    3 @" g& [( b* Y, l" O. ]

  59. 2 i& A9 P- ~. v/ f4 c
  60. int ITK_user_main(int argc, char* argv[])/ e' W1 ]# S& A- j0 M: v# T' x, a
  61. {1 f/ i% ~* t7 Q& z$ J$ O2 U$ A( g
  62.     int
    ! s' G8 U4 D) @$ @( w1 h
  63.         status = 0;
    , Q$ N/ ~- b# m
  64.    
    + z/ Y  d& H4 r1 Y  H; a* |& P( p& \
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    9 R. d2 c- q3 {8 U1 H, ~* {2 P
  66.     status = ITK_auto_login();
    ; I1 V! J& h+ _9 V4 H
  67.    ) P/ K5 C% }  u
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    ; E' ]. J2 x% z; {* B  o2 X0 z
  69.     else
    $ L: @$ l, W* u; F+ r! U
  70.     {
    % M# i1 v  R2 ?) z0 d" V8 ^
  71.         printf("\nLogin successful!\n\n");: ?( ^  {- S4 u9 j. u( `# [$ Z
  72.         ITK_set_journalling(TRUE);
    ; g' Q+ a* n3 `+ a% m
  73.         do_it();: v" _% x; b* _; e! G
  74.     }
    6 L0 j8 B. N! u  p
  75.     ITK_exit_module(TRUE);3 F" D/ C' `8 c6 a
  76.     return status;8 B+ C; }3 H1 N  R. C6 P" E  z
  77. }
复制代码

8 u& e! Q/ L0 l  B
0 J  [7 o1 p& ^8 \0 E+ H' F! E: d2 w( _  M! D. `
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了