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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

4 N' P# L/ p1 [# m4 w' p  H; ZTeamcenter ITK二次开发源码分享: 创建一个工作流
( C# ~. T3 n5 P! S' z! G% C- W7 l* u" d2 y6 X7 j' W) v
  1. /*HEAD CREATE_A_PROCESS CCC ITK */4 {' S. o3 f4 D2 l6 e3 V3 t6 e# W
  2. #include <stdlib.h>
    8 [& A& r1 u% c5 ?% O  [4 x
  3. #include <TCcore/aom.h>- @* Y. Y! N0 r6 [# ]: J# ^- e
  4. #include <tc/emh.h>0 {8 j6 G, D) Z# w( D# a9 n- d
  5. #include <epm/epm.h>4 `- n# m( l/ E! N+ c! j) e% J
  6. #include <tc/tc.h>6 u9 T; F! y: h3 s* T6 f" v
  7. #include <sa/tcfile.h>+ }3 c# z2 t- {1 r* P9 J' A
  8. #include <itk/mem.h>, i( }- H: P$ B: n) ?. j
  9. 0 |7 ]$ p: Z& u. P* {. ?+ N
  10. #define EXIT_FAILURE 1
    # ~1 ~% ]% O* C, E
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    5 ]' E5 t/ O* ^! [
  12. static void report_error( char *file, int line, char *function, int return_code)
    4 f$ c: R: ?& v* t& U5 C3 r0 ?; s
  13. {
    9 P4 u# U0 Z' \/ R/ E' Q2 k
  14.     if (return_code != ITK_ok)- i9 t. k/ h* S& L2 h
  15.     {
    7 W! g& w& k* c
  16.         char *error_message_string;
    ; b9 Q" _+ H# d5 E! c
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);* P8 D% {+ C6 `' \
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);, J/ s3 R2 p! b1 r# _" W4 G( J0 l
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    # g3 X& C: R. N6 L) Z: E
  20.         if(error_message_string) MEM_free(error_message_string);
    ) H* H7 J8 ?+ b1 @
  21.         printf("\nExiting program!\n");
    / n5 m$ r% B& C$ O
  22.         exit (EXIT_FAILURE);    ! T$ `7 v7 r/ b# Y8 p
  23.     }
    : v& ]  U$ H* B( X# P
  24. }+ B3 t7 G7 w" k# o
  25. , r/ i$ F) ?# U  I( u# Z
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))" v) b) I+ g* ?' L. R* C. R" R
  27. static void check_value( char *function, int value )$ L/ k6 |9 F5 c) Y6 {- {
  28. {* o* b4 F" d/ Y: B8 W- ]: Z: w
  29.     if (value == 0)( j# @# |! v% H7 L. V
  30.     {3 j$ @3 M. z; x; O
  31.         printf ("\t%s is NULL\n", function);" `) |  g3 |2 C0 P7 Y2 \' D
  32.         printf("\nExiting program!\n");
    # ?: R) a4 l7 G+ l
  33.         exit (EXIT_FAILURE);      V1 G$ N9 a, |9 y
  34.     }
      e0 }9 E  C; F) F7 s( f
  35. }
    2 S6 r, E$ l9 Z& V7 W

  36. 4 L7 y% K, O  _6 ~6 p, |: q) s% O( [
  37. % I8 u6 V! j: J7 X" T5 {
  38. static void do_it(void)
    ; f9 k1 n3 l% K
  39. {
    ; _! V/ I. s  K  A
  40.     int 3 }: @& u/ v2 N5 y' Q/ \
  41.         attach_types[1] = {1};6 X( W3 y0 D3 ]+ p1 M  n- w
  42.     tag_t , k0 \$ {$ E  w8 M9 e2 M4 D) d
  43.         rev = NULLTAG, . z5 c! Y3 a8 m6 F% p
  44.         process_template = NULLTAG, 4 w: s7 _4 X+ W1 V$ h9 k: z
  45.         process = NULLTAG;
    ; M* r5 z! a8 p0 \$ G0 F4 A4 V

  46. / p! j: K; A5 ]7 M* G( i
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );2 E% {3 U# w5 G& ^
  48.     EXIT_IF_NULL( rev );
    2 u, a5 k( \4 A% S9 Z; q7 u9 I
  49. . |# u3 L( l0 m$ g8 {
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    - J" r4 Y" M* K( i
  51.     EXIT_IF_NULL( process_template );3 x: j  M/ g/ f3 T" [' v3 n
  52. % W4 w; |% n% U  h0 u7 t# G

  53. 3 |# u$ F: \: W& [2 Z; f
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    . y* j% g& ~7 P# P* c9 p# D9 b
  55.         attach_types, &process) );- N2 z4 x9 @. g0 ~2 I
  56.   U; r( ^: M* v& A; x" q
  57.     EXIT_IF_NULL( process );
    1 u3 x. }7 X+ X
  58. }
    * d- k$ R4 x( e3 q( ^( W
  59. 2 G5 H" d- w, b: n0 W0 T! h8 w
  60. int ITK_user_main(int argc, char* argv[])
    & m. ~' e( }$ b1 R0 i  a! f" H% C
  61. {3 \' R$ }* J8 i9 C# i  Y6 N. R) e* k# ?
  62.     int
    , R- z7 M3 V/ v- K; g& C- H
  63.         status = 0;
    4 O  P( t# u3 J7 a0 l& e
  64.    # {. D) L0 p( o  m% G$ \
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    3 m+ U9 O* a8 Y; V! i, o2 M7 b0 i) K
  66.     status = ITK_auto_login();
    ( Q# g- r. b% Q4 G; d
  67.    8 [8 m) V1 n2 y" w4 D) L
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    ! O& Y& w( n& u- p, A: w
  69.     else
    , h' G8 ^. V/ f5 x
  70.     {9 {9 j* ?' S9 g* l
  71.         printf("\nLogin successful!\n\n");% Y' r5 l0 ~, q
  72.         ITK_set_journalling(TRUE);
    ' [* _- \# Q# w+ ?
  73.         do_it();2 [( R( h* e( Q8 r- [8 d" O& Y: i
  74.     }
    7 I# _! d- E6 Q  ^
  75.     ITK_exit_module(TRUE);
    ( `/ U# Z- c, ]/ _
  76.     return status;
    1 ]8 h7 v- s3 C$ L' e4 s
  77. }
复制代码

. D  G0 s/ m) o# q! y( X& P; h6 r/ l& Z6 U% B5 j' L( N
3 }) _6 B% O+ B7 n8 k  Q4 C
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了