PLM之家PLMHome-工业软件践行者

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82162
QQ
发表于 2014-1-15 19:30:29 | 显示全部楼层 |阅读模式

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

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

x
$ y- N+ d# @/ |
Teamcenter ITK二次开发源码分享: 创建一个工作流% ]# y( ~3 }0 N' h' G

4 u) q$ C! m( g6 K4 R3 J" ~
  1. /*HEAD CREATE_A_PROCESS CCC ITK */# K& h# ~- ~& c
  2. #include <stdlib.h>
    # q% L+ I( Q" M8 D6 R9 T
  3. #include <TCcore/aom.h>
    + ~% Q# \6 s5 t/ P
  4. #include <tc/emh.h>8 |  s- R2 i1 o) h* k/ t: {6 p
  5. #include <epm/epm.h>
      [; k- a9 f1 |2 x
  6. #include <tc/tc.h>
    7 l3 i0 R  }9 ]+ m& N+ b8 G$ w
  7. #include <sa/tcfile.h>
    3 X, }4 P# B. J0 w+ {3 v  F( Y
  8. #include <itk/mem.h>
    9 c" Q( l& {9 ], E1 A1 a
  9. 0 f' [/ W; @) ~
  10. #define EXIT_FAILURE 1 - C5 c6 q7 O9 C- r5 ]
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))5 `8 l, _$ R3 V4 V$ K% s$ v
  12. static void report_error( char *file, int line, char *function, int return_code)
    3 H# n' E! Z5 I' y% o9 ~7 L
  13. {
    : Z. x% U6 C. l/ {) f& I$ N% s
  14.     if (return_code != ITK_ok)
    1 C5 _& v# H* `& j, c! _+ o( o
  15.     {4 {! g1 w% |, T5 \4 Y  p
  16.         char *error_message_string;
    , V) _: s- Y6 o) t0 \3 a
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);' z! x+ V4 ^5 y
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);1 l  R( k/ H6 [( c- F
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    5 L* ~$ I! L4 |) N( Q
  20.         if(error_message_string) MEM_free(error_message_string);
      K* L2 ]2 S3 O2 c' B
  21.         printf("\nExiting program!\n");
    # A8 i3 J& H' J1 c) d
  22.         exit (EXIT_FAILURE);    6 {  ~+ V& i# m7 S6 a
  23.     }0 g$ U8 [9 W9 C0 M- a
  24. }4 a0 R" H* r0 ^

  25. ' S; ^% R$ o/ ^# J8 Z; V& F
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))9 }) R9 R1 m  M$ P+ v8 u7 L1 X8 \
  27. static void check_value( char *function, int value )9 V+ n' V; c3 c( s0 v; U
  28. {
    0 ~  E8 q1 t4 @, L( w0 `4 x
  29.     if (value == 0)
    ! f& R7 z5 A  d- n
  30.     {9 A' w" c+ f4 }$ m- t6 p
  31.         printf ("\t%s is NULL\n", function);6 ~, N' v1 y. }$ R  n
  32.         printf("\nExiting program!\n");, [2 |' Q# `% g; Z7 z, @
  33.         exit (EXIT_FAILURE);   
    0 h, ~$ K$ X0 x; [* b
  34.     }6 n& ]7 V# Y6 [- H
  35. }
    . L7 I: s; A! r% E
  36. % y$ J/ ?) ^" I
  37. , d* {; S+ b; g2 @2 X
  38. static void do_it(void)
      X+ z% B0 v5 f+ p& q/ K
  39. {+ ^! ?/ {, U+ h4 e3 X
  40.     int ( @. ~9 @' Y# d3 S4 W
  41.         attach_types[1] = {1};
    8 o4 l2 w( U, p5 P7 _1 S
  42.     tag_t
    8 D% N! {1 K' @! g6 p) e
  43.         rev = NULLTAG, , ~" U4 W- T2 W1 W
  44.         process_template = NULLTAG, # R/ T0 x  K# n9 o$ W4 f
  45.         process = NULLTAG;
    1 [  \  }/ I& x/ {

  46. : b4 g9 B9 c+ I% b6 ~
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    $ L8 Z) I0 |/ f- n" d/ b0 S
  48.     EXIT_IF_NULL( rev );7 A6 ^( i/ c5 y0 z7 u* X7 q

  49. 1 S* s2 k6 E) W9 }' P
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); - E9 [7 V3 v. ~! v) z. r. F
  51.     EXIT_IF_NULL( process_template );
    9 A$ v) l* F9 z
  52. " \$ R+ U% V3 e1 z) H+ e& ?
  53. . A" a; o# w8 ]; F: T
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    - r% ~, r: y, P$ H3 Q! k
  55.         attach_types, &process) );/ ]$ z7 J; c2 ~% @7 N  x! K

  56. $ G/ G& Q7 o* v$ F* v
  57.     EXIT_IF_NULL( process );: u1 O6 a+ U) e: J2 m; l: l8 W
  58. }
    / z: S' C3 L2 L  @0 `1 c
  59. ! M* e# g( `1 o6 @
  60. int ITK_user_main(int argc, char* argv[])
    & I6 n1 a+ s" u0 B8 U. K5 a6 Z- j
  61. {
      v" v8 S- X6 c+ [4 i) b
  62.     int6 p$ h+ {! A# ?1 k
  63.         status = 0; 8 b, Q# e  f1 O" b+ g8 t" z
  64.    ) r2 R9 u7 i! j' P5 D) o: T
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );- u2 j2 a$ _, E) f! w% |$ ?$ Z) ?0 A
  66.     status = ITK_auto_login();( B& H! D$ H! T
  67.    
    " I5 g8 m0 v, W6 B8 y
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    7 l7 v" a1 a: c( Z% o" t% Y
  69.     else, K( M- d4 r$ R' [* [$ x
  70.     {! U% A9 P/ S+ C  x" w6 I& ?
  71.         printf("\nLogin successful!\n\n");
    5 n6 U( R- g( K7 I) z7 i
  72.         ITK_set_journalling(TRUE);2 @) S% \0 O# i0 j  o
  73.         do_it();
    7 @/ Y8 d! ]% z! \4 ^- U
  74.     }2 W3 \( C% y8 J; K# Y2 g
  75.     ITK_exit_module(TRUE);
    ; z* o! R: b: U# @1 ^( L3 P5 ~3 v
  76.     return status;7 P1 f+ n9 Y/ Z  r
  77. }
复制代码

! z2 z' ^# m/ M* g: M# i: a$ O; C* g
4 S' @4 M! X; Q. I
- N* a7 G- }$ o  |; ]# V3 V3 Y
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了