PLM之家PLMHome-国产软件践行者

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

; I, M2 u6 s/ @4 p. [  M8 |Teamcenter ITK二次开发源码分享: 创建一个工作流( |, C9 V+ k2 t4 G# W) @
6 I( d( g+ h0 B& ~
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    * }; l2 l6 X2 }: K3 H
  2. #include <stdlib.h>5 s/ |5 s) F! T8 }' i/ ^9 o8 _: t
  3. #include <TCcore/aom.h>
    3 o8 R% P% g1 G: `! `1 P/ M. W, ~
  4. #include <tc/emh.h>
    & u4 V; G+ d$ e) a
  5. #include <epm/epm.h>( m5 j" m& E( Q/ `2 b
  6. #include <tc/tc.h>
    0 `/ v5 W& ^- X  w% f
  7. #include <sa/tcfile.h>2 p  ?* h1 G7 n6 a
  8. #include <itk/mem.h>
    4 o4 C% k: C- S
  9. 9 t+ l& d3 w5 E! G- Q# f* g) q
  10. #define EXIT_FAILURE 1 7 n5 H7 t; n( L/ ~6 m5 K' M4 S
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    ( f; P/ }7 X4 a  A) a
  12. static void report_error( char *file, int line, char *function, int return_code)
    2 `* E( E. s0 C0 y( S; q) k$ l- S
  13. {
    , L; c+ Z; ^; I$ _
  14.     if (return_code != ITK_ok)$ a, c; {1 C  {6 w
  15.     {
    ! ], p! p$ P" Z3 t
  16.         char *error_message_string;; `% J" z5 n' n& w* o: y
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);# C+ E0 O! Y- Q  E/ X/ R
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    . Y0 W+ |; \7 j) s# P
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);5 {, q0 |% R, E" d: l/ }: ]1 m
  20.         if(error_message_string) MEM_free(error_message_string);+ J* k! ?) r2 }: u, ?" ~# s4 \4 `
  21.         printf("\nExiting program!\n");
    2 }% f$ E3 h, v  l8 {
  22.         exit (EXIT_FAILURE);    # E6 I3 a' `; t% Q" d9 [1 [
  23.     }( c( Q( f: r; o/ c, `1 F5 u
  24. }
    . L3 }7 g1 N9 g) ^: _

  25. + p& Q; r8 k+ p  M. R) l5 e+ @
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    , ?2 Q" U! c, u; c. C
  27. static void check_value( char *function, int value )
    ( p# t1 k2 w2 J  j/ S& ?
  28. {! T' V/ |" x2 ^
  29.     if (value == 0)+ M1 |; w! h: L3 T
  30.     {( o$ m! a' o( z4 i5 c! w; @. O: t
  31.         printf ("\t%s is NULL\n", function);
    / y4 @; I+ i  `0 W6 [% [
  32.         printf("\nExiting program!\n");
    ; l6 H" L" H. R+ b' a% T
  33.         exit (EXIT_FAILURE);   
    3 G4 M; o4 X$ b* A" @
  34.     }9 I1 H. I& A9 F# \' a# u1 |, b
  35. }
    / g) f) _6 f% K% k3 T, e

  36. & t1 u2 ?+ C& S: ?7 c

  37. . |! U. `: P* R& l
  38. static void do_it(void)
    & p; ^) Q  F2 U
  39. {
    % |: I  V( V: X3 y
  40.     int
    & R* D3 f! T+ H% l8 ~
  41.         attach_types[1] = {1};
    7 n; h  e  z+ i" g7 F  U: R8 M
  42.     tag_t " c2 e; u# v6 P
  43.         rev = NULLTAG, . ]" g, Q- v' o% m  z
  44.         process_template = NULLTAG, 9 H3 Q8 \; q) e, Y0 `0 r
  45.         process = NULLTAG;$ x+ t- b( ~7 T! r- e! k- J
  46. " V) K: U+ s. R  Z; _
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );2 L( m# e! e5 a1 Y& }
  48.     EXIT_IF_NULL( rev );
    $ f. w  t/ D! {/ a2 K
  49. 6 H) L- P; T$ T/ m% C0 C- }
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); . }5 L  [( x* v
  51.     EXIT_IF_NULL( process_template );
    . C/ i- \0 n* R
  52. 1 p3 ~% [! Q9 J: K3 K
  53. , n2 }8 z7 v& L7 [, g* ]
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    + n' ^' c0 L: q. Q6 \- A
  55.         attach_types, &process) );4 |2 ~& X. A9 |; K0 Y, n, w/ [

  56. ) F  b8 o/ d' H
  57.     EXIT_IF_NULL( process );$ [5 `6 E) X  g( o' r' y: f
  58. }4 s5 p* g4 I! R* i
  59. 6 O: R1 D$ s) q8 u6 _# e
  60. int ITK_user_main(int argc, char* argv[])
    5 h7 L! Q; i/ H3 t( q0 S. X
  61. {  _1 @, n9 S4 i, j( c
  62.     int  u% C1 f0 d/ @
  63.         status = 0; " \! L- H' |; D8 Y) ?
  64.    
    + K& e* H" M: v, r8 V
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    9 w4 I* C& y% i. a4 q" b9 Y# v
  66.     status = ITK_auto_login();
    3 C" s# x) }; ^- g  d
  67.    
    , ]) Z6 n! y8 F- ^0 o. x
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    6 g2 M6 B" q! [8 P: r  x
  69.     else
    6 d6 J+ y( z6 ]2 Q* d
  70.     {" k, R9 z2 K# X
  71.         printf("\nLogin successful!\n\n");$ T; J2 N3 _) r! `+ ?& w
  72.         ITK_set_journalling(TRUE);
    ! q) Y2 o# X9 Q( m3 K
  73.         do_it();
    - Z+ E2 M3 G4 l" ]# I' P8 ^  f9 t
  74.     }
    ; b1 x5 {: Z8 ^- L; Y
  75.     ITK_exit_module(TRUE);
    5 x) l* n1 Y& c/ z% C) Y
  76.     return status;* m: _, m5 e7 t6 V6 h
  77. }
复制代码
  T3 g0 ]% M, ?( r0 H$ s

0 h- D' ^( C: A" X2 z
& L4 l8 e* P; @; Z& S
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了