PLM之家PLMHome-工业软件践行者

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
+ Z: v. v8 T4 L* r$ B7 |+ P8 E
Teamcenter ITK二次开发源码分享: 创建一个工作流
) S/ q- g& F  Z3 a4 R: M3 M* d* d4 Y  s* m/ B
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    3 L# i5 L# Y" A3 B4 I. q; s- y. T! ^
  2. #include <stdlib.h>0 R2 A- t" x% I: }1 G% r
  3. #include <TCcore/aom.h>
    ) |: O4 A' e) n. B
  4. #include <tc/emh.h>- `) A0 W( B; Y
  5. #include <epm/epm.h>4 k; Z$ V% z0 ^2 f4 A  d- T
  6. #include <tc/tc.h>
    ' s7 r2 d+ j. u) b5 @1 u6 B: E
  7. #include <sa/tcfile.h>
    + |8 |* u/ s, N: J. T8 l
  8. #include <itk/mem.h>
    - b  B* g. k$ `6 f$ D2 h% Z

  9. . n7 P/ W9 I: A( i( J) y
  10. #define EXIT_FAILURE 1   L* G6 X- m/ S6 Q* P3 H0 i
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    * J! D: M& m$ \1 B' q
  12. static void report_error( char *file, int line, char *function, int return_code), D) g& g, ], {! l/ x
  13. {& B2 [+ I/ Z9 Q# X
  14.     if (return_code != ITK_ok)' ?: g, @( M( _- g# U) {
  15.     {9 i7 r' @1 V& |( z: b8 d
  16.         char *error_message_string;' p& O  t+ `) a) L- L- q
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    3 g0 I# a0 \2 i
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);) O1 o2 ?. F7 ?4 l
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    " l9 o0 _, E$ c
  20.         if(error_message_string) MEM_free(error_message_string);
    3 V8 w9 c( X% z0 _: ~
  21.         printf("\nExiting program!\n");  [  \9 n8 {/ ~( R6 N6 ^4 l
  22.         exit (EXIT_FAILURE);   
    % w) ?1 F5 j9 W2 b8 E
  23.     }5 f4 _* ]5 C+ r2 X! }5 V8 {
  24. }/ s9 o& N0 v7 b+ m' \( F

  25. - ^0 ~& u' m1 q# ]1 s% B
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    2 T5 c9 p# [/ @; J0 B& C- k9 ^0 z
  27. static void check_value( char *function, int value )
    / [5 R5 S  K# A5 H: B" ?0 _: I* j
  28. {
    / N. b9 a1 e9 i! i# m
  29.     if (value == 0)
    2 R! V) @; q; @& j" E  P, B' P4 f
  30.     {
    . ~) H/ h! o+ E: o
  31.         printf ("\t%s is NULL\n", function);
    - ^8 E$ p2 X: g, I* t
  32.         printf("\nExiting program!\n");# p8 i  d# ?% ^: y" B6 w' k
  33.         exit (EXIT_FAILURE);    + Q% f1 k9 J! t! F/ i6 U, w8 X
  34.     }
    * l3 U/ v/ S. K8 @
  35. }2 _0 T, U! G0 ?' G

  36. 1 s# V  |: T" m

  37. $ D- l( `$ G7 n
  38. static void do_it(void)
    ' z. }: T* T& ]# f" U% s4 R0 a2 C
  39. {
    3 _& g( o( L! Z( f% P
  40.     int 2 {9 ^6 a/ ?3 |% E' Y
  41.         attach_types[1] = {1};, ?, o' g2 F/ T
  42.     tag_t / J" x% s# A4 P
  43.         rev = NULLTAG, ; \. k1 s/ d) h4 a) c9 p. P
  44.         process_template = NULLTAG, , d- N7 O0 R, i9 H2 m: U" }% w
  45.         process = NULLTAG;8 |7 Z2 m- q/ C2 Y  N2 c/ c  m
  46. ; D0 n( o7 u0 S4 @+ K" t
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );  P: J+ h2 `: p8 k
  48.     EXIT_IF_NULL( rev );
    - z% F3 W1 \: j
  49. 6 I+ K0 K4 H6 S1 n( E3 U
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    ; n2 O! y/ B2 b6 X- C/ H! C
  51.     EXIT_IF_NULL( process_template );# Z# |2 ]' ^2 H* J1 s3 I& z+ \

  52. * n, s3 m) N! C& G0 T

  53. & J4 X& l' V; r6 t) I( p
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 8 G" ^" m3 t. k( [- b$ _
  55.         attach_types, &process) );
    / @. ?% ]% N6 o" {3 w

  56. 8 ?7 u1 ], c3 f1 d; O
  57.     EXIT_IF_NULL( process );* ?; f* N! \! P# o$ Z" O
  58. }
    5 F; _# a4 W  n* g( S

  59.   v2 ?* Q9 F: P0 e5 H9 m
  60. int ITK_user_main(int argc, char* argv[])
    ' m8 D5 A/ o8 X/ `
  61. {
    ( W0 g3 k' }- d. ^6 }; n" r
  62.     int: V. c3 k) O( M3 p+ V! r
  63.         status = 0; ( u9 I/ _; Q, E" ~
  64.    
    ) M( E7 S1 l& V3 z0 G
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    3 ~& |" y$ M3 W# P" ?
  66.     status = ITK_auto_login();) \# `4 `" t$ ?, G1 u3 t& B8 }
  67.    
    0 H! _0 K# j8 Z) K2 J% R' m
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");9 E/ X- f  B9 X) Y+ \/ @- `( ~
  69.     else6 Q6 C; ~* C4 J( N
  70.     {& D* J$ P! @& x' d0 u
  71.         printf("\nLogin successful!\n\n");
    8 @8 Z0 u* B: w% `
  72.         ITK_set_journalling(TRUE);
    ; `& z$ S9 m1 o) L
  73.         do_it();" x% e$ ?1 N3 J) T+ ?1 j; w+ A# _
  74.     }
    / I* ^6 Z9 g" j5 F' ?" t+ T/ d
  75.     ITK_exit_module(TRUE);7 r3 t0 @  w, j0 g- d: F$ i3 r
  76.     return status;$ l8 ?  I/ F3 w0 [" P6 \
  77. }
复制代码

7 _9 i" E9 t" Z& t3 C7 ^4 r! R& R* ~  ^
- J6 P2 I5 P; P, O+ x5 x& f) i- b3 r9 S* [6 p( V
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了