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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
0 q# A  q4 A0 z8 ]" U
Teamcenter ITK二次开发源码分享: 创建一个工作流, n) j5 g: f$ f5 M, f
5 |  |  S  q2 U% g2 Z
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    6 a; i, f, B  g6 a% I0 F, d* D
  2. #include <stdlib.h>
    ! U6 D4 W' D9 ]. @& @0 w. d# ^
  3. #include <TCcore/aom.h>
    2 Z3 h- h/ C7 U# s, m
  4. #include <tc/emh.h>
    & S9 t: z: V; ^
  5. #include <epm/epm.h># O  |0 O6 |) j8 d/ Q
  6. #include <tc/tc.h>
    ' Y3 X! P6 M2 P* k
  7. #include <sa/tcfile.h>6 R; \3 d# f' a6 _' w7 K
  8. #include <itk/mem.h>
    5 J, C' g, }1 M. Y

  9. : ~1 G( X8 {8 J# p: U
  10. #define EXIT_FAILURE 1 8 W- `( r- @. X& a7 n* D5 B
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))/ ?7 t  f# h# q# U8 `% M
  12. static void report_error( char *file, int line, char *function, int return_code)& K; z% ^, g. R1 D: F
  13. {2 L% n1 [% f) S$ L
  14.     if (return_code != ITK_ok)
    / a4 ~8 \5 g! x( ]
  15.     {" B+ ^5 r2 V% D% j' ]
  16.         char *error_message_string;9 o0 p, E! j4 A/ x+ I
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    ; U' X- T; a& p" O9 w/ e- ]! v
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    , c  W) \! Y9 h8 p
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    0 S5 a' X$ @5 g1 i/ V' o) Z* H/ U
  20.         if(error_message_string) MEM_free(error_message_string);
    6 }" W8 d( Q3 \4 |4 N+ u
  21.         printf("\nExiting program!\n");
    ( l- J, L" M9 {
  22.         exit (EXIT_FAILURE);    5 x7 `9 r8 X, E% r. f: I' F
  23.     }
    " E/ h: G7 ]8 L
  24. }% r+ U  `6 P3 s4 a# x; }1 u
  25. + \$ |2 X5 O. U+ n
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))5 f. H/ F4 N0 d0 S+ _- x
  27. static void check_value( char *function, int value )
    1 W, \. C$ t0 H1 B
  28. {
    + a6 i% P8 p4 G2 d3 b) l3 M) {
  29.     if (value == 0)+ `( r, z" C; |6 h# g) g6 X
  30.     {, i8 o& j/ \3 ?0 }
  31.         printf ("\t%s is NULL\n", function);4 |  B: R1 B: W& A. F
  32.         printf("\nExiting program!\n");7 a( N/ ]6 e/ a5 ^/ d' S) `
  33.         exit (EXIT_FAILURE);    7 T6 {% f' b( O9 e  e/ k
  34.     }
    $ s% [8 o1 C/ P8 O, F9 g2 @2 v* v
  35. }1 b, ?4 ]* |8 e( b
  36. 8 @7 x# H+ ~$ N, E0 V5 X5 O# E5 j
  37. ) z9 a. V' I5 ^) e
  38. static void do_it(void)5 L( I/ V6 i# S
  39. {( m+ L' q: I5 a0 C
  40.     int
    % l) X) F3 v) i* \
  41.         attach_types[1] = {1};9 A7 R: Q+ a) n# d
  42.     tag_t ) `. {7 e# u% ?8 C& O0 {/ d
  43.         rev = NULLTAG,
    . U6 @* T9 h  V
  44.         process_template = NULLTAG,
    ! b7 {. }( k2 q  }) y
  45.         process = NULLTAG;
    " G2 Y' O5 `* b+ J5 s  S+ u8 [

  46. # B' ~: N5 z) ^0 O5 a# \
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    . |4 D! _1 N/ T" f: R
  48.     EXIT_IF_NULL( rev );& j! p( P3 i3 R6 a2 R1 k

  49. " g, b* T; N- E: g- A! Z- g0 i
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    ) r" C7 s, q7 z# Q. |# p
  51.     EXIT_IF_NULL( process_template );& g2 w* o% g: w# d) R3 f+ e

  52. 5 o! A: g4 Q6 r5 Z* c- e* A
  53. + T7 w2 o% s9 c& ?1 R
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, ) d. z4 g  p/ L+ x
  55.         attach_types, &process) );
    " m. U4 E+ d6 k1 w4 z
  56. , a2 P1 t+ i% S- @
  57.     EXIT_IF_NULL( process );  V+ E& r. V- e' V' |1 q
  58. }
    : v/ i9 e. R5 ~, P* ?& g
  59. 5 ?& z! O; f3 E0 x4 Q( ^
  60. int ITK_user_main(int argc, char* argv[])
    ' ~0 j. Z/ {* o" C- j
  61. {
    4 g9 C& S& d: ]& `
  62.     int
    9 P7 `3 l) H$ P* W9 p( J3 Z) ?
  63.         status = 0; 8 |- j* D; N" s" m
  64.    ! n& g; a2 x/ R. }) ~0 i/ C7 c- m
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );; f& P2 s. Q8 k
  66.     status = ITK_auto_login();
    2 b& k& Q1 Q3 Q7 ?  j# k
  67.      {! r" b& b  R
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");" F) U+ r  w( K( s4 |4 ^
  69.     else' h. E, X: p7 A1 w8 j
  70.     {
    2 O' T7 k! D3 {# b- @
  71.         printf("\nLogin successful!\n\n");: Q1 `0 I, A6 R
  72.         ITK_set_journalling(TRUE);
    + C/ Q7 i( r/ @  D
  73.         do_it();
    ; s0 I( }2 v4 }  D' a9 C
  74.     }/ w5 L2 G1 z2 V1 U6 S
  75.     ITK_exit_module(TRUE);2 F: h+ a. S; I4 p
  76.     return status;
    4 Y* w$ z) N2 o$ J8 X# E- x5 X
  77. }
复制代码

& j& w2 ^( R9 I7 o- H$ F! J7 f/ [  p: _- j( Z) f- v' p% _' d; E

8 H: P: C- {' `" L
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了