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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
4 I# h- y2 V2 h/ y( ?
Teamcenter ITK二次开发源码分享: 创建一个工作流
3 k1 n' }9 T# k4 R# v% }& S6 t0 ~: M4 v" c, B( [
  1. /*HEAD CREATE_A_PROCESS CCC ITK */. t/ `1 i) g: P, p$ W; C
  2. #include <stdlib.h>2 I! F" C' P7 @9 }9 o3 k
  3. #include <TCcore/aom.h>
    4 r) C* Y1 {" l# v8 Q; ^
  4. #include <tc/emh.h>
    - D5 u0 q4 z' |: }  l/ q
  5. #include <epm/epm.h>
    5 I4 G' f+ Q( s
  6. #include <tc/tc.h>+ M' p9 z# v1 A( b
  7. #include <sa/tcfile.h>
    # C) |# y* z8 U1 O  Z: J
  8. #include <itk/mem.h>2 r( P8 u2 W5 L, ~
  9. 7 m0 ]$ o5 v; b: c$ G0 I! O
  10. #define EXIT_FAILURE 1
    ) a3 G' j6 f# H8 y8 _2 W6 V7 P& f& t, P
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))$ s4 @# B7 ~  l1 f( V+ k
  12. static void report_error( char *file, int line, char *function, int return_code)
    ; q. l5 O& o0 Q4 o% q. s7 W
  13. {
    , [9 p3 G4 M# k
  14.     if (return_code != ITK_ok)
    # n" X( Q( W/ q5 v: L
  15.     {
    4 @# Q6 Q" M9 F1 |3 L* C
  16.         char *error_message_string;! B0 q; J5 m4 W2 E( V
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);. w6 S1 t& X, n8 Y! K  c
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);) E% l, m& Q$ i' V. H- Y: M- N0 `
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);1 H8 W& p2 R2 l2 h$ N
  20.         if(error_message_string) MEM_free(error_message_string);
    ; j" m/ P: A$ O3 m4 g! _: a
  21.         printf("\nExiting program!\n");
    2 y2 T2 U3 p$ N) O- i7 S$ H( W6 u
  22.         exit (EXIT_FAILURE);    6 o( Y4 ^) F0 c8 H: F$ W2 t
  23.     }
    * G* j% G, C; u" J
  24. }7 L, N) U% T9 y& b5 Z6 G
  25. 6 _8 I/ H( f9 q* W1 w/ p, L
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    2 u7 H3 m5 T3 J+ C
  27. static void check_value( char *function, int value )
    1 @& \# ?! a: G( @% [/ m. {+ Q2 Q
  28. {
    $ j; g! |; V! A0 x
  29.     if (value == 0)
    0 Y6 Y/ U4 l. ~7 x( n" \
  30.     {
    " Y7 I+ e' P. w# a4 K
  31.         printf ("\t%s is NULL\n", function);! `1 C% S) _2 c8 _
  32.         printf("\nExiting program!\n");
    2 C$ J0 [+ @5 H5 h1 X) ^2 e
  33.         exit (EXIT_FAILURE);    ( u1 x0 w) S. I' l$ t2 t* f
  34.     }4 u! u2 C) `" f7 B! F. B1 e5 T$ q
  35. }' R4 {; l7 D. x( M2 z9 Z

  36. 5 |) y* q# c0 X" {$ |1 {

  37. * q7 Q* F3 o) l- `
  38. static void do_it(void)
    6 \* A. v6 @( x* G5 H8 Y6 t! t
  39. {, X' l$ J/ ^6 L' S- Z7 M
  40.     int
    7 ]* a1 g4 r3 ]
  41.         attach_types[1] = {1};8 Q, X+ C6 J6 G$ M9 I; X/ b
  42.     tag_t
    6 \$ A! }" m* f( |) |2 Q
  43.         rev = NULLTAG,
    0 c* J5 k- K9 r5 m7 ^$ u
  44.         process_template = NULLTAG, & I; `: ~4 q  @" L0 X
  45.         process = NULLTAG;& e0 g0 N5 w3 M/ L6 z+ d4 ]

  46. ) U4 _3 S' ?7 i8 P8 O: t" J
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );0 Z1 q- \" n/ G: D$ k& f
  48.     EXIT_IF_NULL( rev );2 K! G: w0 I+ d) I" c7 ~1 l! d3 A) y
  49. 4 E; [" M3 v& b& @
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 2 _9 D& H. _- D' y3 B. z& J. s6 w5 |
  51.     EXIT_IF_NULL( process_template );
    1 h: c: s: o* k* H+ H9 W

  52. $ ~5 O2 J1 s/ V5 K

  53. 7 d4 y1 F1 ~6 ?8 z" T
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 8 W) [) n3 O6 o
  55.         attach_types, &process) );
    $ z$ V; W3 D9 g4 l8 ~* T
  56. / {; Y+ W9 m- @  ]
  57.     EXIT_IF_NULL( process );+ r, q! f& g9 {7 K
  58. }
    # v* ^; L+ b2 z- e' R7 a8 v1 H

  59. , n- u8 k1 k  _; i4 _- [
  60. int ITK_user_main(int argc, char* argv[])
    , ?; u6 l* R, y6 O8 i. W0 Y8 I' S7 n6 C
  61. {, K; u* Q* O/ y+ v6 u
  62.     int- ?% e8 v0 [* m! s  n7 X
  63.         status = 0; 6 q1 |- s1 T. B: f/ g+ D0 ^
  64.    
    8 q. B) J) a: a4 K4 V( w
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );- f( F1 }( P* c- G+ V3 l7 f9 ^$ n/ C
  66.     status = ITK_auto_login();" S) k9 I4 B* w" f9 J
  67.    # H0 B# s3 M7 b- m; k7 f
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    & Y, ?# [! G3 L6 s
  69.     else1 W/ }: ]( l  X- C3 F
  70.     {8 m8 B5 @( _: X
  71.         printf("\nLogin successful!\n\n");( k4 j" i# m3 o3 g
  72.         ITK_set_journalling(TRUE);
    % c6 ]4 A9 R% r, \* u8 [* l1 i0 \
  73.         do_it();4 C  N, a7 @, s: v5 `# ~, i5 |( |
  74.     }  x9 K2 e7 Z2 S( X
  75.     ITK_exit_module(TRUE);
    ; F) U$ E  C) e! X
  76.     return status;
    + Z: P3 ~0 i5 G* [$ p/ B; b3 K& L6 W
  77. }
复制代码

* J* w; s+ L1 j  `/ L# j
" R! w- I6 |$ j- Y3 A5 i' s# @: O# C, e' ], [
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了