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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

0 P- z# d8 p7 I  G; Q& cTeamcenter ITK二次开发源码分享: 创建一个工作流
" K- x. [2 e7 A. Z1 H
' C1 l# g+ _' g; l8 f
  1. /*HEAD CREATE_A_PROCESS CCC ITK */5 `3 O9 r. C# R2 |
  2. #include <stdlib.h>
    ( |' U2 G: m0 y2 A' S4 n- @4 q
  3. #include <TCcore/aom.h>/ W4 j+ c' U' V8 X* a* L+ u" j- D
  4. #include <tc/emh.h>4 _# R2 A; m# a1 ~7 X7 `
  5. #include <epm/epm.h>
    ( |8 W, q4 C" ?$ v$ W1 u
  6. #include <tc/tc.h>1 }$ d/ B6 }7 r. @( N) u$ i
  7. #include <sa/tcfile.h>
    % R) @; |, I# f( \; x1 X8 u& C5 c3 i
  8. #include <itk/mem.h>9 i( s2 h7 p& k8 [/ L; M5 b

  9. " S3 C) N2 y, V; f
  10. #define EXIT_FAILURE 1
    ; J+ U- n- x; s: b( v5 w
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))& U$ h; G9 V" ^' D" Z/ k! ]& Q
  12. static void report_error( char *file, int line, char *function, int return_code)( {1 R" e; ]- n7 A% E: ]- t4 Z
  13. {
    ! J7 Z2 ~  R. \  P: Q( O/ p
  14.     if (return_code != ITK_ok)
    . W  E- J" }6 o- `
  15.     {
    , q5 Z- x/ p' s3 f" C
  16.         char *error_message_string;
    0 t8 Y1 E" Z+ w$ |; a
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
      _3 g; e' @8 D9 N: b! ^
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);; U/ Z* K" T! q4 O4 Q* l( _1 T+ [
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);; _! P  g9 ~  c  _. [
  20.         if(error_message_string) MEM_free(error_message_string);. u% o+ C, Z* ]1 i7 y
  21.         printf("\nExiting program!\n");
    6 K3 Y  b0 V. Z6 ?6 Z
  22.         exit (EXIT_FAILURE);    # E2 \$ K. O$ Z/ V& s
  23.     }
    , }. y" F0 U8 W4 F- q$ c
  24. }
    5 v0 D2 c5 a' f: w2 n

  25. + d9 Q0 H4 C" h. [9 C+ h0 o
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    0 j& G& V! U1 z6 \/ O* ]
  27. static void check_value( char *function, int value )! `$ t3 P1 \7 V9 c  P, _
  28. {8 O. f! H9 y! N# M$ y/ P
  29.     if (value == 0)
    5 @5 ^2 ^1 j* a4 I& O; x
  30.     {
    1 L8 g4 B7 `9 o) A; U# ^
  31.         printf ("\t%s is NULL\n", function);) }( \; |3 x) P* I5 ]
  32.         printf("\nExiting program!\n");5 n+ y, W* {, {6 [% ^
  33.         exit (EXIT_FAILURE);   
      l6 [3 F1 n3 ]1 F
  34.     }
    $ `+ x# \2 `' e4 o# v$ C
  35. }) \5 I( d6 J/ V" j3 [- L+ Y

  36. ( T) G2 h0 K# c+ D$ A
  37. ; V3 \# D" d8 n
  38. static void do_it(void)
    : k& e8 m5 m7 w
  39. {$ x$ Y9 ~- s' o$ f
  40.     int 1 ?/ X6 W8 n" S# ]
  41.         attach_types[1] = {1};
    / H+ `9 W: L* g4 H6 q# u* l
  42.     tag_t
    ( c( P6 [8 r* ^# v, R2 a3 a& D2 U
  43.         rev = NULLTAG, 4 A' j8 R9 A# V1 V( i7 J( ?
  44.         process_template = NULLTAG,
    & f+ {+ e( {' F$ W$ a
  45.         process = NULLTAG;
    8 K0 g$ _6 `4 W5 P- \
  46. & _" N1 |) [1 a$ V
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    . b& Z& W$ _4 X% k- P3 N, f- j
  48.     EXIT_IF_NULL( rev );
    9 W' a; ^. Q5 V1 n' k, i  I1 }
  49. + _2 d7 Z( u" z
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 7 p3 n  u0 Y3 B2 ~: m7 e
  51.     EXIT_IF_NULL( process_template );2 C$ h$ w, b: N6 o; W

  52. 3 Q; K; s3 V/ b* V# Q0 |

  53. 3 K/ ~' }; i# u: w. a9 S
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 9 N4 ~/ M  x9 j+ C: @/ r# H
  55.         attach_types, &process) );8 d. j- H# L! C( c
  56. 9 G+ \5 f. \# D' m3 G0 t, U
  57.     EXIT_IF_NULL( process );/ H% S9 p' e8 @) y# n
  58. }( o4 s3 _- r! W2 k4 s
  59. + b$ H# I4 H8 q; W; U- V3 k( n- v2 n
  60. int ITK_user_main(int argc, char* argv[])
    3 T# T# b( G4 X1 I3 W1 ^: N
  61. {' I) v* [: R" D- ~- i; u9 h4 z. V. G
  62.     int
    % @5 W6 }# J! k& C% M
  63.         status = 0; 9 c, v# X: K+ ^; C2 k' E# R; E
  64.    7 p) y$ [# q! {% K0 s, G. h8 z
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    . N5 W5 O5 O7 b
  66.     status = ITK_auto_login();
    & b, f2 a7 b# r' v8 h
  67.    6 _. ]+ a1 l; W& A+ _7 z- @
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");1 Z7 Z7 m3 \0 M3 G$ x* v' s" E
  69.     else  ]3 x4 p" _) \% f
  70.     {* F7 W- y7 r- B% k
  71.         printf("\nLogin successful!\n\n");
    . l- S3 a8 ]* i" I
  72.         ITK_set_journalling(TRUE);. T9 _- ^8 L# A  i/ ^
  73.         do_it();
      Y, R/ m/ E  x& p# j/ D3 j" l3 P1 m
  74.     }: j8 Y8 R% |6 h
  75.     ITK_exit_module(TRUE);5 K# t, q6 m+ f, p5 q
  76.     return status;7 a) i7 Y2 C0 u5 B1 {* z9 w
  77. }
复制代码
# d) F! B& e( E- ^" F" b

& F6 [7 R- i/ q) @& y0 _+ c/ ]- ^( _& @2 G
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了