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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
2 L$ s) D& ~6 i7 ?
Teamcenter ITK二次开发源码分享: 创建一个工作流, d: u+ g! t- Q4 D, ~- H
, f* u% `0 p$ e, p
  1. /*HEAD CREATE_A_PROCESS CCC ITK */+ _  s9 b1 @/ |, \( q
  2. #include <stdlib.h>( @/ }# t& s) t: F4 L. A
  3. #include <TCcore/aom.h>: A& x3 N  t; P+ D5 ?3 k
  4. #include <tc/emh.h>. U0 M3 c% {' q& F5 g! z
  5. #include <epm/epm.h>
      p1 x! C+ R6 v  s& L
  6. #include <tc/tc.h>
    $ W3 J( d0 |! T9 Q5 y) s; D# K
  7. #include <sa/tcfile.h>
    , r* N4 T, D0 U9 N
  8. #include <itk/mem.h>
    / j  f% g- n* s. W! t$ }; a# v7 c
  9. " d* V( o* G7 P& L
  10. #define EXIT_FAILURE 1
    * _+ h% l* `3 H1 k: Q0 h
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X))). C+ `/ w( h4 x3 ^  \
  12. static void report_error( char *file, int line, char *function, int return_code)
    / ~1 C& b2 N. t, Q1 C0 G# O
  13. {
    5 b' e" Z! f% |5 U
  14.     if (return_code != ITK_ok)  D& M7 c9 z/ e0 Y% h
  15.     {
    $ X, e! V4 u$ G/ B! ^! I, K1 ^/ H
  16.         char *error_message_string;
    - i6 t1 l8 X6 }$ R( X1 f  f& ]& s
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);" l( W* r) E0 V8 m# I
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);: R7 N; C7 C1 h% k$ B+ N& H2 C# c' _1 u! e
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    6 {5 I: w% Z" M
  20.         if(error_message_string) MEM_free(error_message_string);
    7 g% a; j' o& S" W: e! X  K6 d- I
  21.         printf("\nExiting program!\n");9 q) C  `8 v$ s1 P
  22.         exit (EXIT_FAILURE);    & A/ N8 n' }# Y4 F2 I- o
  23.     }1 T& u! i! d$ |$ K8 W
  24. }
    5 k9 |) o( R- O9 g* n* S
  25. ; j( T2 E5 {- b5 ]' G3 k
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    3 ~* s! `6 V6 j5 m
  27. static void check_value( char *function, int value ). l( `2 y7 O2 I+ G) E5 y( O, u
  28. {
    * F! o; x6 S! L1 Z
  29.     if (value == 0)! ^3 w- B, j, ^
  30.     {  D0 J6 h  j; ~
  31.         printf ("\t%s is NULL\n", function);* P9 Y& l: h) T+ g
  32.         printf("\nExiting program!\n");" Z0 O! c8 K( @  s, j0 L
  33.         exit (EXIT_FAILURE);   
    9 g( m6 d. u; u4 b# f
  34.     }* }  J+ ^5 E  ^" U8 d0 D
  35. }
    ) K4 X- {0 h6 N" [, t4 h
  36. , {7 l( ^9 P: z- Y* D! N

  37. $ J( l1 y7 ]/ e- f" A! K
  38. static void do_it(void)
    . l3 C( k  U- F) K$ P8 @
  39. {; j5 C, f/ s5 |) _
  40.     int
    # N/ s! l2 I; J
  41.         attach_types[1] = {1};( i( |$ p/ U$ b: [
  42.     tag_t
    3 M, r: x( E5 N9 x
  43.         rev = NULLTAG,
    ; V2 d3 ]9 t  Z6 _6 d
  44.         process_template = NULLTAG, 6 l8 i( X/ \; u. A  B3 t2 h
  45.         process = NULLTAG;0 }6 |/ j  x: Y  p! ^) P
  46. - I' s6 o+ d& ]! k! w8 [7 S+ @
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    - \7 m) K" h. L
  48.     EXIT_IF_NULL( rev );
    ; p  M1 O4 N3 ]* m  n" h7 P( G
  49. 8 K( }! ?$ q, \0 N$ t: _
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    9 x$ P. S! U& H) V4 B
  51.     EXIT_IF_NULL( process_template );
    6 c& {$ i, M. u' I/ C

  52. 5 M& F; y" |2 R" t

  53. 7 P, A) s0 b# v4 O0 Y; e
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    , D( v, |$ N7 T
  55.         attach_types, &process) );* n* W( u6 t  h4 ]# W1 K
  56. 1 i+ H8 g6 n7 U9 K# T9 x
  57.     EXIT_IF_NULL( process );
      C! F! J9 _* Z  i* L8 W
  58. }
    # A8 t8 i% w8 l

  59. 1 s1 Q2 H- y4 G8 _  Y
  60. int ITK_user_main(int argc, char* argv[])# r2 ^9 A# N8 F4 i' _, ]2 ]
  61. {
    5 x8 @2 }: A, q2 Y+ {8 n3 r! j
  62.     int
    / m0 R2 H( S3 I5 z" D5 g. t
  63.         status = 0;
      C/ ~6 E, w2 h& x/ w8 f/ B
  64.    
    9 V( K$ M/ ?& v8 J' H
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    1 B6 @6 v! O0 r! p' H
  66.     status = ITK_auto_login();
    8 F% _' T/ t5 M7 |
  67.    6 ~# K5 g, ^9 g$ S! b3 x. I
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");- S1 \- L, f, u) t5 R
  69.     else8 D" |9 j% v4 W/ S$ c+ J
  70.     {7 r4 t+ G2 q7 t2 t, m7 _
  71.         printf("\nLogin successful!\n\n");2 A/ o+ c  }* j( J
  72.         ITK_set_journalling(TRUE);
    9 M' b/ R: @' `5 s
  73.         do_it();
    / R3 ~2 @6 B! J' \
  74.     }
    ! U" ]$ u: Y" q  X5 w8 h
  75.     ITK_exit_module(TRUE);) C7 |9 d% V) g$ }1 `( z5 H
  76.     return status;
    & E; z" ~; Y% w; r: ^8 D$ [9 f
  77. }
复制代码
- R3 i, [) F; `; h2 S  Q9 n2 S$ W% Z

- a; O! {" ]* X) C" K: I: p( k7 x2 j! X" ^) u% u1 X9 o
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了