PLM之家PLMHome-工业软件践行者

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82172
QQ
发表于 2014-1-15 19:30:29 | 显示全部楼层 |阅读模式

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

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

x

: V6 M' l9 I- d8 jTeamcenter ITK二次开发源码分享: 创建一个工作流) d5 L9 a1 f+ P
+ e% h- I/ |2 e1 g# D* B! u
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    3 Z8 w: d. L  Z' P- d
  2. #include <stdlib.h>: L$ S& T- |' y; p# h4 j
  3. #include <TCcore/aom.h>
    & ~  U' D# W: _! T+ X, J
  4. #include <tc/emh.h>- u( g( h% q1 ]7 L; M" D+ ]
  5. #include <epm/epm.h>
    + I& p. ?4 m" F% L
  6. #include <tc/tc.h>
    ; w' Q, l' S& o6 X! ^
  7. #include <sa/tcfile.h>
    ; h3 E! y: Y" x! @3 h+ F0 h1 M
  8. #include <itk/mem.h>
    5 M- p. B1 X$ e: Y9 k, i" r: s3 `

  9. $ T9 Z: ]; b+ \/ c: @
  10. #define EXIT_FAILURE 1
    - I6 \; H6 z4 }3 W; E
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))  n# a: u- V4 w" r) K! `. j( a( d
  12. static void report_error( char *file, int line, char *function, int return_code)
    7 e' L* q, m( p' a4 p/ W
  13. {' \, v. Y( s" \6 H
  14.     if (return_code != ITK_ok); O; n( W. d, P! I$ q1 B7 B! z% b
  15.     {
    ) @! z$ o" o8 y% s8 r
  16.         char *error_message_string;
    : g, u! ]8 s* j9 G) S
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    # {( H: E9 Y  W* o# [) q: f
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);5 C0 u+ Z6 e  Y: o& o7 [
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);1 ^; q# P. I, `# [
  20.         if(error_message_string) MEM_free(error_message_string);
    6 W. a' G$ x/ U0 A1 M3 Y  g
  21.         printf("\nExiting program!\n");5 }/ j6 V1 P" }# J! ^- M
  22.         exit (EXIT_FAILURE);    + F& E; l6 d; y& F9 S7 X% L& W2 w
  23.     }! y( |4 Z' |: t9 `8 l/ j- g* }
  24. }1 k. P, U; U4 f1 I; I# k7 a" y

  25. 0 ~* b4 I# b6 N$ [, n/ ^  S9 i
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    8 b) X- U. L% G5 i9 g8 u8 @' x
  27. static void check_value( char *function, int value )- a; n4 z9 f- _2 z1 {6 n
  28. {8 O3 N1 B' U* V: o/ T# R% S
  29.     if (value == 0)) E( p( ?* x5 J% ^7 w
  30.     {7 g2 u3 t2 E. U- g0 [
  31.         printf ("\t%s is NULL\n", function);# ~. q+ X5 X$ p7 n6 {
  32.         printf("\nExiting program!\n");
    # K% `) c$ y2 g$ y  G$ r
  33.         exit (EXIT_FAILURE);   
    " c6 S, k4 F* X8 ?7 s4 i
  34.     }
    ; f. s$ n0 S9 E
  35. }
    6 H+ a& t+ o# ?& r

  36. ( O, t2 V( d7 Y( e

  37. 3 u: E7 U8 b0 q/ L
  38. static void do_it(void)& v; Z9 Z8 N2 a+ a) Y
  39. {
    * h6 A/ X; |3 `$ z; o( u- V' t# x1 O
  40.     int
    " v6 U2 S6 L. y% [# w% o% x8 B  D
  41.         attach_types[1] = {1};7 O* u& m* I2 K) u; B0 H) m  C
  42.     tag_t
    % O9 P% L0 E; W% {
  43.         rev = NULLTAG, ' H5 @9 C, ]; ?) Z* T
  44.         process_template = NULLTAG,
    * L7 X3 B1 r2 i* V1 i0 `) R
  45.         process = NULLTAG;
    + [5 ^  q7 @4 m0 c: w
  46. + a) b) [& p. [. W9 ]
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );& f% t. ]- U9 M! x2 Q
  48.     EXIT_IF_NULL( rev );, b6 Z. I( I1 R8 \- ^& [0 @
  49. # e( ]! F) h# }8 ^4 l& n
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 0 B0 b2 t& o% e) R  ^' k3 s2 ~
  51.     EXIT_IF_NULL( process_template );
    & M- t3 @3 v: I  t! t8 M

  52. + s4 v+ Q( A0 l! C' G7 i
  53. % t3 J  d/ K. I5 L" b* s* p6 [
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    2 j4 L7 @3 a$ e% N3 q1 j- O
  55.         attach_types, &process) );2 j: j8 s- R; Y+ z

  56. - A% S# j6 b& _" M! E# O: J
  57.     EXIT_IF_NULL( process );
    , _5 F) C$ l& _0 Q
  58. }# c! I/ z5 b' g

  59. 5 h  u& `0 ]# q9 c' i3 C$ \, N
  60. int ITK_user_main(int argc, char* argv[])8 G; a2 V! R! _2 D* y
  61. {
    & ?' w* u# ]& n
  62.     int
    ! y# R' K2 @3 k# }1 N9 \. P
  63.         status = 0;
    / p0 B( ]0 {& U! o$ ^6 D
  64.    ) m: |8 t) U8 u% X1 ~( v
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    9 H+ D. |- n- F7 b
  66.     status = ITK_auto_login();9 z- Q2 x, `& o: q3 f
  67.    1 C( h) r( k' U
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    " o) ^* f% h' _. x; u6 g6 S
  69.     else+ C) N5 H" C0 F6 b( Z* V9 i
  70.     {# L0 Z, {  u; ?# q6 L7 d* _0 h7 p
  71.         printf("\nLogin successful!\n\n");" w$ n( }0 n4 \% D3 C- Y
  72.         ITK_set_journalling(TRUE);
    ; ?, _  b7 y* j2 ~
  73.         do_it();1 B4 _: x( z+ V. y( D
  74.     }0 P1 ~  z# N9 l! d. k0 I' j+ Z
  75.     ITK_exit_module(TRUE);
    , L7 V7 R9 d* ^* c
  76.     return status;
    4 S3 q! G; Q6 v4 N
  77. }
复制代码
! w' h0 s- C5 W8 P' N# A6 U. r; R: V
) P* g; Q/ V: G
& f# m9 X0 M2 w) X; B' _- R
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了