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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

# W6 b6 Z5 H( o- E& }. N" R5 a" {Teamcenter ITK二次开发源码分享: 创建一个工作流
+ ]7 C+ Z  N6 I
8 V* T* ?9 |+ G
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    2 W' r4 ?" B, w" ^% B; l/ F/ P$ r
  2. #include <stdlib.h># M/ ]$ q5 ~3 D: D: [( m
  3. #include <TCcore/aom.h>
    / e5 |  P) X' S  k7 f
  4. #include <tc/emh.h>
    # f0 E1 J8 H+ n: [
  5. #include <epm/epm.h>
    ; ^# B5 {) [& n! _. G! W' r2 N% {! F! N
  6. #include <tc/tc.h>
    # B, b2 K+ X, Z, ]$ I1 W  d
  7. #include <sa/tcfile.h>  ]' p; r6 P% Z
  8. #include <itk/mem.h>3 M5 G0 L( i% z3 W' Z; L& A

  9. ' z7 h1 o2 \; U# u. ?- T
  10. #define EXIT_FAILURE 1 # w- @: _# V, K0 w
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))& U- w* T+ l5 Q! `: Q4 j# k. q7 l
  12. static void report_error( char *file, int line, char *function, int return_code)9 H) X. G# \& D4 C* ]
  13. {
    ! K2 |: L# E: Y7 C2 v2 h
  14.     if (return_code != ITK_ok)& q# C) \( X& `! ~, v+ g! ]1 z; ?
  15.     {
    , y/ X" \/ W9 U
  16.         char *error_message_string;( u/ D  N& R/ r% ~% R3 @
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);' W7 n0 }& x3 z0 \& t" x) [
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);1 S2 A, `5 A% l# @$ J
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    3 j: X, ?. K' P6 |6 N0 Y% B) s  [
  20.         if(error_message_string) MEM_free(error_message_string);% o4 ]: O6 T0 [+ `. [* X+ |
  21.         printf("\nExiting program!\n");+ c: u8 k" k* x+ r
  22.         exit (EXIT_FAILURE);   
    2 Q$ [; I+ f  d% |" M" P. Q- T
  23.     }/ {6 @9 h3 G; {0 I4 t" d# Y0 k& U) v3 I
  24. }
    ! O7 i# T( b1 w
  25. . l5 H) m. [9 h( t2 O. y. W
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    / R5 C0 A/ c7 V8 ^0 R
  27. static void check_value( char *function, int value )
    2 R6 w5 c3 K6 g
  28. {
    1 g. u9 h, T6 q1 K2 q
  29.     if (value == 0)
    6 L9 ?( f0 b- {% m
  30.     {8 Y0 i! y( E" Y# V$ u
  31.         printf ("\t%s is NULL\n", function);
    6 K" s- I) q! T4 Q) Z" x- p
  32.         printf("\nExiting program!\n");1 G2 ?+ q' Q, h4 X1 W
  33.         exit (EXIT_FAILURE);   
    # l' m1 ^( Q- i! j- t
  34.     }8 N. g7 G8 e+ |1 n
  35. }
    , X7 H- M4 |! d. l- u, f6 r
  36. 5 E+ t% K: ^$ u% N1 R
  37. + C& Z# j; l1 F; `6 E6 G5 l7 Q
  38. static void do_it(void)$ c2 ]( \, G- A# U2 D( n" |2 J6 c8 a
  39. {
    7 Z: i! z2 @* e/ f4 x$ y5 [1 x: p7 y
  40.     int $ q  S- d& J# R; F& N& @: t
  41.         attach_types[1] = {1};3 z" d7 n/ I1 `) C0 r! q
  42.     tag_t 5 ~0 `3 t7 |  b) W
  43.         rev = NULLTAG,   b2 _8 q% d4 @8 d
  44.         process_template = NULLTAG,
    * O) c! p/ i7 u+ o5 Z- O
  45.         process = NULLTAG;" ]  Y, U( q  D( k

  46. $ P1 p. \5 C! g- F8 I8 w% G: _/ W7 C8 ]" V
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );1 N) f7 f3 z0 a; {! V4 \
  48.     EXIT_IF_NULL( rev );/ z+ d4 Q* W/ w; d# F# s- _, I# P

  49. 4 X7 S8 b$ `7 `. n9 [8 `
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 7 n' m5 d7 P1 Z) t$ J7 X+ r  A( D; R
  51.     EXIT_IF_NULL( process_template );5 i9 q" R4 Z( Z$ @  K6 `
  52. $ X, O# {6 ?  ~7 W9 o4 q

  53. 5 J; v* F' J& c3 Z1 |3 G/ S
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, & f; R& r: [3 R* j: S
  55.         attach_types, &process) );
    % C: p4 l( ?6 H) Q( e9 q- {

  56. 2 ]1 u$ k4 X; g6 T
  57.     EXIT_IF_NULL( process );
    - s4 H0 d9 S7 ?' p, K0 B8 v
  58. }6 R+ p1 K0 R: t. v: U

  59.   |. r1 K0 L7 p. O0 K& ]- G/ n
  60. int ITK_user_main(int argc, char* argv[])
    % Q' v6 d. U( t4 I+ \7 P) i7 i' Z3 j
  61. {
    2 u& h5 I2 C( G4 e5 T+ V
  62.     int
    0 l3 Q3 E9 f3 K! @. D, Y6 s
  63.         status = 0;
    % J9 S0 N; [+ W) n. U# p% K
  64.    
    7 v3 {) M% v8 Y0 x
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    : I5 d1 V  ?) U& z3 t3 T
  66.     status = ITK_auto_login();& f# z$ o( |# p( h2 u& @8 ^
  67.    
    7 H  }" V& o, _( z" U
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");. T1 Z; |& d$ q
  69.     else; X2 m: }/ k6 P' I1 r+ R4 l
  70.     {5 O/ {9 p, q& a3 b
  71.         printf("\nLogin successful!\n\n");
    3 ?9 x/ u1 i1 Z. _1 [- g
  72.         ITK_set_journalling(TRUE);
    % O' Z0 `: U5 B" F
  73.         do_it();
    ! f% K  z6 I1 d2 K/ J4 g
  74.     }
    6 J" a5 x" _# j' x! a2 }. e
  75.     ITK_exit_module(TRUE);; S3 M( i/ n  x+ X+ Z6 J, C% Z: }1 `
  76.     return status;" W/ u6 _/ J' \+ v& P3 h8 N# p
  77. }
复制代码

/ R! a6 B+ D7 r, h; L" ?6 h$ U; v, }0 n, h1 r. Z" u
! A$ E$ `5 A0 x& I! i. A$ ^
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了