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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

7 d7 A& x( Y7 m  T0 R$ c$ a6 S6 j. STeamcenter ITK二次开发源码分享: 创建一个工作流
) E5 ~' I9 c' \2 _& @4 S2 E( y
  H8 A# A# V- N0 V: e# d+ Q
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    5 Q; A" ]# P. e( t" I) d
  2. #include <stdlib.h>% U  J! v/ M5 _- p0 K. X
  3. #include <TCcore/aom.h>( n8 L) i/ }) E% l
  4. #include <tc/emh.h># d, H) n& \  h8 ^1 p
  5. #include <epm/epm.h>( A* S1 N5 S( M2 _6 |+ o, n# |9 U
  6. #include <tc/tc.h>1 F& P+ d1 O$ P3 D& k; t6 B/ x+ ?/ q
  7. #include <sa/tcfile.h>; q8 K* Q  x, n9 F2 {
  8. #include <itk/mem.h>+ v& t/ f  H4 h9 M, ~
  9. 4 z% t3 l1 Z1 A% V6 l3 [5 V
  10. #define EXIT_FAILURE 1   b! B9 a  \1 G9 [2 q3 W
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    1 T. [7 u0 g" }/ e  g, g2 H, S
  12. static void report_error( char *file, int line, char *function, int return_code): n* p: f0 K3 S( h1 z( T) x, F( U
  13. {
    ) P7 i, U9 s2 f6 f8 ^
  14.     if (return_code != ITK_ok)/ |# ^4 @. E2 O% W  R5 e
  15.     {
    6 R# w5 ?2 y$ `- c9 Z9 ^5 l
  16.         char *error_message_string;2 q+ R5 F, a2 a* u7 M% K( v
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    . g' Z, o# G7 A+ K
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    0 N/ s9 ?3 P9 f8 x+ t. o- u
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);2 _* V7 d$ t! B8 d1 K( Z
  20.         if(error_message_string) MEM_free(error_message_string);5 F% ^6 c/ U. B  ?' h
  21.         printf("\nExiting program!\n");
    ( p- m, @* W) q7 D# ~, }+ Z
  22.         exit (EXIT_FAILURE);   
    + h3 C0 l0 ^8 {, i& b
  23.     }
    % O" ?* Q* |. e5 R, z2 \+ l2 G" P
  24. }9 Y7 W- z# D- S4 j" ?( f! Y- o

  25. & P: d) D0 \" J8 }
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    , U4 W  N4 k/ q  q
  27. static void check_value( char *function, int value )
    " W% W- M. \) ]8 A& p
  28. {" x4 z+ V. O) k1 p3 U7 m' M
  29.     if (value == 0)' A0 S0 Z+ f/ q
  30.     {5 v3 G" e$ ]. \  l
  31.         printf ("\t%s is NULL\n", function);: ]" L7 [- p9 O, g5 ~, a  c( ]
  32.         printf("\nExiting program!\n");* c% z) O) C! Y- c" r  T
  33.         exit (EXIT_FAILURE);   
    4 n" Y/ y+ f. J, p# t0 d: x
  34.     }
    8 {: ]5 {' j! X
  35. }
    # N5 X) w6 F/ H& {  `) N. F
  36. % v/ a5 Q' Y8 Q2 d
  37. 4 M5 C8 v) O# v
  38. static void do_it(void)1 e3 y- }3 ?- F; p7 E& ^: a
  39. {
    , d' _1 o/ A: r0 L$ i
  40.     int ( F, }9 Z6 c7 H2 n2 H- A
  41.         attach_types[1] = {1};( o+ Y  g# F) d' S
  42.     tag_t 3 ?6 m# K, }+ Z# P" g6 `7 H
  43.         rev = NULLTAG, 7 ~9 ^8 Q2 o1 D) X- n
  44.         process_template = NULLTAG,
    9 y5 ~1 ~# q' t# ^) @  U" q
  45.         process = NULLTAG;- K! O) Z: L7 r' [' o6 }, u
  46. ! @) D8 V9 {8 d9 I7 Y9 |- T
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    2 q. L- W- ~5 f
  48.     EXIT_IF_NULL( rev );5 S8 F/ a5 Z' {- n0 P
  49. 2 R( z$ f# j6 H  ]
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    ( @# M* L/ o$ n' I& I- X& J
  51.     EXIT_IF_NULL( process_template );
    * L8 m8 I6 E( g( D2 |% A. N5 O' |

  52. + ~: s+ y1 R" v+ q

  53. ! n4 ?3 E$ ]# \) L5 y
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    & s2 b8 B& k" D5 X. S
  55.         attach_types, &process) );, m. X8 h  K" y+ `) j# R7 `

  56. 2 A- p$ x- }, |( A% {7 O
  57.     EXIT_IF_NULL( process );
    3 z6 B6 _# J* a3 Y) g7 V/ P
  58. }/ l0 V& V2 I6 @2 f4 K/ q* @3 u

  59. ! i% n$ g4 `/ {0 g+ \
  60. int ITK_user_main(int argc, char* argv[])
    3 t. H5 {! x: v9 S  ]6 y
  61. {
    . _1 ]3 J- Z6 t# V1 J; z4 d& w
  62.     int) c( }  v7 G  d6 }2 V
  63.         status = 0;
    + z- E, i5 ^% ]
  64.    
    ! ~" d# m* V- K& k! u% U
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );' [" b4 s# y% X; a# l2 U
  66.     status = ITK_auto_login();
    . t! \" K1 W" _9 m
  67.    
    + z8 y: R! z& O0 v& l( s6 z6 m
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    4 o, {) Q0 J) _5 W- g  h
  69.     else
    ( h, c$ r( [( y2 _- b
  70.     {5 E6 R! l8 O5 j1 K& x- R/ y# ~
  71.         printf("\nLogin successful!\n\n");$ p, @4 {# F* e  U, n$ O& y7 I9 `
  72.         ITK_set_journalling(TRUE);
    + E* [1 u* f) }# |$ q2 e8 Z) J
  73.         do_it();
    8 Q  P$ Y5 y7 t4 Z& |! s  n
  74.     }
    1 m4 a. B" m3 M
  75.     ITK_exit_module(TRUE);6 b8 P0 e0 G& h7 h3 s
  76.     return status;
    8 ~* B" m$ h( E& [' U  V# n
  77. }
复制代码

! Q3 |$ y$ _, @5 v9 P# w$ m8 ~# R7 B. R; ?  [0 a" e
4 K* _2 j) O6 T1 i6 o0 x, P
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了