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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
' V: j* R1 [& f- z8 H' U
Teamcenter ITK二次开发源码分享: 创建一个工作流
0 [% V+ r3 b9 B3 u
. I7 a" p- i$ d4 t! [) v) W
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    1 a4 r9 u8 N) w; r9 ], j; \
  2. #include <stdlib.h>" S- L4 M; q5 ~/ Q+ [1 k) U+ {
  3. #include <TCcore/aom.h>3 X0 N/ P, P8 o1 _& s7 G) m
  4. #include <tc/emh.h>" \; ~  d  `& c) E  X; F$ L
  5. #include <epm/epm.h>/ J6 e. j6 \- v; N& k4 d; j
  6. #include <tc/tc.h>0 D  L! [) Q1 z& ]# X9 D
  7. #include <sa/tcfile.h>
    8 ?8 _2 i, `. m6 H* A1 I+ T
  8. #include <itk/mem.h>. I) [) _5 A. s" @& W( v
  9. 9 l7 U7 U+ l0 j
  10. #define EXIT_FAILURE 1 * S. y2 r0 F1 Y' z# D4 D8 }7 W2 Q
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))2 @2 A( ~$ i& e: j
  12. static void report_error( char *file, int line, char *function, int return_code)# V/ l7 [+ j% m' B2 u
  13. {
    ; F4 a  I7 O- n  p2 ?  W0 O
  14.     if (return_code != ITK_ok)
    ) `( a0 p% t7 w4 s
  15.     {6 J# U/ L4 s4 O+ t6 ?- A6 l
  16.         char *error_message_string;
    , J7 O# v$ z' w- ]
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);+ x* G2 o) Y# L
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);# F* }) R, u+ a0 H- ?. O
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    1 t* {# T# {1 o% {  E9 e! a9 j* W
  20.         if(error_message_string) MEM_free(error_message_string);* v) B" [& a) [8 t1 U
  21.         printf("\nExiting program!\n");) ~- I4 l+ q4 v" @
  22.         exit (EXIT_FAILURE);    5 F) t3 y6 W1 L% ^; Z6 k2 i
  23.     }- S' O( g# q* k7 d/ U
  24. }* O& @* `: I, i$ K

  25. / \% i" T2 u7 h/ O/ y, e6 E
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    2 y' f& @/ g. f: v/ }
  27. static void check_value( char *function, int value )
    ; n5 c; N9 ^, F! a
  28. {& ^7 |# c# F+ k/ K
  29.     if (value == 0)1 H5 q, ^( z4 B) n$ Y8 @. R( m
  30.     {
    5 }6 b/ @/ ?9 {7 p$ V
  31.         printf ("\t%s is NULL\n", function);3 D1 [4 Y2 Z9 t8 F: c- d- ?# N. Q8 @
  32.         printf("\nExiting program!\n");
    * W! L3 M& z4 b3 |. m& \
  33.         exit (EXIT_FAILURE);   
    2 ]. f: I; \5 e
  34.     }8 ]  R6 L+ c0 W1 x2 ~. e
  35. }! i( R5 R5 v, K/ X# }, E

  36. 8 M/ l9 I/ h' |, ^5 h
  37. ) f, M. J  t2 S
  38. static void do_it(void)
    3 Z: l( E* \( V5 o
  39. {
    1 m. g7 n4 }3 {
  40.     int 6 E# k4 g: \# S0 ]8 i& h8 h
  41.         attach_types[1] = {1};
    , ?8 I1 s: |  o6 q
  42.     tag_t
    5 P( O- w9 w  n' [6 s% T0 Q
  43.         rev = NULLTAG, + A& @6 h2 u# J7 G0 o
  44.         process_template = NULLTAG,
    ; M) e" N( |1 f' i  a
  45.         process = NULLTAG;% r7 K5 e3 b, k6 n, g: ~

  46. : W1 C1 ~, q% X3 |1 v
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );7 A* x, v: e# d  f* P% j  Q5 ?
  48.     EXIT_IF_NULL( rev );
    # _7 _4 V9 `6 b7 O- Y
  49. + `# P# @# |1 P# A  z7 l- W' [
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); ' D6 d7 r# s! t
  51.     EXIT_IF_NULL( process_template );& S, T, F7 a2 V/ V/ S4 V

  52. . p3 x" k4 y' J' Q- V

  53. 0 S& s0 Y/ s3 Q( w$ X( ?$ {; F
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, % d  J5 w) \% d+ h" U
  55.         attach_types, &process) );3 n6 M* }8 ?2 {/ B( K
  56. % h1 C- y8 e/ \0 ?
  57.     EXIT_IF_NULL( process );
    . B4 F1 x9 ]- C# o, l6 D
  58. }
    , U: v, [) J9 d, c' v$ z0 S; ~5 Z
  59. 3 e9 Z9 b9 L! ?' E& q. N3 Y
  60. int ITK_user_main(int argc, char* argv[])
    8 {! }2 |" R3 s3 g) L$ r8 b
  61. {
    4 l6 I3 d: M* h
  62.     int
    / K. B/ M# R4 ~9 D; v6 ~- d
  63.         status = 0; 1 \! ~$ ~; W0 c/ U
  64.    
    9 K$ }" m6 E' m( \
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    - q+ ]* j- \5 [' t; W
  66.     status = ITK_auto_login();
    / m7 w( x6 y: j  s% N9 Y
  67.    
    / R  c% s# j  @4 d) s  G' v
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    4 Q8 O) e: j% k; {2 R- i. j
  69.     else/ C; _# Q+ R# r& C/ M# J
  70.     {
    $ d1 |! N9 U6 y% j  r
  71.         printf("\nLogin successful!\n\n");8 ~* d9 |1 w( i
  72.         ITK_set_journalling(TRUE);
    9 ?( U4 g9 n' S. S4 m; w
  73.         do_it();
    - T# \" J! G/ ~4 g( s) f1 F
  74.     }
      l: p* c- Y9 U" i9 G/ A
  75.     ITK_exit_module(TRUE);
    9 T6 h. \( E1 b. H6 f& g
  76.     return status;! E- z  `9 p" z" x
  77. }
复制代码

6 y3 J, U% e, t+ ~! A  Y" h9 @2 i
- e: e8 b6 ^8 k6 e; _5 F9 ^' p+ a6 r* _+ Y- a1 F, x& E3 z; N4 C& V
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了