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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

( c& w' F- i, F* X* @Teamcenter ITK二次开发源码分享: 创建一个工作流! q! `3 v4 g0 \

: B( C. d8 H  K2 _
  1. /*HEAD CREATE_A_PROCESS CCC ITK */$ b! [7 L! v6 j) p3 i# @/ D
  2. #include <stdlib.h>% I* Z9 [8 w( K% h# G1 Q' r# r( c
  3. #include <TCcore/aom.h>, x2 D) R2 q  {- {* a0 w
  4. #include <tc/emh.h>
    0 z, a# s# U0 ?  r* L: ^' N
  5. #include <epm/epm.h>& q2 g* k" P4 a" i- t% {1 y! _& d+ k
  6. #include <tc/tc.h>/ E9 \+ e/ K/ t6 Q! T/ X+ D3 g
  7. #include <sa/tcfile.h>2 j5 j; m+ M! x% V5 ~) {3 o' ^
  8. #include <itk/mem.h>8 Q0 Z, N3 e+ K" k' Z3 `* l
  9. 4 @( s8 @- U4 p9 f, J! Z1 E' `
  10. #define EXIT_FAILURE 1
    8 ?/ J1 m& K- j8 \& u* K
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    $ l# D8 Q. w) b2 t3 C' A, F$ P
  12. static void report_error( char *file, int line, char *function, int return_code)
    # x- B, e6 p& c6 Q9 r
  13. {
    0 |5 D+ h& v. a  _% L( o1 |
  14.     if (return_code != ITK_ok)/ ~3 m& ^, @7 e* A; ~; z
  15.     {
    7 A" Q% V( v7 _/ T0 |5 o
  16.         char *error_message_string;0 s" ?3 I0 Q5 R
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    ! Y# g# J5 q! p  F
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    # F$ d# g; h' d: M1 z" T, O2 t+ U
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    , x( a) J1 q" k  w, v7 `) r
  20.         if(error_message_string) MEM_free(error_message_string);
    ; I: u! O( D2 u- B$ ~3 s, K5 [
  21.         printf("\nExiting program!\n");
    / b  Q. q  P7 |2 w5 ~1 k+ N
  22.         exit (EXIT_FAILURE);    % {+ O' t/ Y+ X) F
  23.     }
    ( r# p" `) S/ j% [4 f4 z
  24. }5 h0 G4 O+ n: @0 K' Q$ q- q

  25. " \# O6 g' @( U( A7 U
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))4 z2 |# Q; Z. u( v# |# w9 ~
  27. static void check_value( char *function, int value )# ~- `5 L; E( _% q+ a
  28. {
    % n4 N/ V' e7 g" N& z9 M2 ^2 Q
  29.     if (value == 0), V  o  y% y# @; x; f3 `: p
  30.     {
    ) ^; m( F* T! b. ~! ~; B
  31.         printf ("\t%s is NULL\n", function);
    2 H+ T' ]0 J* R% p5 H6 J+ y' U
  32.         printf("\nExiting program!\n");
    ) X9 d# r6 u, q, O; a  h- c; w9 e
  33.         exit (EXIT_FAILURE);    4 }' C* ?5 x$ E1 ?! j6 f" }$ \
  34.     }9 D: F# i7 y; j# \! d/ q% I
  35. }; ^' E. U8 Q3 n$ z

  36. 2 F9 H  ]/ r: ~

  37. & b7 p: I9 R9 Y+ R- v5 g  |+ V
  38. static void do_it(void)
    1 ~- Z' w. Z3 c7 _% P6 m
  39. {
    ; U8 A. k0 A; i  ^  l
  40.     int 3 H# g4 ~3 T! a! g+ P; ?
  41.         attach_types[1] = {1};
    & E- l6 P, M# r$ i1 R
  42.     tag_t
    0 T" h2 [) H! j
  43.         rev = NULLTAG,
    7 ]& G( P/ L3 N) \& y6 j/ p8 A
  44.         process_template = NULLTAG, 9 U& h* V9 S# T" _5 U
  45.         process = NULLTAG;8 o" a6 P( z2 T' \0 ~8 ]
  46. % ]  S1 L# \3 n# E4 c. V
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    ( r1 \+ v% A8 j" X4 C
  48.     EXIT_IF_NULL( rev );
    " [* |; G0 \9 a6 I$ I

  49. 9 G- L1 m+ @: ]% w/ ]8 M: X) @: i$ M
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 2 m$ L2 {4 `* `/ i
  51.     EXIT_IF_NULL( process_template );
    $ c1 `9 o4 O; e
  52. 6 B9 M% y, ]( _. ]: f

  53. + s0 d8 R0 B% ]2 A- |% \$ p
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    ! w5 o* k; \# O- p- e9 X- L9 ?; [
  55.         attach_types, &process) );
    4 H; D, g7 a) F. a
  56. / W2 [5 v$ S9 K; V3 k  Z
  57.     EXIT_IF_NULL( process );
    3 W, G8 a  F- o& ]( ~% x. W% u$ A: R
  58. }
      I2 I, P. Q- y- p) E: l3 q( r

  59. - j0 O; q4 W; t( x& u( _" c
  60. int ITK_user_main(int argc, char* argv[])  m; l/ c: t7 P( J6 w, m. {3 u
  61. {  Z% M7 t' e6 {: P7 R
  62.     int
    & T) x& E7 g: F2 i: t( y
  63.         status = 0; 1 m0 s; s/ e0 z: u) Q" K  ^$ B: d
  64.    ) I( i+ J$ `* W$ Q! Z
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    % B& b4 g+ l" U# C8 @) q( X
  66.     status = ITK_auto_login();; I2 I" u1 V2 @1 U" L$ u
  67.    % `. M0 v6 m3 _9 ^( p# L9 t9 H
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");) D3 [8 }# k! N2 {
  69.     else
    3 R# w5 @- O; x. s6 q# p5 @& W" G
  70.     {
    1 h$ s1 ]* N" J7 M7 _8 ^' z
  71.         printf("\nLogin successful!\n\n");3 c/ e' ~% k- B* D, L
  72.         ITK_set_journalling(TRUE);- ?' h% |+ c. |! n# }+ a
  73.         do_it();3 L; L  b0 |; m1 h/ W
  74.     }
    & l2 c: ^5 Y" F/ X0 F/ E# t5 C7 u
  75.     ITK_exit_module(TRUE);
    + P; A" t' S# W* q) z) v
  76.     return status;) z  Z$ K5 N% X0 O% T  D' U  e
  77. }
复制代码

: H1 t  z" K9 v& b! Q% n1 Q. ?( P6 l, w/ d5 ^% u2 V5 x

7 i+ d& ~' D+ f( G5 x6 E
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了