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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
' n  L5 a8 Q) Q9 Z$ c" l; @7 d2 b) `
Teamcenter ITK二次开发源码分享: 创建一个工作流- s" R  d3 h- J* ]& s5 d: k' ^+ U4 D
! a+ y, ?, u6 i, ?1 l/ w2 H
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    7 h5 @4 d" L9 g
  2. #include <stdlib.h>% X- P5 s# y6 M, o% \$ e
  3. #include <TCcore/aom.h>8 @+ Z) U  e$ ?  a' Q
  4. #include <tc/emh.h>( i9 g4 x; o$ l: u# p% r1 [2 w
  5. #include <epm/epm.h>
      R( k, t6 k* y4 c+ G
  6. #include <tc/tc.h>
    1 N  S4 u3 Y, x, c0 k% [
  7. #include <sa/tcfile.h>
    4 E; M% s$ t" ^3 e7 s5 _4 l, ^# d, y
  8. #include <itk/mem.h>
    ' M, M  @2 {' Q, V9 Z0 E2 ]3 U

  9. 9 Z) N" T8 E! I4 V% D" ?: I
  10. #define EXIT_FAILURE 1 & Y" x8 @/ F# R* o5 k' O
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    . I- }4 ~5 o# W" ?. W- H: n
  12. static void report_error( char *file, int line, char *function, int return_code)* H# H) R% x- I7 X( P7 e2 g6 k
  13. {# V" E9 x3 R  k9 G# |, O
  14.     if (return_code != ITK_ok)
    1 ?$ `- M3 X$ v
  15.     {
    ' Z+ w9 O6 b2 p" L% L* ]# a0 {
  16.         char *error_message_string;. X* q* D. |5 b# q' t! R
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    $ G. v3 K' R" E5 F+ _) d
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);# \& R. Q" A8 m
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);: j9 w" O8 y/ H8 {4 N1 }) |  \
  20.         if(error_message_string) MEM_free(error_message_string);! q% ^2 Z7 ~8 q) |2 f* ^3 c
  21.         printf("\nExiting program!\n");
    ( V: @0 [2 \5 F6 k& e# ?
  22.         exit (EXIT_FAILURE);    0 }  G9 D" ^' M
  23.     }& N% }' f3 z& `6 y- `) X% x
  24. }* p( j4 W! _$ Y8 K* x, X

  25. ' I6 H# H# b4 y0 a+ t+ n' E8 w5 M$ y
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))8 \% V: {! o. g4 @* w/ F
  27. static void check_value( char *function, int value )
    : N7 ~( w/ E5 t
  28. {
    & ~) q5 u" _6 I# O3 r* G8 s5 z) @7 r
  29.     if (value == 0)
    3 h* g4 d1 H2 j6 ~/ ~/ z0 b" v) y
  30.     {
    5 m! ^! _) J; E( O, s! ?; _0 Y! r* F
  31.         printf ("\t%s is NULL\n", function);! p* Q! y4 S( Z/ h! u& U1 t' B, N
  32.         printf("\nExiting program!\n");, T/ D2 y! {* B! k
  33.         exit (EXIT_FAILURE);    . [: U: Z) g* |( E- v- D& R
  34.     }7 b  z+ i) ?/ I0 ?4 ~0 J2 N6 M
  35. }
    $ o- R+ \% f4 h4 r

  36. & d* {! L4 S) B$ h

  37. # e! j/ B( O& ^
  38. static void do_it(void)
    6 i7 u8 Z- p# H+ O& b8 }# f
  39. {. \/ S2 o$ Y: p$ i
  40.     int
    * M0 C8 ?2 f3 s5 l' v$ Z* M8 ^
  41.         attach_types[1] = {1};
    * c& U3 D$ s0 V, w( \
  42.     tag_t - R6 T- ~6 ^' ]6 v, ?) r3 M% w8 m
  43.         rev = NULLTAG,
    9 \" N  y3 |4 M9 ~! Q8 _+ I& D
  44.         process_template = NULLTAG,
    , l( F. [+ a$ u" l0 S8 H
  45.         process = NULLTAG;: G% g4 w3 Y# y) E: X" A

  46. + K& |+ H. ?4 k/ ~/ F) C
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );, m; W/ f: j3 {
  48.     EXIT_IF_NULL( rev );* H" D9 }0 i1 Y* U% ?) O

  49.   A0 T; t7 u& G* Y; Q5 K4 n
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
      U$ c" J* n* d6 D
  51.     EXIT_IF_NULL( process_template );
    ; @8 x3 R& v% J: C# C4 p/ P4 Y
  52. ! w7 c3 x- E: \6 z# e) `. ^

  53. # @1 |% K0 A& f
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,   A, {1 k; o7 s6 ]3 F
  55.         attach_types, &process) );3 |" Q6 w- [# W% B/ w8 C

  56. ) B7 g5 M* O" ?
  57.     EXIT_IF_NULL( process );
    * z: N6 C' K2 N! P0 P& _# s8 o$ z
  58. }# W% p3 q" Z$ T; u6 [

  59. % B7 p) G, Q; q7 T, V$ d+ K6 B
  60. int ITK_user_main(int argc, char* argv[])
    # b- b4 [: ~0 c* U. F% ]
  61. {- w6 h9 R0 x$ a) d
  62.     int
    $ ~8 J; P; K' H9 ]9 T* [: `4 B+ P
  63.         status = 0; 8 x* M% p! u0 W" c$ G
  64.    - ^& T7 N# `/ g$ y6 a
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );* M: ?' Y9 A0 b+ [( {- d: G# N
  66.     status = ITK_auto_login();6 Y: }  ^! a1 X9 H% y) j$ e* N7 U5 I
  67.    # L3 @- T% p  j4 S- f
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");7 A6 j5 X# C) p8 w: N
  69.     else
      x. M7 ~/ Y- h  C5 x, c
  70.     {
    6 W# J. ?: `* Q  E
  71.         printf("\nLogin successful!\n\n");
    5 h+ k( L* A) p6 S( }$ x
  72.         ITK_set_journalling(TRUE);! V2 F4 A% Q0 Q
  73.         do_it();
    " D) a( _5 u+ v( e) b# A
  74.     }( \: `  i3 L5 b7 U" b( j
  75.     ITK_exit_module(TRUE);
    . L% K! y0 `7 x' G: u! }
  76.     return status;, }0 C( p. y1 J/ r9 C& k9 O/ B
  77. }
复制代码
# v0 P# n3 Y4 E* x
2 _- M) _9 e# K) I* i

- I( L1 z) r- M0 p0 E, b
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了