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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

9 B1 @0 Q% P8 E) R" c- m* _Teamcenter ITK二次开发源码分享: 创建一个工作流' l& t2 W5 k! d

+ V' n9 V$ N3 S. {: H) f" U
  1. /*HEAD CREATE_A_PROCESS CCC ITK */1 J( a! ~4 [1 m) q. j' h& x
  2. #include <stdlib.h>$ k2 ~2 D1 O6 Y0 G
  3. #include <TCcore/aom.h>
    2 g& ]( L, a5 s3 L5 b( r/ Z( h: Z+ \
  4. #include <tc/emh.h>
    ' W  |$ Y" m3 U, s3 A4 c5 s/ D
  5. #include <epm/epm.h>3 T" ^7 b6 D5 U# m5 A  ]+ |
  6. #include <tc/tc.h>% i9 x% M/ f8 ]& E4 L7 ^) L" w
  7. #include <sa/tcfile.h>  j- v; W+ }8 d. ~/ \9 o
  8. #include <itk/mem.h>5 ]1 s* p" l, t/ ~1 G

  9. % T, s4 `* h/ G6 \. N
  10. #define EXIT_FAILURE 1
    # ^0 y# @! V0 P  h% i
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    / P" ]$ ]/ |( V/ A  g: x% n' p8 t
  12. static void report_error( char *file, int line, char *function, int return_code)
    : ?; B' E- R- x- y! P* b
  13. {
    " x3 T: n8 l4 T* L- U+ J
  14.     if (return_code != ITK_ok)
    ; [' i- V1 [5 g7 V9 c
  15.     {
    % d$ Z* Q- E' \" c/ b9 t
  16.         char *error_message_string;: H1 z! [% a) g$ T6 l9 C
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    / z. [& z/ A$ S
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    , A9 R6 U# a+ \2 w8 c6 X
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);3 D  ?3 v5 _6 T: x$ h) Z! x. a
  20.         if(error_message_string) MEM_free(error_message_string);' ~, \. u4 B, Y
  21.         printf("\nExiting program!\n");' U5 Y+ o( i" ~% J" |0 I
  22.         exit (EXIT_FAILURE);    9 y9 y0 v# h/ A1 l# q; z
  23.     }
    6 S# Y5 H7 s% T6 [
  24. }
    0 g' O9 @4 U2 g8 p0 x+ R* m3 h

  25. : ^2 n5 K, `3 w- I$ T9 d
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))0 R3 ?- t' \& q/ M4 M
  27. static void check_value( char *function, int value )
    ) |" l% p* V5 G# J6 L/ J9 ~
  28. {, S  [/ `, w+ b( W% K% l
  29.     if (value == 0)3 t! a/ L# s. d7 c% x
  30.     {
    9 i! q- H* K: R9 S
  31.         printf ("\t%s is NULL\n", function);
    2 J1 }$ r+ B8 @1 C+ B6 Y- Q3 r
  32.         printf("\nExiting program!\n");
    2 o4 f+ f, o+ n+ I( Z5 k
  33.         exit (EXIT_FAILURE);   
    % d% S/ u  u8 p/ B; Z$ V
  34.     }' Y3 A1 J7 P& b9 }- A% u- }
  35. }
    9 g6 k6 G6 E7 l! e+ S2 z* S7 j

  36. " E& [  A8 Y3 g4 J7 P. b

  37. 5 Q- f) @# x% j# `& K
  38. static void do_it(void)
    , V4 _* g% K: }3 j- D" D
  39. {
    6 ~! d! y" B# h1 g3 `/ X
  40.     int
    & P$ W( F' p2 S2 U7 H
  41.         attach_types[1] = {1};. v  m4 J/ y" _7 O- w" n# V' m7 t( s
  42.     tag_t
    / M% [3 f2 X5 H1 h+ t  b
  43.         rev = NULLTAG, 3 Y7 ?5 e6 U2 G7 z) T+ L# H
  44.         process_template = NULLTAG, ) `( |* p4 I3 I* b+ C
  45.         process = NULLTAG;% ]8 I$ _% U' ~
  46. 7 z" v2 ]$ ]1 w2 G/ u- f2 K$ d
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    / s3 z6 r) a& o# h" t9 ?9 `' P" f
  48.     EXIT_IF_NULL( rev );
    7 n; C: `' }* `: y  S3 I

  49. 4 V- e& w2 w# C$ x
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    # a9 ~6 F5 E4 \1 J7 {
  51.     EXIT_IF_NULL( process_template );
    : l  D5 b0 d: o9 M9 w, v
  52. ' R$ Z! P8 u0 W& j; g
  53. 9 \6 a& C: I5 W, W
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    ( Y8 S' A0 {6 F2 `
  55.         attach_types, &process) );
    9 z% ^2 |" e5 O+ j' M6 d
  56. + {# D& X  R  t, y- r, \
  57.     EXIT_IF_NULL( process );$ P9 ?* s- [5 d9 V' u2 E
  58. }
    + \+ s- {- M9 `; m) @* z

  59. 8 L/ L3 }( F/ c! j3 M/ o8 ~
  60. int ITK_user_main(int argc, char* argv[])
    9 p9 s; a. K/ N) L
  61. {
    * V$ N+ `  Y/ H6 S% T) _' [/ Z
  62.     int
    ) t; i3 o; y5 a" a0 l3 n# x
  63.         status = 0;
    8 s: s; N8 e0 K/ ]1 d' [
  64.    & I6 Y$ r( z6 ~' A* C! q9 W
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );- B/ O! q8 ], ^! q% ^4 k: N
  66.     status = ITK_auto_login();; r/ B* n3 L. {* i% @
  67.    
    9 b7 `: f- d: Y2 Z" r  E+ D  x
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");+ ^. l! F4 U( o# N* U9 Y2 _* H
  69.     else
    + g# z) C/ O3 Z- [4 M
  70.     {
    - Z! X# g* q+ B% Z
  71.         printf("\nLogin successful!\n\n");) Q0 d; z  a- N, x7 {3 d  C
  72.         ITK_set_journalling(TRUE);. u  a* T; j8 t" ]- M/ v
  73.         do_it();
    . Y! X; x+ v1 `
  74.     }9 t+ l  |- G6 ^4 n: O# q( j
  75.     ITK_exit_module(TRUE);! K1 o: {3 Z( T( d' e7 B) `9 Y) o2 u
  76.     return status;6 e# Y) z. C1 i+ R: d! A" a, V
  77. }
复制代码
+ i5 C0 q$ R8 E, I2 I  A1 w9 @
. h* p% V1 T1 U/ ?
1 b) @3 T+ e9 v, c. V# 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二次开发专题模块培训报名开始啦

    我知道了