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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
* v; w8 F- Q6 F5 u9 I8 s' ?  }* u$ u
Teamcenter ITK二次开发源码分享: 创建一个工作流: o/ g1 j  b6 m% Q

; X+ {7 T) ^5 b: d- X/ Z/ @) e
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    $ R# p+ k3 `; V
  2. #include <stdlib.h>
    - B# N4 \. e% P' I4 v; `' _1 u
  3. #include <TCcore/aom.h>2 ^0 P8 |0 Y# ~" x" j) {: y
  4. #include <tc/emh.h>/ \: O" V2 r- p; W
  5. #include <epm/epm.h>6 _& F* [. }2 J! h
  6. #include <tc/tc.h>
    " M- P' u' K, r/ ]  ^
  7. #include <sa/tcfile.h>" D% ^- F+ Q+ ]' y+ a* l' J8 D1 c
  8. #include <itk/mem.h>
    8 W; ~; e% `9 J* k* {
  9. 7 j$ T& _  M$ ~  @+ G. [
  10. #define EXIT_FAILURE 1
    1 `  P% Y) S) A% b
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))2 d. a( Z: N& c/ |4 E
  12. static void report_error( char *file, int line, char *function, int return_code)
    2 i# x; N- E9 q. M* @6 I
  13. {5 t4 l# S. ?( j$ S
  14.     if (return_code != ITK_ok)
    0 n* M6 r5 v  d, P' a2 L
  15.     {
    * @6 q6 D+ E1 |
  16.         char *error_message_string;5 _7 w" ~+ k: x: o9 o' C1 O
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    # j) f! {2 G6 r) K1 s& [
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);+ S: J& d6 X" Y2 U! t- E2 \5 h
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    / K8 }8 R2 _, f+ @8 g0 t
  20.         if(error_message_string) MEM_free(error_message_string);1 P3 K  U9 _/ F; _
  21.         printf("\nExiting program!\n");3 ~* a* _6 i! }) X" |
  22.         exit (EXIT_FAILURE);    0 S: m0 t1 D+ j+ c
  23.     }
    " v# [1 Y6 F/ R) C
  24. }7 F& w1 o4 s2 ~# `5 K# K: [. z; n
  25. + q) N! I1 F' n4 H
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))5 m  n' D' c, l7 H' b9 C0 B
  27. static void check_value( char *function, int value )/ ]& V/ [/ z  n" [
  28. {
    ! {  S2 ?% Q5 `. j( i
  29.     if (value == 0)
    3 I; z7 X$ k7 [; j6 c3 r
  30.     {
    ! ?9 P1 I6 |. T, a% I! h0 I' I
  31.         printf ("\t%s is NULL\n", function);6 T- |; d& F% v
  32.         printf("\nExiting program!\n");0 Q3 e7 @6 M! h- |2 Y  S
  33.         exit (EXIT_FAILURE);    # e9 Q" h3 K% K2 \
  34.     }
    : w' K& @$ w0 e. M( V- o9 Z* z" W# _
  35. }
    ' S! l+ e, w! [
  36. 5 \. t$ L: D9 [4 z  q) ~" ~

  37. 9 T7 A! K: Q4 z; c1 ^- j
  38. static void do_it(void). `( |& K1 b( R# O; L1 o
  39. {
    % m8 o# q1 u6 G" O4 g1 K$ O( K
  40.     int 9 u& F% ^$ d, ?0 p, I
  41.         attach_types[1] = {1};4 q* R, M5 g8 f5 ?0 J
  42.     tag_t
    ; v" u& `5 N! d9 [# A  t1 K0 Q
  43.         rev = NULLTAG, , F' l' k" C  L$ w" e; b
  44.         process_template = NULLTAG,
    $ k: E, }: b$ w# }* L
  45.         process = NULLTAG;0 {- U6 ~0 Q$ X% u5 W

  46. * \, Y) L4 R( |  _! v9 e
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );+ A. j& m9 t- a  N. s( U# `
  48.     EXIT_IF_NULL( rev );
    : ]9 m  O  ], K. C$ }

  49. ; u4 w! e# n; G: n
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    * }! o; i. w6 J' E; {9 U* D
  51.     EXIT_IF_NULL( process_template );
    2 G3 s1 o9 `* j8 I1 W

  52. 7 T1 E. D6 r  E- v- e. p$ e! U
  53. ) x7 ]/ w( y1 G
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    8 A" t- ~/ g! B
  55.         attach_types, &process) );$ a. M% d5 o  r9 }) z

  56.   V0 o# J7 a  p, K
  57.     EXIT_IF_NULL( process );
    / B7 F% i  q8 N
  58. }" q9 x2 R1 f1 s$ v/ v

  59. 4 u% u( t5 V' i- s7 f" B1 J9 D& K
  60. int ITK_user_main(int argc, char* argv[])! u/ @( B0 k7 P, ~
  61. {5 ?2 d1 m* [5 N. v/ Z# i
  62.     int
    : R# ^& G6 U' M6 ^
  63.         status = 0; * k) b$ m8 ?8 e6 d* {  e# K- F* |
  64.    - i. g! J# U) ?% O7 Y- Q
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    / H5 c5 r6 F3 b4 S) e3 {
  66.     status = ITK_auto_login();# d0 q1 d' C' L* F7 N# }0 Y, k
  67.    
    * R* `  d( m0 K" n/ G
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    : u: N# \: E. g7 i5 T0 p- n
  69.     else6 s; m) s1 n, L- U
  70.     {9 ?: K7 q0 U8 z9 Q: r# B
  71.         printf("\nLogin successful!\n\n");
    3 z8 g# W% C! v( M& X5 p8 k4 Z1 I- I
  72.         ITK_set_journalling(TRUE);4 `& B1 x$ V$ q5 s$ D% z
  73.         do_it();
    * d) L' G2 K+ R8 m. h7 D! v- ~, H
  74.     }
    ; C6 z7 u# E0 U
  75.     ITK_exit_module(TRUE);9 u6 r9 k7 a0 _& ^
  76.     return status;$ j- }1 k* a4 N
  77. }
复制代码
* ~7 D0 b3 R" C& T1 U' L  g5 q
& U9 M- [/ \8 Q% A+ _* Q" h7 A7 p

0 A$ r, b' n9 a0 U# m# G
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了