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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
$ K, @. I, d0 |" M- v2 F) W
Teamcenter ITK二次开发源码分享: 创建一个工作流; O3 v( o) Q6 j3 d
3 `" v3 m; }7 {) {. |
  1. /*HEAD CREATE_A_PROCESS CCC ITK */( O1 \) y$ Q! u/ ?) b; j% T
  2. #include <stdlib.h>  {4 X; D: x7 P& K  a4 I/ Y
  3. #include <TCcore/aom.h>
    3 l1 q; `$ [3 X5 b1 _
  4. #include <tc/emh.h>
    $ K/ k: }; N- E9 k: [5 R
  5. #include <epm/epm.h>
    5 G- _( C5 F" G0 a  K, s8 ~" z
  6. #include <tc/tc.h>( `, @6 @% [" \3 Y& ^3 P3 a
  7. #include <sa/tcfile.h>+ I7 L6 _) K- a
  8. #include <itk/mem.h>
    3 a2 c* s; H# i8 o" O: G: g  y) F
  9. 1 i( D& p8 \! q/ Q, ?0 Z, s( ^9 ]
  10. #define EXIT_FAILURE 1
    ( x" n" v5 |0 B+ Z) R5 c) {9 E4 H" f
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    " \* k! D4 e' z+ ~- ~' j4 K
  12. static void report_error( char *file, int line, char *function, int return_code)0 k, j( `5 Y- p+ p# `
  13. {
    6 T8 U. ?$ d, C; r4 h2 s% N
  14.     if (return_code != ITK_ok)
    1 l2 s) O. U# ^
  15.     {2 e1 j& i; ?1 J! J, U) p
  16.         char *error_message_string;' Y* K( t5 l9 V. G& F
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    / [; O/ Z2 n! z: @7 ?. ?1 {& {0 b
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    " {. R6 l7 l4 e0 E" c/ U7 Q
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    : M8 V' R/ F, g7 {, V
  20.         if(error_message_string) MEM_free(error_message_string);
    ; u; D% S& X+ Y) u/ s
  21.         printf("\nExiting program!\n");
    ( c% r7 T; k$ ~: \. L
  22.         exit (EXIT_FAILURE);   
    ; N4 A" x" k7 O9 q$ H& S
  23.     }
    3 x, s/ [# q* v8 h
  24. }" s& {( N5 ?3 z
  25. * X, \. w" e! ?/ \0 i8 J
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))1 n2 l1 ]: C- T$ e3 o
  27. static void check_value( char *function, int value )
    7 S5 C; o0 X4 A- t$ I* W% E
  28. {8 A# p" \& B: ^7 p. i3 O
  29.     if (value == 0)
    ! R, S; ]9 x1 h6 g
  30.     {8 I$ F7 q* X5 L% x- Q+ L- U5 j
  31.         printf ("\t%s is NULL\n", function);
    8 o5 O- ]7 ?" G- j
  32.         printf("\nExiting program!\n");
    7 q; R4 Y. _) W; R6 e
  33.         exit (EXIT_FAILURE);    " T  S3 R, G: g& ?; {
  34.     }
    , w; r1 |0 d/ G
  35. }$ e4 l) I, A$ x: [

  36. 2 `6 v8 S6 G3 D) C
  37. 8 x; J' E: m5 k  J7 p' p0 j6 e
  38. static void do_it(void)4 k8 N# b  `  ^% Z' {) H
  39. {" v- T+ n/ J- B" C4 u# \3 a; ~8 P/ G
  40.     int
    + a% w' R0 `* n+ w! F$ X
  41.         attach_types[1] = {1};
    0 v2 S* [$ |& y
  42.     tag_t
    3 C* A( g  R8 }6 ^* d
  43.         rev = NULLTAG,   _: W# y+ H1 ^- `7 l# J3 Z
  44.         process_template = NULLTAG,
    " v6 a9 s0 Y/ f' P0 S% h
  45.         process = NULLTAG;
    ( [# h+ o0 E  Z" d3 n
  46. ) V/ g/ X9 b/ ~. B2 `
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );' D4 y- |& f; l8 S* ?
  48.     EXIT_IF_NULL( rev );! ^: [# L+ _/ |0 |1 C8 Y
  49. ( a" Y: `$ G) x1 P2 p; _
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    , w& e6 X) W' R, N" r$ @
  51.     EXIT_IF_NULL( process_template );
    8 w- K; a1 P3 O! Y9 N& x

  52.   J% E2 c9 m* C) l) J
  53. 7 t9 e; g$ J9 Q6 @
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, # J& i9 I( d+ a3 E) v# T2 J# L
  55.         attach_types, &process) );
    . s1 {- Q: u* q7 b

  56. ( D) e! j! I0 q% @, y6 Y  i6 ]
  57.     EXIT_IF_NULL( process );3 R9 ~0 O, R" f$ z' l
  58. }7 _  y: L3 d8 F" d

  59. ' d* ~$ j8 _- A4 p3 f' ]
  60. int ITK_user_main(int argc, char* argv[])0 T& d7 x2 i4 g$ Q. h/ n$ R  M
  61. {* t( g7 ?  K1 }& F* o4 X; z  c5 D
  62.     int
    6 ]8 o9 x) Y& }! {6 F0 k! r8 O
  63.         status = 0;
    * {4 U5 @) d; Z! [% `* A
  64.    + }3 Z, S3 t. g# L0 P6 B/ u! e
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    & b5 D7 U5 H7 U0 S
  66.     status = ITK_auto_login();
      g. n% y, |9 S& N
  67.    
    + ?% D' O# w, ^# R, n9 t) M- o
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    3 h" h, Q/ q( w4 ^0 q& g
  69.     else
    & E0 |' q9 {  L- ^- e* y
  70.     {
    6 X. b8 ~  a, \* p: K( l5 M1 J- {; l' ?
  71.         printf("\nLogin successful!\n\n");, O4 q+ _2 ?3 k0 X% E5 F6 ]. f
  72.         ITK_set_journalling(TRUE);
    ( ], z7 Z3 _; x0 n( ]0 r
  73.         do_it();
    9 v1 P4 m8 y2 w
  74.     }' W& r" ^- x: ~* p* f$ s
  75.     ITK_exit_module(TRUE);. _& J( `9 X. T& N( J/ i" Z
  76.     return status;
    , R) J# g4 m9 Z6 K3 y3 r1 [2 W* w1 w
  77. }
复制代码
3 ~: n- t5 }5 }& }  u4 ^$ g3 D. [
  r9 u: }% y! ~! g7 X

$ l# b1 }0 Z: y' n: s1 s' p
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了