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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

: y- R1 _' F1 s' x/ y# bTeamcenter ITK二次开发源码分享: 创建一个工作流* x( v% A5 G5 v/ }" u
1 l. o  I$ B) T
  1. /*HEAD CREATE_A_PROCESS CCC ITK */1 F5 F9 e& Y5 ~0 i
  2. #include <stdlib.h>4 ]& n/ ~, f; Z; g( v: X) G/ z
  3. #include <TCcore/aom.h>
    : M& ]5 D# U6 i
  4. #include <tc/emh.h>
    ' o! f0 t3 |9 D/ c
  5. #include <epm/epm.h>$ |, `+ b8 \+ m, e8 m0 |: Z
  6. #include <tc/tc.h>+ \- K3 U/ I* n. j" z  ^  B
  7. #include <sa/tcfile.h>3 ~  ~3 c0 e6 b% o  e1 O# x
  8. #include <itk/mem.h>
    8 Q* @% [' J8 Q! P% m2 o

  9. ( W2 ?5 y3 F+ t3 c! B- W+ |
  10. #define EXIT_FAILURE 1
    * I% u. ?( j$ O& V
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X))): t% `) R( r* [  K' U! J% e0 K
  12. static void report_error( char *file, int line, char *function, int return_code)+ n) f2 l7 {% v3 ^$ N
  13. {
    : \) Y, y, b8 n' G  o2 A4 O
  14.     if (return_code != ITK_ok)0 a; @6 m4 p* J, r- f1 s! e
  15.     {
    ( M% N4 H" Q6 [! L
  16.         char *error_message_string;+ Y% N8 }' ~7 E. ]% Q
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    ; z1 R8 Z1 m) }
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);8 L' e" k6 }! }5 F8 F) u$ }
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    ) h0 p. L1 h" q
  20.         if(error_message_string) MEM_free(error_message_string);+ W; H4 ]) I4 r4 k0 b; c% T
  21.         printf("\nExiting program!\n");( p) u3 Z# m2 B1 m% X! ~
  22.         exit (EXIT_FAILURE);      V9 R% t+ f' U+ L$ ]# n
  23.     }7 C7 @& B1 Z6 H) ?1 K! P9 x
  24. }) ^2 n, T+ J! D( o2 |
  25. ; V+ }0 ^+ k2 y3 B; `# a  C( u
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))/ c# [$ I3 h3 u* ^9 [
  27. static void check_value( char *function, int value )) s# Q# N+ o, _
  28. {
    / T8 n0 a$ U% \* {1 @& B0 l, V
  29.     if (value == 0)6 o/ {# C. O2 N
  30.     {, z/ b% P7 ]+ I% ^5 E( U; m
  31.         printf ("\t%s is NULL\n", function);
    / h- R  p% ~* d. m/ \+ v5 P( ^; ~
  32.         printf("\nExiting program!\n");0 Q* k; t% D  Z; i
  33.         exit (EXIT_FAILURE);   
    - J% u/ Y4 T6 ~8 h" ]" ]
  34.     }
    ( v) U0 |4 q+ I% l: W: K1 v. I
  35. }) [* Y# l) C$ I; g' X

  36. 3 M; ~& Q5 }5 j. m1 Z2 S
  37. & y7 F, N* T' V5 C! o6 F$ v
  38. static void do_it(void)
    % N7 c" F0 a& T: L0 O
  39. {" Y  {! m" J; [0 z( S$ L' n0 f' Y
  40.     int # g/ c5 U) F& D3 e: L
  41.         attach_types[1] = {1};$ Z# {: T: g3 S$ B9 W* A) U
  42.     tag_t + ~/ Q5 h8 X+ ?3 l( V9 u; `& [1 `
  43.         rev = NULLTAG,
    / N1 x# s5 P* c+ j. z) g
  44.         process_template = NULLTAG,
    0 s& b' g' q6 }. U" A/ P( C
  45.         process = NULLTAG;
    * H3 N# Q: t0 I$ \2 {
  46. . k" C0 O( K' L5 _; O# `6 T% Y" M4 q- h
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    ) W! Z4 c, ^; a  y3 i
  48.     EXIT_IF_NULL( rev );
    % @7 }$ n3 d& G' s

  49. . Y  q. V/ X, Z/ ^
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); , o, `8 l3 A2 s
  51.     EXIT_IF_NULL( process_template );1 F' Y) ]  w9 j1 U# `
  52. # j4 h3 ?2 [  K& |7 r

  53. , L9 `& w( o/ |5 ^& U5 L
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    5 Q. [( ]- e0 v
  55.         attach_types, &process) );
    6 R% U; v/ Z: D- M5 W

  56. ! l" z8 s* r/ A3 d6 p- U# H
  57.     EXIT_IF_NULL( process );
    , D: v/ e9 w' `; x4 n6 E: N  ^( L
  58. }# N, Q+ N! u" T- F9 b0 q4 d

  59. * u, a; c# O2 X$ Y- X
  60. int ITK_user_main(int argc, char* argv[]): h5 h  I+ _/ F+ C9 [
  61. {+ A9 g) z' w8 w+ f" t8 l6 g9 B* M8 j
  62.     int4 s$ R' L' S* S9 {" O
  63.         status = 0;
    % x, y/ b: f4 E& O4 z9 Q1 X
  64.    , l, V/ M, O* b' D' x  t( N: l
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    % s4 o, ]9 r6 J( o" z
  66.     status = ITK_auto_login();: h( e8 t# Y9 x+ {9 [* f
  67.    & z6 [; m( [4 H. L  V+ R' m9 J
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    . \8 ]5 v4 N( y% ^* w' L! k. F+ R# ~: Z
  69.     else
    $ Y) q4 I9 ]/ G
  70.     {* ], t8 U' E4 p/ ]* r* Z. |5 p
  71.         printf("\nLogin successful!\n\n");1 \$ i7 R$ s2 N- L- L
  72.         ITK_set_journalling(TRUE);
    . n0 z3 x: ]1 J8 r: v* h
  73.         do_it();3 x, Q  E5 D3 P8 X5 n
  74.     }! U* s) m- M# n# `8 G+ `
  75.     ITK_exit_module(TRUE);6 [( |. ]5 G2 F8 G/ T
  76.     return status;# g& T/ a3 I$ z6 ~" P( C
  77. }
复制代码
$ r8 b6 |, O% {! z
) F/ u9 x* {- h! l: p
' d$ Y/ ?$ A; O2 q5 |6 \3 ^! f
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了