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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
) e( y1 s+ N5 I% Y1 t% |& R, P* _
Teamcenter ITK二次开发源码分享: 创建一个工作流& F" C7 U# v& s' @- M
" [/ M. ]5 b, s& N0 o- ?1 f
  1. /*HEAD CREATE_A_PROCESS CCC ITK */# K8 T, U# U( C7 S& W) v
  2. #include <stdlib.h>
    # L* x! a. }5 h7 M( Z
  3. #include <TCcore/aom.h>- q2 x; X3 s7 E( G% b( e/ D4 w
  4. #include <tc/emh.h>
    / \& a& @$ O. K" F' U2 @
  5. #include <epm/epm.h>
    6 S3 e' ]( [9 Y" p. R2 h$ f4 [7 w% v5 V8 f
  6. #include <tc/tc.h>
    $ u1 e7 Z4 a5 @9 r) o9 q/ |
  7. #include <sa/tcfile.h>
    . Q" e, c9 D, E5 O! m8 z
  8. #include <itk/mem.h>8 ^2 Y% P+ K- X! l8 z" f
  9. 2 y# ~9 S' }* F5 w: j
  10. #define EXIT_FAILURE 1 / F6 }" l2 k, t- X" g2 j
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    # ]: a( X! a! E; r$ U4 Z
  12. static void report_error( char *file, int line, char *function, int return_code)+ d$ I( ^/ z8 p7 p, X+ T! v
  13. {. ]/ r/ W8 n  g; Y5 G  C3 Q: D4 O* G
  14.     if (return_code != ITK_ok)* T% g* U1 g; \5 ]9 G& }# l/ H' [  {
  15.     {
    / N' ~+ O, k: k: E- n
  16.         char *error_message_string;; R' H- }! {' S
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    $ d: x& [" ]/ [
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);* g1 s* i1 P3 ?* G
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);: M$ B# V2 _( e! C' e
  20.         if(error_message_string) MEM_free(error_message_string);! @$ |) V- z& f' @! ^
  21.         printf("\nExiting program!\n");7 z3 \  `4 f# h6 L+ K
  22.         exit (EXIT_FAILURE);   
      }, {8 h: x* t, g3 x* P
  23.     }
    1 \5 A' [3 N- e  n
  24. }: n4 U9 p& g6 g' [- b# j* f- W$ p

  25. # \+ N  g; i6 C
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))% H7 q/ x8 }  n7 V0 `
  27. static void check_value( char *function, int value )
      b' B: v! l! t% s
  28. {
    + B% g. ?, ^$ o3 |+ E
  29.     if (value == 0)5 H6 Z( d$ B. _4 m
  30.     {
    . j! v- B! |+ y4 i% w: D
  31.         printf ("\t%s is NULL\n", function);$ \. M) n" ~: m$ X) x$ W
  32.         printf("\nExiting program!\n");
    4 `0 |0 m1 A* C1 k
  33.         exit (EXIT_FAILURE);    + W/ N- X% U& ?1 A  L8 |7 S' Y2 D$ m
  34.     }
    % O- ~/ C  W  x8 J( l% P* c7 P
  35. }- K7 \1 K1 H3 H: w; s4 w
  36. 1 r3 M1 L7 F' }0 \3 x8 U6 B7 F$ m

  37. * G) n0 T. E- r) n& x: W: `. Q2 I
  38. static void do_it(void)
    + w# s' i0 a4 v  l% C( n. P
  39. {; t9 b( ~  n. b+ H
  40.     int
    9 J1 I: L, U! r8 j- g, U; x5 g
  41.         attach_types[1] = {1};3 a7 L: d. T, T
  42.     tag_t
    ( n' H5 h* h: I1 p& ~+ l
  43.         rev = NULLTAG, ! L" R; E7 r+ G5 J8 S
  44.         process_template = NULLTAG,
    + c; C5 b* l. Y. r/ j8 H  B9 `, a
  45.         process = NULLTAG;0 r3 ~7 [# `. M+ s: J

  46. & n8 l% a1 R% [8 d1 W! z, N5 P
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );. f6 c2 e+ {# N/ B1 N+ Q  B
  48.     EXIT_IF_NULL( rev );
    & |5 C5 I6 |6 u5 N

  49. & n; U6 ^% |- ~; b
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    * `# d1 j8 b9 i" i- N  l0 `- D
  51.     EXIT_IF_NULL( process_template );
    ( ^! J/ c/ S0 T, P4 v
  52. ! v% A- n; `4 k+ G- I

  53. 4 f' j8 p/ i6 ]* w% K. S0 y
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, ; m! Y1 m- @8 R: ]) J
  55.         attach_types, &process) );5 j& x* C' M' h% c, Q

  56. % c3 |+ g! z7 E/ Q8 o6 O
  57.     EXIT_IF_NULL( process );
    / \% S5 Y- v1 Q# W0 z: @
  58. }
    7 u8 o% r( v: a- n- X5 m4 \
  59. ' P. w% m: {) Y3 B
  60. int ITK_user_main(int argc, char* argv[])
    ; o+ s; C9 L4 H
  61. {' _' W9 j$ J0 F+ ^/ g. O
  62.     int; W4 U1 N1 j3 }( j1 B6 G5 ?
  63.         status = 0; 4 g- F: r* `4 r; O4 A3 g
  64.    ) h6 p+ G' j4 O- Y# Y" L
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );& u. g- e2 x3 h3 h& x' t
  66.     status = ITK_auto_login();
    ! m* f9 P! U- v
  67.    
    / K" S& O9 D6 f+ P1 k" z, ~
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    3 @9 L: c- O$ n5 A, u4 a
  69.     else
    5 d/ J. b6 _( {5 o, l$ y1 P( b
  70.     {* r+ `& l! W/ u6 `) x9 g
  71.         printf("\nLogin successful!\n\n");
    6 S5 i& ?3 ?5 K, N. ~
  72.         ITK_set_journalling(TRUE);
    / P# n6 r1 S0 v% x4 I  G
  73.         do_it();' ~. s; ^' B+ c: K- i0 I' w
  74.     }
    $ q! S. m- Z, J# E
  75.     ITK_exit_module(TRUE);
    : C# _! B  t! x% Y/ D( k- s/ b1 B* o
  76.     return status;
    # m: ]; B* D6 t5 [0 O" m8 U7 l  i' p) _
  77. }
复制代码

. l$ Q) m; J1 b* J/ c% X& R  f3 p* w" F8 L) g9 ^% H) K- L

# v3 x* i9 a7 C# {" k
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了