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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

; L0 w7 Y  ]3 t! T: TTeamcenter ITK二次开发源码分享: 创建一个工作流' D5 B9 X6 w, k, Y) i  [0 {
8 Z7 a- w+ I: `/ L8 `
  1. /*HEAD CREATE_A_PROCESS CCC ITK */) I! i4 g8 B5 c& n" b
  2. #include <stdlib.h>! h0 a6 ]. u% P" V8 S/ D
  3. #include <TCcore/aom.h>( d7 y+ c. v- u/ `6 D, h+ v2 x
  4. #include <tc/emh.h>
    " O3 C6 Y9 J3 @5 B, k$ ]+ W
  5. #include <epm/epm.h>' U' t) N# {$ d, V
  6. #include <tc/tc.h>: L5 i$ c5 M' m5 R
  7. #include <sa/tcfile.h>
    2 r& n5 }, Z7 G$ |$ t
  8. #include <itk/mem.h>! Y2 ^. B$ k9 `, a* X: H9 s% ~& v

  9. ! m$ O" {  D) ~! s
  10. #define EXIT_FAILURE 1
    3 g3 r8 b* b3 R8 t" s# V* J5 o, w
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    0 J. }1 W3 X4 C1 o
  12. static void report_error( char *file, int line, char *function, int return_code)3 e1 m% V) o: u- q
  13. {
    9 t: I3 J# T, Z1 p3 `' `% u1 W
  14.     if (return_code != ITK_ok)
    / Y! c2 x5 b. f/ Y
  15.     {
    9 a& r9 P- d! K% N
  16.         char *error_message_string;6 I3 i: t$ c! r# ]
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);- s; d" o. S4 T9 ]6 e' p' Q
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);( I$ n& w! [2 T
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    6 E* x- A5 T: |# W5 v
  20.         if(error_message_string) MEM_free(error_message_string);
    ) b0 [- @/ ]3 Q" K9 F5 ~
  21.         printf("\nExiting program!\n");8 N3 H/ u1 G( {- O) f+ P- G+ W
  22.         exit (EXIT_FAILURE);    $ @& A- B# I' u% Y2 w
  23.     }! s, }, |! _$ p9 `  Z& A! b7 t
  24. }
    " R7 k  u3 s; Q( E

  25. - k0 K. ^  |' t, O: {  ~$ U
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))& H8 U# Z! O1 {  O# h; p
  27. static void check_value( char *function, int value )
    6 _0 x- i& ^2 i' ?3 G
  28. {
    8 d# a, \! ~0 N, f
  29.     if (value == 0)
    - Q6 A3 e/ t5 f$ h
  30.     {
    / J5 [. k; N" s5 w6 I; i
  31.         printf ("\t%s is NULL\n", function);5 O* Q8 p. _/ M8 ]; W6 w
  32.         printf("\nExiting program!\n");' R' O" B: o' r6 R( W" f8 Q
  33.         exit (EXIT_FAILURE);   
    3 }# {6 p0 R2 N* m- k/ K- ^5 p
  34.     }
    7 Q" M% h: G* w0 A6 ~0 P$ @9 X
  35. }
    8 J# t& v: |, z' g* O0 @
  36. - |. D$ H5 N6 O) N

  37. # o* |$ n7 u0 D
  38. static void do_it(void)1 ^5 [; C2 `# A
  39. {8 D* x: y  K, M9 ]; b
  40.     int
    1 l7 D' g& p( U2 T
  41.         attach_types[1] = {1};0 o- a. d- D3 s0 \: R* L# v1 Q
  42.     tag_t 6 _5 Y- m! G9 |4 k/ E4 [2 D
  43.         rev = NULLTAG,   Q! a  m4 t* \# ^* l1 }: ]
  44.         process_template = NULLTAG, 6 q. b5 k+ C" k# ]
  45.         process = NULLTAG;" u3 V  r% j, X3 P3 c
  46. : D. h# r+ \# |" y' l
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );& ~- \! E+ _6 K* Y
  48.     EXIT_IF_NULL( rev );; z% k+ x+ x1 e/ w( ]8 n

  49. - Q3 Y: F2 `; @% [4 Y1 M2 `/ q3 {
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    2 a( Y; F* |; X: P& b1 \# h
  51.     EXIT_IF_NULL( process_template );$ d+ H/ p" c  q+ Y7 l

  52. 8 i6 E0 O- r: P  J- S" [  D
  53. 4 }# i8 @9 O2 r* \
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, ) s9 M" [' H, h: ]
  55.         attach_types, &process) );
    7 y2 ~' x  R4 X8 ?/ I

  56. 0 s$ B/ X7 m* r" j4 v$ l) h
  57.     EXIT_IF_NULL( process );2 c2 |: g* S2 a  e2 j2 Z
  58. }
    , W) r! b0 |4 _3 C
  59. ' w1 x! r4 W% Z, w" {" k$ J0 ~8 f- N) {
  60. int ITK_user_main(int argc, char* argv[])
    $ V8 R4 S6 |8 f6 T" M" |: r
  61. {. x: O# B% Y  ~. t
  62.     int
    8 a: E! d: b- p  e6 D$ p6 {" Y
  63.         status = 0;
    % ~7 a( V( d9 U$ Y2 ^( m8 e' z" Y
  64.    . \% D" Q7 d) P
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    8 t% _1 ?. Q- l" ~
  66.     status = ITK_auto_login();
    / z# g0 [$ g' |2 C
  67.    
    1 @) Q5 \4 {. U' j1 G) K5 p
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    ( m7 N0 k; a8 Y1 b3 V  q
  69.     else2 |8 B8 c: o2 ~6 X6 `8 N# s! B
  70.     {
    1 k; }, M- W! R9 l2 q1 ?; R- B2 ?
  71.         printf("\nLogin successful!\n\n");
    : d$ j3 Q& ]2 _$ B/ z# @
  72.         ITK_set_journalling(TRUE);* y/ `' T/ T+ g; ^) T: E% }
  73.         do_it();0 G$ `# u: m# Y) r6 z8 h( W6 O9 S
  74.     }: M0 S: w: n6 m+ y4 [1 L/ E! r
  75.     ITK_exit_module(TRUE);
    8 k, `5 ^+ b. K# }: E- R* {
  76.     return status;
    " C% n6 F; v5 c: p- t& K% z
  77. }
复制代码
$ x4 Z; Q0 u  T6 d1 \% ]

* U9 p# ?8 _  c' F% t6 n  c' E1 v: c3 L2 j( X( K
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了