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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
8 h: ^6 v$ ~7 m" [: V
Teamcenter ITK二次开发源码分享: 创建一个工作流
+ u  G: \% E; c* A6 Q% Q- z
/ H- a: ~  g! P! t7 m
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    ' a1 j) c; v( a$ N
  2. #include <stdlib.h>
    # h2 A: {2 K$ Y" C) t/ {$ P1 T( A
  3. #include <TCcore/aom.h>
    2 h1 @. E0 O3 [
  4. #include <tc/emh.h>
      p$ g1 l  r9 C/ \  D
  5. #include <epm/epm.h>
    7 X' @; |! g1 Y1 O7 C8 ?
  6. #include <tc/tc.h>% ?8 E) Q5 D7 _! k, d9 h) ~( F$ P' j
  7. #include <sa/tcfile.h>
    . [8 Y7 q" p4 x8 G( T8 N; [- i- O* I" u
  8. #include <itk/mem.h>( G: X9 A0 r* ^. o' R

  9. . T7 b* a3 X. @3 I7 @5 r( _
  10. #define EXIT_FAILURE 1 7 A: J4 ]" a& {5 Y
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    9 y9 r" `1 H1 g7 c, X# H- v9 w
  12. static void report_error( char *file, int line, char *function, int return_code)
    8 z/ [* _7 U  m  i4 p" c
  13. {
      j) \. s  K: P# j
  14.     if (return_code != ITK_ok)% @- g6 [# _) C# Z, Z4 e2 E' S
  15.     {
    * E9 M( O' h  B" F5 F7 F$ ^
  16.         char *error_message_string;1 ]0 |, s, }- ]
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);( O( e1 ~; K' I, ~
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);% m* I6 ~9 i6 y" r9 i( `6 H
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    ! F9 `3 {/ Z% j: S
  20.         if(error_message_string) MEM_free(error_message_string);
    , q& P! w( W" m' P5 `" N2 l
  21.         printf("\nExiting program!\n");7 ^) N) g- P% W* _7 Y' M- z
  22.         exit (EXIT_FAILURE);    1 Q& ~2 [6 ~$ ]5 V
  23.     }$ ]! l+ }: x8 D' {
  24. }
    / T( `& g% ?3 Z; W# s& A
  25. 8 {6 F( V9 C. l6 R1 ?" ^* s
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    ) I" R% Z1 l% D9 M( o: P
  27. static void check_value( char *function, int value )
    & }7 }  |1 Q- E0 t7 ]
  28. {
    9 k5 k6 I' @6 f. H3 K# U
  29.     if (value == 0)
    , b  ^- T4 ?+ Z( p
  30.     {4 S! w$ q. p  e1 D( w% g
  31.         printf ("\t%s is NULL\n", function);' t# ~9 ~+ V* v7 I7 B5 @
  32.         printf("\nExiting program!\n");( v$ ^. R$ q/ @# _1 l7 D: y
  33.         exit (EXIT_FAILURE);    ; S  `1 Z+ L3 h& O* P; Y
  34.     }) X' Z* ^) p( d2 \) ^
  35. }$ p, w" ^& E( r! I( |
  36. $ A  a1 y  b+ Q2 w4 `  c

  37. 4 l: Q) ?  _4 W2 Z
  38. static void do_it(void)( N) j6 m$ D& H, h
  39. {4 w3 L- L+ h$ K
  40.     int
    # Y" Y0 E; u% G
  41.         attach_types[1] = {1};
    3 n  M- ]; V( K
  42.     tag_t 2 M: J, y7 B- m- B) W- t) {
  43.         rev = NULLTAG, ) p) U) s0 o. y& m! a: O# ^7 v
  44.         process_template = NULLTAG,
    ! ^$ I* Z4 l% ?+ N- a) I
  45.         process = NULLTAG;
    - n; M5 z+ |  d9 t: z: T
  46. 0 U' N4 b2 {6 e
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );8 S( r' ]9 u; M
  48.     EXIT_IF_NULL( rev );* N4 E6 b% r0 z( g% H& N

  49. ( p2 k- \0 B$ e; E- l
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); ) D5 [% a# D  \; f' b) |; ^
  51.     EXIT_IF_NULL( process_template );
    & i& h, q  R  r+ Q
  52. 0 s, ^  m! E! h4 t# M" K1 t3 G
  53. ! T) ]8 j% S% q! h8 U
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    0 M" ~$ B$ P( P3 f! ?
  55.         attach_types, &process) );
      Q* y3 e' r4 ^4 ?5 _% H. W

  56. " }% a3 g+ @: p, A  D  d
  57.     EXIT_IF_NULL( process );4 P& b+ v/ o/ I$ O* Q) C
  58. }, H0 |7 W* h+ k+ j( \: Y1 x& Q
  59. : a/ s8 `; }" p2 S$ u
  60. int ITK_user_main(int argc, char* argv[]), d9 b1 Z* I0 M0 v1 a
  61. {
    $ ^  V. C7 [% ^8 w; z
  62.     int
    : d: Q5 m2 a( ]! F* i8 f
  63.         status = 0;
    ' p+ v* M7 M# I" U% h, N) T3 |7 y
  64.    2 e0 k8 w4 F( P' w  ^/ @
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    ) v$ A% N- G8 K6 V2 b8 B! S  U; S
  66.     status = ITK_auto_login();! G: A7 ^- r' j" W
  67.    : X3 W0 g1 u0 A) I
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");& x0 c% Y5 ^/ l& V! Z
  69.     else. C: C0 z+ k6 j7 j1 W8 x
  70.     {9 C7 z& \2 V, C! G. D+ C
  71.         printf("\nLogin successful!\n\n");
    ! c1 @) [/ n* Z: s% M
  72.         ITK_set_journalling(TRUE);
    0 g0 m/ i9 O) M: P8 O6 `. n
  73.         do_it();6 U9 z  i/ v9 n/ G. g' s. W- ?0 i
  74.     }
    / G  w( K2 u2 P- P5 m. ~8 I  o
  75.     ITK_exit_module(TRUE);+ i: b! T& ~2 Y8 L+ X1 t  |3 \
  76.     return status;4 N8 I5 {! p3 A. P
  77. }
复制代码
1 ~3 T$ o, T: m2 X& f  ?
+ j1 h/ g4 c7 b) L6 ^0 U% \
) r: x2 x; O1 m3 I9 n$ \7 m
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了