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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

2 q# L- D2 m; a3 [Teamcenter ITK二次开发源码分享: 创建一个工作流
9 n' r, I! r. {4 v* i. I# x3 e% ~' `6 A: j, Q# [% ~; ^
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    8 q) d. p! t7 L' E
  2. #include <stdlib.h>6 F, e( A2 M5 V$ ?
  3. #include <TCcore/aom.h>
    + u  u0 m& g# s& m- H6 W% d7 C
  4. #include <tc/emh.h>
    3 x& T2 u6 f/ @% C- E
  5. #include <epm/epm.h>
    5 ^1 H% l1 F7 R3 I- b
  6. #include <tc/tc.h>% x( q% H  L# b2 C, R% g
  7. #include <sa/tcfile.h>
    5 z8 o# N3 V% Y; o7 v- u- @- l
  8. #include <itk/mem.h>
    - }3 D; p2 J$ {

  9. 2 V0 }+ c( e7 w' n' ]$ [7 |2 @" x! g
  10. #define EXIT_FAILURE 1 , b7 `4 h9 O4 u/ E; P5 t# L( m5 N
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    * X, ?9 b3 n* Z) c8 \& u- l
  12. static void report_error( char *file, int line, char *function, int return_code)0 m0 @, i# s+ T
  13. {
    # R/ A3 ~% W9 s2 l1 t6 u- J  N
  14.     if (return_code != ITK_ok)/ ]/ V% ^* u/ \
  15.     {* u& `  Q: z$ E3 R4 y) s8 E' L
  16.         char *error_message_string;- a3 P+ S. y$ [# Y* \5 v% N: m
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    % ~& w4 s3 R) R5 b6 _) R( G0 G5 ?" Y
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    9 s* v4 t* [$ Q! c3 X
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    , F* e0 Y/ W2 r% q% E
  20.         if(error_message_string) MEM_free(error_message_string);; w7 E' p1 u: v& A. D9 z1 S! K
  21.         printf("\nExiting program!\n");
    * Z+ F/ Y& `; _
  22.         exit (EXIT_FAILURE);    5 {* x: X' c2 {5 |# i5 _
  23.     }7 w0 w+ v+ L, I. s
  24. }
    ! r. D3 T' @9 l9 o( Z
  25. . C3 |# t- x1 ~
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))  r" D: F# w# z. F! C9 o4 c
  27. static void check_value( char *function, int value )' F' n. a' f4 }! g5 C
  28. {
    , y% S) Q& V& ?- X) @
  29.     if (value == 0)) S$ V, t/ ]6 R7 F9 O' Q4 C
  30.     {9 ^- _( G+ [8 p9 F
  31.         printf ("\t%s is NULL\n", function);; H( u% d% p5 f6 S9 a0 ^
  32.         printf("\nExiting program!\n");
    " u# I+ V. I, g- x, u4 J5 h) j
  33.         exit (EXIT_FAILURE);   
    9 P5 f3 E0 ~( r# h) ~
  34.     }
    6 O6 p2 g3 g' [1 K
  35. }& p0 |$ ^. T$ r9 ^, s+ o; q/ b7 ^
  36. ( |' Q) Y- C  C: v- G
  37. $ y2 J0 N( Y/ Z
  38. static void do_it(void)+ P9 v* Z& c4 W) ]) p- K' i8 L
  39. {' q3 @' d$ j2 i/ Q  b, w+ z1 `
  40.     int ) P6 @6 l" M% N: V5 v+ B3 h
  41.         attach_types[1] = {1};
    $ N" Z4 S- ]+ B/ `
  42.     tag_t
    + a4 S( D2 x& ]: Y/ A& n
  43.         rev = NULLTAG,
      Y5 e; t0 [8 \9 V
  44.         process_template = NULLTAG, ' e$ ]$ K4 C& G# `7 K, C' P3 O
  45.         process = NULLTAG;
    6 }) {. w  a5 W9 x6 W* i

  46. ! X- v% j* `3 a# `
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );, l6 q/ p9 X/ p+ s
  48.     EXIT_IF_NULL( rev );) @$ H" o! n) r& _' }7 t2 m

  49. + u7 V+ g/ r, n
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    . J: y) s6 d9 E
  51.     EXIT_IF_NULL( process_template );7 C9 X! Y. ~' z( E' d: V+ |& t

  52. , O( m; f' w8 u- s: ?: A
  53. & m  k1 j/ }  G: U/ L
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, " ^; n* a2 o" W& r! r1 F
  55.         attach_types, &process) );: |+ K& m! \% |
  56. & r5 i. R: v3 {! V5 q; I
  57.     EXIT_IF_NULL( process );$ a# m' o- b" Q) v% S
  58. }+ f9 n' F9 M% U! U4 T

  59. / w: ]8 }+ D* f' `$ @2 G
  60. int ITK_user_main(int argc, char* argv[])
    4 A0 B9 X- B( e) N! k
  61. {( Q9 w: z: C' o1 O
  62.     int
    ! P! Z  K$ {8 ?4 v
  63.         status = 0; 2 g2 A$ A. B& n/ r
  64.    9 k; b* i( z/ z% i2 p; q4 U$ m
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    : P+ p( e  F5 O4 U
  66.     status = ITK_auto_login();
    5 j, s  p  e/ j9 @
  67.    ( l' d! N) c6 d8 E9 }1 ]/ c1 c1 r2 X
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    " W) g) l, o" ~" B
  69.     else4 t1 v8 S: o- ~4 U7 \5 O5 n
  70.     {/ [! Z3 i+ Q; G  z/ o
  71.         printf("\nLogin successful!\n\n");
    ' J$ Y8 l6 `: K- G0 O3 F) S
  72.         ITK_set_journalling(TRUE);( I2 l0 ]( N2 j; L3 h
  73.         do_it();1 t: L2 K2 g: k/ ]! G
  74.     }3 O: C, m/ ^9 p) T2 n2 _7 R
  75.     ITK_exit_module(TRUE);
    - N/ @* @6 b* ~  \# z# k7 I
  76.     return status;
    " y- ]" ?% r4 D( m) N  X; R0 H7 |  z; L
  77. }
复制代码
( ^* x/ f" R3 m  g, l
* X3 z7 C/ v: D# {# w

. ?8 |; O6 @" N0 k4 F6 W6 N
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了