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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

/ C* t9 ^  |3 C1 P7 X. cTeamcenter ITK二次开发源码分享: 创建一个工作流
; q8 _; H) [/ ]/ k5 I* z. `, ~6 G5 W4 U5 ]' ^7 Q% j7 {
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    0 X8 y! R; `, M3 l& c/ A- H
  2. #include <stdlib.h>) C% B5 e0 M5 k& u
  3. #include <TCcore/aom.h>% Y$ O7 }" D4 z5 v4 A
  4. #include <tc/emh.h>! f9 i1 a9 H1 o6 U% I
  5. #include <epm/epm.h>
    2 S* X' \/ r, j& k# E. h- F
  6. #include <tc/tc.h>. w" o8 `8 P" w' Y/ r5 B
  7. #include <sa/tcfile.h>
    $ d- a& ~% j9 Y" f+ {0 P. |, f! ?
  8. #include <itk/mem.h>
    : e! V2 ~/ o5 p3 ?
  9. ; }" w2 g& p0 n( ^& {9 f. q5 F
  10. #define EXIT_FAILURE 1 8 Z' H! R- Q9 w& I! ^
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X))). ~, W- e1 C7 O- i/ \
  12. static void report_error( char *file, int line, char *function, int return_code)
    ( k. E6 k  y2 f
  13. {( }$ ]2 C' A2 N5 M# s
  14.     if (return_code != ITK_ok)
    2 y" V+ P) Z3 i$ I
  15.     {
    1 \. ~4 E" o! a6 ^8 Z3 Y
  16.         char *error_message_string;" x2 e, W3 u+ \* J
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);0 F5 K2 T& I# i/ J3 Y
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    " f0 B0 V3 J5 k0 }1 A+ ~. k- y
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);6 w: i1 g. A; R
  20.         if(error_message_string) MEM_free(error_message_string);4 a; V0 j, b& ]7 F, ?, ^: }8 k% v  q
  21.         printf("\nExiting program!\n");, N1 ^" E5 y/ j, |1 O8 N/ ]
  22.         exit (EXIT_FAILURE);   
    : C$ h3 ^( X7 l
  23.     }
    . w+ T3 l1 ^- \7 R8 y  i1 I+ }- l: u
  24. }  O) w2 s- n2 D: t

  25. ' z4 a* U: c! u* U. `
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    $ R% s- ?9 h% ~- ?5 }
  27. static void check_value( char *function, int value )
    5 a  o, Y8 y+ v3 r4 A
  28. {1 _: t- J. o$ I8 ?
  29.     if (value == 0)
      j% W( }8 Z; M' }' O$ g
  30.     {; o& d$ M$ u9 l8 }
  31.         printf ("\t%s is NULL\n", function);5 U1 z$ m- R! L, t8 u; P
  32.         printf("\nExiting program!\n");. X) T) `- n3 ]7 H% v) j
  33.         exit (EXIT_FAILURE);   
    # y: m6 U9 E! t) b
  34.     }
    2 u9 u5 r4 c+ y3 L- o' ?
  35. }& j' W! P. b, |  g
  36. ' Z$ m( m6 D. ^' {
  37. : v" I! C' a& n; t+ m* ~. s9 l" @
  38. static void do_it(void)0 s6 @( a2 J/ \; ~9 Q+ t
  39. {
    / ~) o, s$ S3 U5 J$ C
  40.     int 8 d1 x6 k7 f* j3 S" g- }
  41.         attach_types[1] = {1};4 W- j( m0 J/ o" c; J% ~
  42.     tag_t ( N( x; J6 z( C% P$ W0 \# @
  43.         rev = NULLTAG,
    , v) o+ q' E3 O0 a0 r# A# }
  44.         process_template = NULLTAG,
    0 w. P+ p! ?' o& |1 J6 x
  45.         process = NULLTAG;- \6 s' B2 j% k
  46. 1 V' z% l1 W% v9 `
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );9 W0 W8 ~# H! @1 Q$ `4 `9 u
  48.     EXIT_IF_NULL( rev );
    6 k; J/ ~- z# z( C- p

  49. - T/ l& R+ t7 T: l7 l. I
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 7 p' K8 G- Y+ |7 \3 v  U
  51.     EXIT_IF_NULL( process_template );
    ) e) c5 o% O! h' _& C
  52. - l- p* y6 o* U9 g9 w9 n
  53. : e9 R( y1 R8 V% ~' w
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    # ]& m3 O! _# u5 @7 n
  55.         attach_types, &process) );2 `/ c9 l- a* U% L6 x4 F( h/ @
  56. ( W* v) Q% [% I0 u
  57.     EXIT_IF_NULL( process );& W( E7 ]) e/ o+ m
  58. }
    - l7 |3 W) g' Y) x+ w2 Y3 D
  59. . {0 q' t/ \. V9 g% D
  60. int ITK_user_main(int argc, char* argv[])
    8 L: z% O3 b" M. D. u& S+ B. S
  61. {
    ; U/ W/ F# o! V1 {, ^: X$ G; }
  62.     int* t$ ]% e7 e' \/ `: Y
  63.         status = 0;
    $ d6 p* f! D  ?4 ]# `  _7 \9 h
  64.    ' l, R- _% j4 x+ B: ?2 L* B
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    / S3 b: h" Z5 U3 M& M
  66.     status = ITK_auto_login();
    & h) I0 ?' k4 |0 \
  67.    
    : S/ j1 r, h5 T9 y
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");0 g3 B7 [* e1 i, Q& ?/ t5 l
  69.     else7 Q6 }4 d" G2 U
  70.     {
    , G* d1 n4 ?3 x
  71.         printf("\nLogin successful!\n\n");
    $ ?$ H3 ^5 Z# P2 M
  72.         ITK_set_journalling(TRUE);  E+ \- K! y& a- u- k3 n: F
  73.         do_it();
    - x7 C3 I4 N/ e" Z5 O) c
  74.     }. K7 L& f  b" a1 k3 @1 D! r$ [) d3 c' `
  75.     ITK_exit_module(TRUE);' Q) s; `/ ]5 J4 a. S
  76.     return status;6 I; `3 V' s; h( r) K& X
  77. }
复制代码
* L' U1 P! ?8 E; z5 y6 ?

; U0 @% H' H5 r8 i) {2 q6 ^% p$ @6 E) r! |- f% H( p; Q
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了