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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
, [' L1 W: ?7 a: e
Teamcenter ITK二次开发源码分享: 创建一个工作流
; F6 Y/ N8 K; T; N* p  s' d! D9 T! x% u: M- ^
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    & ^% y0 ?, M4 H" U. @
  2. #include <stdlib.h>
    0 e' g+ ~; b, C5 m9 z7 Y$ H
  3. #include <TCcore/aom.h>  N$ h1 A$ ?+ ]+ z3 S" a
  4. #include <tc/emh.h>0 X; b( t# s! v% M
  5. #include <epm/epm.h>
    7 j- q+ B  c, a. `5 P2 m. `& p
  6. #include <tc/tc.h>; ~9 U* k& W+ q0 D" l+ L
  7. #include <sa/tcfile.h>5 u: K" A3 F" P9 V+ c
  8. #include <itk/mem.h>
    ( R$ l9 [3 c  L; n
  9. , s! k2 N# }+ k0 t, }% [+ g- u
  10. #define EXIT_FAILURE 1 . i- T( l3 Y- |+ r* E! p6 h
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    - J" P4 K+ ^6 g5 I9 R: Z
  12. static void report_error( char *file, int line, char *function, int return_code)% J1 Z" L! @2 O( Z$ I8 v( E9 L  N2 X6 v/ u
  13. {
    " s/ h) U  I# S: c
  14.     if (return_code != ITK_ok)* W; n* d3 L9 c; U$ q
  15.     {
    & W' ~; K) q3 N; O! z3 @
  16.         char *error_message_string;
    , G0 K. {6 [& ~3 b# {* _
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);+ a* K2 @) \( b! O( k( f
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    $ `9 I8 x. D( S! u
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);; f9 a  k1 l6 b& U$ W7 u4 Z$ x
  20.         if(error_message_string) MEM_free(error_message_string);
    - {2 l) t$ z( T/ E, F5 \
  21.         printf("\nExiting program!\n");, B7 C. j* y* a8 d+ t0 I+ g# T" B
  22.         exit (EXIT_FAILURE);   
    4 o4 h2 U% ]% H6 Y6 B
  23.     }
    + ~  w; [: g7 G  ?+ d
  24. }4 Y' O5 c% i: N  P, o( s1 \
  25. . n* r( k% _& e% O
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    0 ~$ F% S7 T- t. f% m
  27. static void check_value( char *function, int value )- `2 r: o% h( a
  28. {
    & p9 w" y2 `7 q5 y7 B
  29.     if (value == 0). M8 ^8 z! B; u7 E$ U- H
  30.     {4 H) m' D" F  e- o4 M
  31.         printf ("\t%s is NULL\n", function);9 |6 F7 ]3 A" z# D2 S; G' F* o
  32.         printf("\nExiting program!\n");5 z/ t1 s, f2 I. c
  33.         exit (EXIT_FAILURE);    * T4 I# x; K  H3 r
  34.     }3 {7 a: I* L. |1 h% k8 S
  35. }4 ^( x& {- F$ N+ @6 Y) y
  36. 5 T( A+ F2 K) N+ v8 q+ v
  37. + v+ y3 \5 g4 w  K9 f8 S. f
  38. static void do_it(void)
    5 T4 i7 @1 Y* `; \. Z8 @
  39. {
    " E9 y: t+ I( n# ]1 @% w  n2 u6 l
  40.     int
    . W, X% c0 h2 G+ c6 I. C' V
  41.         attach_types[1] = {1};
    * z# T# u( }5 g  Y" }2 ^9 y: Y3 l" |
  42.     tag_t
    $ r' _! {. p8 E, |
  43.         rev = NULLTAG, 0 _9 A: j9 E$ d6 @6 s! l- N$ c
  44.         process_template = NULLTAG,
    & D# [2 h# u4 F5 a  V
  45.         process = NULLTAG;% B0 ?( j; [; a4 S+ ?5 y
  46. 2 u4 s1 u6 B% W+ \) k
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    8 z# j# Z- L) c' g4 z3 U
  48.     EXIT_IF_NULL( rev );
    ; ^+ u: y! Q7 n, B

  49. 0 U# w% c3 ~& t" ]' R9 y; J
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); $ x1 _9 V/ [% s# y6 s( @
  51.     EXIT_IF_NULL( process_template );' k; K. `( x+ g9 u( A1 q  ?: z, i
  52. 0 x. f( p3 O8 X# H) Y

  53. , X& o) F( O; m0 E+ w3 K
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    7 |+ Z) |% N7 [& M9 S4 r: R
  55.         attach_types, &process) );( ^+ R$ q; Y; C- @  _: `

  56. 4 [  G% ]+ s  A
  57.     EXIT_IF_NULL( process );5 k0 O, z9 F# ]- v9 K8 C
  58. }& ~) e" V. B# b! s+ u5 [0 r7 O
  59. * g) w0 D$ W( D2 W7 p6 v* m
  60. int ITK_user_main(int argc, char* argv[])8 s3 V* e2 w2 r
  61. {/ v  O% b! B% _+ ]8 z0 F
  62.     int
    ( a9 \" d7 O* H: y1 k  {8 j8 T
  63.         status = 0; ' t" X1 M. z( K$ N
  64.    
    % |- N: [& \* L  @' Q* K4 P
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    2 D3 q: C7 M) I
  66.     status = ITK_auto_login();
    7 E% x$ L) R3 g: B6 t2 c; ~4 c
  67.    
    2 G" g. E" _$ m( F, J9 {6 r
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    6 u6 d1 V0 O8 p: f/ h" S
  69.     else
    $ I+ q! R& t! t5 u& J
  70.     {7 N0 v2 i1 Q% D8 s: ]( m" N9 G( F3 r8 B$ t
  71.         printf("\nLogin successful!\n\n");
    6 f2 h# v* g2 @
  72.         ITK_set_journalling(TRUE);
    2 C* J) w3 q' f# A* J; p
  73.         do_it();7 X1 q1 p7 N0 z& v2 w" `; f1 P
  74.     }
    . H# ~. P+ L. a$ j3 c8 t1 n
  75.     ITK_exit_module(TRUE);
    2 K0 Z! w) O- g6 x7 H
  76.     return status;
    # \- _7 c+ U! u, D* \& L# e* u
  77. }
复制代码

  K5 N  |1 W9 E. o3 L3 T/ f9 Y' _8 \7 |  K9 ]5 x" K2 H. R
" Q7 r5 q6 l1 Y9 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二次开发专题模块培训报名开始啦

    我知道了