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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
% W! r+ p( V0 i5 z$ W) W
Teamcenter ITK二次开发源码分享: 创建一个工作流0 N0 e6 K' ]! C( v9 P* v

) q, A. m& m  u1 T( g4 R
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    * \4 p3 ^4 C6 P# F9 G& u
  2. #include <stdlib.h>
    9 i6 ^. E% Y. H3 ?: u6 |
  3. #include <TCcore/aom.h>! C% o4 {9 L- q$ M1 d5 ]8 c- E7 t! C
  4. #include <tc/emh.h>
    & f4 Q$ T: {* S: U& [& H* \
  5. #include <epm/epm.h>
    2 |! w: w- r6 @& i* b6 }7 p6 s
  6. #include <tc/tc.h>; S# D7 ?' l3 `, q
  7. #include <sa/tcfile.h>
    3 e& c+ p  d4 L# h
  8. #include <itk/mem.h>; ~- n+ O. A; v) m0 s+ }9 c: v8 Y

  9. 7 \1 r! G0 W5 I! C* v. z
  10. #define EXIT_FAILURE 1
    ) c0 M2 a9 M: }: G, P- k* U
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))- M5 N) h' I0 {& |3 G; l: G: b& M, @& R
  12. static void report_error( char *file, int line, char *function, int return_code)" ^  ^' h4 z* [' f. r/ s/ T
  13. {
    # R0 e" B$ `" T4 V- K- F
  14.     if (return_code != ITK_ok), ~$ e' t+ J6 k- k0 |3 l, p
  15.     {. i  C# A7 s  K1 @4 R/ i  b
  16.         char *error_message_string;
    8 ~, P8 A  |; v* F
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    0 y: F! ?0 T, m$ |. q
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    * @% h- M+ l6 C- U
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);- [. b4 f# Z$ Z* E0 w: o. }( z
  20.         if(error_message_string) MEM_free(error_message_string);
    ! _* A* _5 O+ \1 v
  21.         printf("\nExiting program!\n");5 B' c  _8 n$ A2 |3 L
  22.         exit (EXIT_FAILURE);   
    6 x# n8 n! h, w
  23.     }  [4 M- Q# \7 ~2 Z6 w. u* f
  24. }0 E9 v8 V. P- I9 |
  25. . D5 t9 }( {% x! d. f! H' F
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))% G2 q5 e2 P' y# C; q! O5 S
  27. static void check_value( char *function, int value )7 s6 S0 O' z2 f) {# E
  28. {2 |% D& S) y# I8 R0 Z
  29.     if (value == 0)
    7 d6 s+ a2 o9 f. q3 M2 S* p
  30.     {* n, W2 ^6 ]% R& `4 t
  31.         printf ("\t%s is NULL\n", function);
    / w) c4 a5 D; @  Y
  32.         printf("\nExiting program!\n");
    / s: D6 B2 Y* t) ?
  33.         exit (EXIT_FAILURE);   
      f0 o% T) q: l, v
  34.     }/ g* |# P4 g  m6 @
  35. }
    ! \! q1 q6 L5 J8 N+ A" f0 R# y' a3 |! `) L
  36. ; `3 l" z& Z/ @1 X, [$ `5 I
  37. - |4 S: M% d) Y. H
  38. static void do_it(void), z! d! n) c  R! T# j
  39. {
    + @2 j: \3 B, ~, k3 t* f
  40.     int ) [% J6 Q. O- L% `" |" Q7 G
  41.         attach_types[1] = {1};+ d& z) }% ?9 Z* |
  42.     tag_t
    , N( y7 j: R3 N' I; P/ i7 _
  43.         rev = NULLTAG, 8 H+ r5 D' s) }% l: r: T8 j
  44.         process_template = NULLTAG,
    2 n+ m$ `1 r( E3 X8 q6 N
  45.         process = NULLTAG;
    " ]. r$ c' j5 u) D$ m
  46. % [) }$ z5 m0 x2 e( @+ c7 Y( A: C2 w
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    ( B/ \8 W+ G* o5 Z- g3 i
  48.     EXIT_IF_NULL( rev );
    4 B0 f. A6 J& Y3 w7 N

  49. 2 `& a$ B. @, r8 ^8 J
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    4 z! p& D( o4 v% C
  51.     EXIT_IF_NULL( process_template );
    " {, }, f( J- V, y- p4 _5 a: V/ C
  52. " Q& f; |$ K$ q+ T  Y

  53. 8 G3 r6 [3 t8 f* m  A& a! b
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    - d+ [: T' D8 p* R: K: _! n
  55.         attach_types, &process) );) `% t  A; C4 r" u. n
  56. % z9 g, F9 Y" s0 [
  57.     EXIT_IF_NULL( process );) B1 u! M( [2 m; a
  58. }  ^6 ~  b' Z& G3 n" y6 W5 N
  59. # y7 Q1 l% S* D) ~2 \: D
  60. int ITK_user_main(int argc, char* argv[])# S+ t2 g" [$ d8 b- z. Q
  61. {! {$ G, f  ^: Q
  62.     int$ {+ Z, S4 {2 }4 ^  y5 N* Y
  63.         status = 0; & b  ^  l/ y3 o) F5 L* f+ L/ v
  64.    
    & s4 t! O5 h& ~  `
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );1 q9 X/ p" p" n. D) S/ A, y, O3 G- t0 `
  66.     status = ITK_auto_login();
    7 ?1 R1 k  ^0 t( y7 Q% }8 k# R* s
  67.    & I  m# b3 f) D5 o; H7 P4 T
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    " F  w6 P/ \' ?  _
  69.     else
    - g/ e2 q7 i: _" \
  70.     {
      f8 {( v; K  s' r% I
  71.         printf("\nLogin successful!\n\n");
    4 Q+ k6 E8 I# a% P9 n
  72.         ITK_set_journalling(TRUE);
    : J( Q- y) K( V. D( |  D  R
  73.         do_it();
    9 G* N/ Y) s: H+ k* R& y4 k: Z# l
  74.     }* {3 N8 ]: ]+ [) \2 G4 W# c: \
  75.     ITK_exit_module(TRUE);
    0 H. H0 j& S4 m& W0 V7 t
  76.     return status;( F4 d! u" C) v
  77. }
复制代码

$ B0 Z) }! d( V) X( h5 a! J8 q& Z& [- D/ f$ B

" z3 v- @- A* q8 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二次开发专题模块培训报名开始啦

    我知道了