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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
. N. b2 O* i+ U& A- U5 Y  ^8 C8 a
Teamcenter ITK二次开发源码分享: 创建一个工作流
4 c& g; ~5 {/ A; R! _  r( A/ x$ M" i6 m9 x& S+ |3 N. {
  1. /*HEAD CREATE_A_PROCESS CCC ITK */9 h  z' T% n4 p7 z( X, \* o5 P- ?
  2. #include <stdlib.h>
    9 W$ [! I+ G  V# }* S& i  E
  3. #include <TCcore/aom.h>
    1 Q- `- n- b' c' Z9 R7 h2 M+ \
  4. #include <tc/emh.h>/ v% a5 M* ~' i  |8 j8 N
  5. #include <epm/epm.h>
    , W6 @7 t- b8 z4 h* g
  6. #include <tc/tc.h>
    - b  O) z0 a" V, l" ?
  7. #include <sa/tcfile.h>
    5 W+ p7 ?  \4 c/ `2 R" ~9 q
  8. #include <itk/mem.h>: f2 J$ O1 s2 g4 b2 g2 A

  9. ( |, W% w- u2 L4 v4 a% @+ i, p
  10. #define EXIT_FAILURE 1
    ) p2 S/ Q. C6 \7 Q* |. s; n* ~
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))  k+ r. z2 m8 r/ x  [; l
  12. static void report_error( char *file, int line, char *function, int return_code)
    ( U! Z4 |* e& d. p
  13. {$ O9 i3 @# C2 Z8 a5 v
  14.     if (return_code != ITK_ok)9 b: r# `2 c8 ~: z2 k
  15.     {
    ! p4 _0 y& d' {- t7 H( b) U& A1 g' B
  16.         char *error_message_string;  A9 |8 S+ _8 q& z* F9 ^
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    - ]( @- r3 d* h) {' X
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    , C7 @7 t4 l* @/ U- A+ k+ V9 k& k
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    4 p/ B9 t* u: A+ h3 s! N2 n; g0 ]7 V
  20.         if(error_message_string) MEM_free(error_message_string);
    % ?: ?/ Y: l* \: ?& }
  21.         printf("\nExiting program!\n");
    . ^- k* Y- s' {: ^" f2 x  ^3 J
  22.         exit (EXIT_FAILURE);    ! V0 K% q7 H9 ]1 R1 D- f; a' [4 v! c
  23.     }
    / U' W9 v; j1 w1 Q) N
  24. }
    . Q/ R3 \$ m) H- O) f

  25. 6 ?: Z9 J8 I' }7 H8 Y( N
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X))); i) U5 l4 u" o3 @( z
  27. static void check_value( char *function, int value )/ ]1 e6 k& y3 _- D
  28. {# X, C$ N, K0 S
  29.     if (value == 0)
    $ {" y  G7 `2 t7 f" P- u
  30.     {0 ]. I7 ~$ j! w: }3 C
  31.         printf ("\t%s is NULL\n", function);
    ( I3 n, ]4 n' q# x8 |, ?
  32.         printf("\nExiting program!\n");# T8 g, }' F1 x1 Y, j3 S4 y0 q
  33.         exit (EXIT_FAILURE);    " v2 a5 Z7 }' O
  34.     }5 B8 U- d8 s& B4 n
  35. }. e- g( d2 q" C

  36. 7 i7 ?* A( `3 c/ I' ^/ _, j
  37. 2 T- o+ n' v6 C( D
  38. static void do_it(void); o! ~+ u2 j; c& Z. {* l# t0 n
  39. {, T4 s  C3 }2 u' n& B
  40.     int
    2 D4 l* B- H0 }1 l. i6 o
  41.         attach_types[1] = {1};
    7 o& I+ m& j# L; W7 V2 X5 ]5 D+ j/ d
  42.     tag_t
    : |) \6 \: J+ |# ?
  43.         rev = NULLTAG, 1 f. L5 z* E) R# R
  44.         process_template = NULLTAG,
    - k9 R& S: L6 K
  45.         process = NULLTAG;! {5 ]" s* R% `1 F; M0 P8 ]

  46. " Q% I: p" [1 a
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );+ g0 S$ ~/ c$ f- C2 a$ n
  48.     EXIT_IF_NULL( rev );
    7 A( y( ?6 n0 d: C6 e
  49. , _( s3 h! i6 r% x! i  _0 D4 X
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    1 d0 O$ `4 \- [  u8 T* Y
  51.     EXIT_IF_NULL( process_template );
    ; a. m6 ^2 A7 t# \# b, W1 R4 ~

  52. 8 R, l6 @* Z1 }

  53. : b. z' T2 \$ N. v) G
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 1 A: H$ [* }# r& C( f6 @8 f
  55.         attach_types, &process) );0 w; @1 x. y- J% J3 S: l& Y7 r
  56. 2 p* Y" o) V- W, i$ X' F) A1 |' ?
  57.     EXIT_IF_NULL( process );
    4 i1 ?5 C) }4 o, y' Z
  58. }
    / y% A0 ~- n% C7 R

  59. ' \' ]9 e: W* E+ f' v
  60. int ITK_user_main(int argc, char* argv[])* I3 {* d2 C- n2 }
  61. {2 G9 l" Q) F# X/ v
  62.     int
    3 x2 L& G6 I) I9 c1 x: |5 n2 k% `
  63.         status = 0;
    / w" P" i8 r: e! O: G2 B$ s% r
  64.    8 ?* d, a" y0 V) Q7 J2 s  \
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );3 a8 S) Q8 O9 m8 ]2 m3 O5 G
  66.     status = ITK_auto_login();% i+ \0 I) d" q, o
  67.    ; m* z2 t7 o! a  @5 |; H1 m9 u& h
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");9 p0 x5 A# k: M! k! p
  69.     else
    3 r: s% S+ Y2 E$ r( Y
  70.     {* B" v1 V! N( G- {1 i
  71.         printf("\nLogin successful!\n\n");6 a( F" s( _& O' ?
  72.         ITK_set_journalling(TRUE);+ x( j# h8 ?( V1 A/ f) e0 p  c2 f+ }
  73.         do_it();& }' H9 {. Q3 @; N3 P9 g
  74.     }
    8 A" U0 l9 L& x# Q5 P  y
  75.     ITK_exit_module(TRUE);
    $ X6 X6 m. h0 t) ]; B& v
  76.     return status;1 R' H' r$ o, v# Q  L; k
  77. }
复制代码
1 [7 b8 x3 B. C. l8 g  P  F* |
! W6 T) z1 t3 E. _( a
' p: `3 k5 `6 d
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了