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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
* O/ l$ C, h) D' d- G* `
Teamcenter ITK二次开发源码分享: 创建一个工作流( j# y" }# B# t, H( S0 ?$ B# N
  v- l0 h" u, i4 j
  1. /*HEAD CREATE_A_PROCESS CCC ITK */! Z$ u# m# C7 h' a
  2. #include <stdlib.h>  {! I8 o$ B% s# u) [& H& T5 V) F
  3. #include <TCcore/aom.h>
    ( s, M1 z) i: k' s' ]9 W
  4. #include <tc/emh.h>, }2 v& l4 u' {6 M2 N( x6 x' v( x
  5. #include <epm/epm.h>
    $ b! L$ [( Z; d4 s0 a8 Q! r0 X: K, g
  6. #include <tc/tc.h>
    # r/ H- Q- G( L0 d0 \9 ?! ^. i9 Z
  7. #include <sa/tcfile.h>+ @/ `9 g$ G4 g+ D, m! i
  8. #include <itk/mem.h>  U. H1 N) o5 A. w* D

  9. - O# \3 J/ z% S7 A
  10. #define EXIT_FAILURE 1
    , M( c! E" I  k; f4 Y
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))) R) h- B& K7 C- J  }8 ]
  12. static void report_error( char *file, int line, char *function, int return_code), H* U+ L( |3 F$ t
  13. {* F% g! Z! t  R
  14.     if (return_code != ITK_ok)# }( Z: b5 s# J' a- [  O' F
  15.     {
    1 @% y9 Y( {$ n7 e2 Q: v9 |
  16.         char *error_message_string;7 v. G/ b& [( R0 F) x
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    * i9 a3 ~5 P  i$ s( R+ M; o7 }
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);& |* w1 T  z" P& d/ T
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    % n& u) f5 l. ~, X
  20.         if(error_message_string) MEM_free(error_message_string);
    6 \  q! v1 j+ ]$ K
  21.         printf("\nExiting program!\n");3 q( B5 f% F% m. d: u$ d2 c8 h
  22.         exit (EXIT_FAILURE);    , k! o1 |3 R. V( d
  23.     }
    7 }; p' }# t" w
  24. }
    7 X2 K% e+ B+ h4 o  w

  25. & z! Y+ }0 g2 \2 p0 R
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
      H/ i& K9 K3 O: f
  27. static void check_value( char *function, int value )+ P2 i8 e3 e5 k- o2 `9 T
  28. {& d. ]7 V% Q# l! m8 A  A# D
  29.     if (value == 0)
    % |1 f6 v, o: }) ^* X$ x: ~3 Z: }
  30.     {3 Z" ~: x0 r* p5 ]% s5 i* l* C
  31.         printf ("\t%s is NULL\n", function);
    . `; o( B; i* ?8 c6 Q1 [  D7 I8 n! n
  32.         printf("\nExiting program!\n");( T; H% B- y, d5 \/ b* A0 d
  33.         exit (EXIT_FAILURE);    & ^6 O* @$ h  n) l
  34.     }) i9 L+ D5 C2 Y' n# P" i8 N
  35. }
    4 r0 j" Z* ?& t+ m1 G
  36. 6 ?3 I# W4 i+ _) @
  37. 2 d8 b3 j6 m* y; i* w
  38. static void do_it(void)3 o! U, {- ~0 O5 O* W. W1 a( F2 x2 t
  39. {
    8 m! T: c* D# @9 w
  40.     int
    ! M7 g1 G' W3 [6 |) u# b/ A
  41.         attach_types[1] = {1};; `$ V, ~, |5 W6 D  f
  42.     tag_t
      f; [& C3 C6 q0 S) Q" d6 a2 ^6 x
  43.         rev = NULLTAG,
    % k  S# U9 F; B# b5 s) C3 g
  44.         process_template = NULLTAG, " m( v/ m4 C: _9 P
  45.         process = NULLTAG;/ J* k( P' O  a9 b; p
  46. ! U3 [% c0 |" T% X, Y- c, {
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );  D1 F1 \, d# K: J
  48.     EXIT_IF_NULL( rev );9 q6 D6 e- p( B# ^1 [5 Q4 K
  49. , V9 N$ W. y, W2 P) P- u
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    ! W3 `9 K$ N4 K- d7 t. H- D
  51.     EXIT_IF_NULL( process_template );
    4 @6 p# i9 {+ E! |' ]4 _+ P9 B
  52. 4 `. L8 |7 L# x2 t, ^& @

  53. ; H! c4 }+ {- q+ `; X$ \3 c- j, y
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 9 }+ f. i! [! U" i0 ]/ O9 l
  55.         attach_types, &process) );
    ' q3 S& F$ ^' k+ g& U
  56. 8 s% d9 \" z8 \4 F0 l0 m$ T$ ?
  57.     EXIT_IF_NULL( process );3 k! `7 b. k: z4 {, O" V* u
  58. }
    * Y' G- R2 _* N# R$ t9 L7 v

  59. ' J' U( Z* T/ r# y: \
  60. int ITK_user_main(int argc, char* argv[])+ w! O- r7 I& b! h* c/ U
  61. {
    , S# a  S6 m6 q" |+ n$ J) k9 |
  62.     int
    ) d- S7 n  }! [5 B: a
  63.         status = 0; 8 S% i4 q4 F6 T# P
  64.    $ W' ?2 Z/ {5 c7 h1 t6 q0 g
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    8 c; F. f8 p) ?4 D+ Y
  66.     status = ITK_auto_login();
    1 M$ I# H+ c$ d( E
  67.    
    * Q6 i4 m8 z/ c6 S( S
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");3 \* `8 P3 Y/ T& l/ p
  69.     else9 Q, q' y$ j) a  F( B) w. n* z
  70.     {1 S: g) I% c! k- L% ], Q' J/ U0 }
  71.         printf("\nLogin successful!\n\n");
    & p( }. r, {2 J3 h# X) I6 [) K
  72.         ITK_set_journalling(TRUE);+ l1 }& }7 I5 ]  ?
  73.         do_it();  ]+ Z5 x8 |* }$ Z% q7 E9 O: w
  74.     }
    - s8 e! P% w) T0 R. v$ k# O
  75.     ITK_exit_module(TRUE);
    9 B2 e; I3 Q- B' q& Y9 A( d" e
  76.     return status;
    0 D# |& f3 ^) d) c% @7 J
  77. }
复制代码

% N' m0 V9 ^# ?0 D: Q2 X9 x) B0 i8 A; _1 d; l, P. }' J
& n7 h! Q2 r6 |* V9 w
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了