PLM之家PLMHome-国产软件践行者

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
. Q/ x) u$ j5 n) i
Teamcenter ITK二次开发源码分享: 创建一个工作流& C3 i- K+ L3 m+ e3 B
  R  N% i$ `+ c8 n2 t: a. B
  1. /*HEAD CREATE_A_PROCESS CCC ITK */: c" D- l- B8 T) r& v. r
  2. #include <stdlib.h>
    ; w7 `  Z* e- W! o6 n
  3. #include <TCcore/aom.h>2 L* @  c/ G/ D. M$ ~' U  k
  4. #include <tc/emh.h>
    ; \6 |' O7 d1 ~
  5. #include <epm/epm.h>
    + \: U- R" @) c- P% p
  6. #include <tc/tc.h>/ Z% j: y7 n- [5 v( Q$ F5 O
  7. #include <sa/tcfile.h>- z" ~) l+ j7 T0 U, v' ~7 A) T
  8. #include <itk/mem.h>2 k) Q8 d  [& I! b' G9 E
  9. " S4 i" d9 _- T. w9 C
  10. #define EXIT_FAILURE 1
    , g2 |( l; P# R' w" Q& ~8 g- R
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    . D0 k; n* Q* D
  12. static void report_error( char *file, int line, char *function, int return_code)% n) {+ \$ `+ G$ m
  13. {3 `, N0 p/ V* G5 g9 W; L
  14.     if (return_code != ITK_ok)0 V0 C& {  `, `5 r+ d
  15.     {4 s" x2 h0 b* ?" g
  16.         char *error_message_string;
    3 u) b6 X! G* m% I
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    * C; X' X, }! w& H% S, G; i
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);/ c; h3 `6 P4 ~9 @" B2 [
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    " ~0 n& s. |, m6 k% k4 R% v! z- C
  20.         if(error_message_string) MEM_free(error_message_string);
    : Z# h- ]0 E7 U( x' }% u
  21.         printf("\nExiting program!\n");4 J3 _' d$ w3 i/ o8 m" J; t9 ^
  22.         exit (EXIT_FAILURE);   
    6 N. s$ D% ]& b* e
  23.     }
    6 M5 m+ `1 Z/ z; D4 A0 l6 L
  24. }: q: X# H! n" W0 z& X! P

  25. ' x1 m; s8 }) m% Z) @# s
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    ) Q7 B0 \; z; x. B' ^
  27. static void check_value( char *function, int value )
    & u1 l' ^- M' }; O" u, h6 n& Q
  28. {
    1 w$ A, J, {' y: L  g$ _# F
  29.     if (value == 0)
    4 \3 |% s( ~9 p6 A
  30.     {# Z) y5 b# }) B" A$ e2 U
  31.         printf ("\t%s is NULL\n", function);* G$ c' i, \6 `" s1 u
  32.         printf("\nExiting program!\n");
    # c8 b6 I% t2 R
  33.         exit (EXIT_FAILURE);   
    " g/ ^7 G7 N7 w: @3 _/ A+ y& j0 Z
  34.     }- ~5 s. a* P3 Z$ Q' t, V( ~! e
  35. }
    ' x( P* t( q; D2 `/ E
  36. + B0 D/ P( ]: h
  37. " O* F/ s1 _- b$ w6 W; ?4 B: S
  38. static void do_it(void)
    4 V2 h) `  U% I  g$ n
  39. {) n: X! s9 |; m* F
  40.     int   i# F+ ]; O  `1 U) L' Q/ t
  41.         attach_types[1] = {1};
    : o1 F+ h, ?8 U" t
  42.     tag_t
    / j+ @$ C% I/ X8 X7 O# C6 R- x
  43.         rev = NULLTAG,
    3 d7 [9 o- Q! f2 \# n3 s  T4 l
  44.         process_template = NULLTAG, $ p0 D* C3 P$ E5 A3 s
  45.         process = NULLTAG;; N( g/ D3 K0 ?" e/ ^

  46. 7 ?) L) R9 g( B' Q3 i' w5 ~  u- J# x
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );4 Q% g. p: ]5 l2 t! D1 y4 v" c3 a9 D
  48.     EXIT_IF_NULL( rev );
    % b2 f' Z; ?2 h) G
  49. ) V, x1 d2 N3 y
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); , P& R# n! n% N6 q5 e4 x
  51.     EXIT_IF_NULL( process_template );& c# X/ _- b4 H8 S3 K

  52. ! y! Y  b6 I! P/ n, f7 w& I! A0 m; y
  53. , G+ k! |( g. S+ l) d8 i
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    2 H) J5 L6 J0 j# G5 P$ s
  55.         attach_types, &process) );, K* r3 ~/ ]! Q# w+ m

  56. . r5 S+ |5 j% [) `5 X! r
  57.     EXIT_IF_NULL( process );5 d! M- T& |% j' ~1 }
  58. }
    2 F$ R8 H" v- ^! g! n& h

  59. / o! }+ l8 O  a
  60. int ITK_user_main(int argc, char* argv[])4 z  b4 L0 ?, o1 J# H3 c/ E
  61. {
    " O/ S/ s: p. k% i5 ]  H& J
  62.     int
    0 M. z4 W5 Q. L8 a
  63.         status = 0;
    / w8 e" k' T* a
  64.    - r+ E2 I! {3 P, L
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );: ]+ [, h8 O7 _' n6 K% K0 v
  66.     status = ITK_auto_login();+ A+ b  L1 P2 Y: K3 i% `: ~/ U
  67.    
    6 N9 V  C5 z% S6 y
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");" p( o7 @4 |. j2 @
  69.     else4 r7 i. B  I) q5 W! g
  70.     {
    7 I2 J6 T2 K" F2 W+ x
  71.         printf("\nLogin successful!\n\n");' D* _% Z% g4 c0 @5 \
  72.         ITK_set_journalling(TRUE);
    ! ]* D  [3 A% u5 O& j
  73.         do_it();
    ! G; O) B" z  |( S/ I
  74.     }+ n# `) f6 ~& i6 c+ ]* c
  75.     ITK_exit_module(TRUE);
    % T" B/ Q  z% h# `1 K8 e' V  R6 m
  76.     return status;5 p6 }$ P  A6 V
  77. }
复制代码
& S: r4 H8 E4 B9 S, I3 w2 a0 P
7 W4 v+ M; |6 u( M
  L* c0 |  u3 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二次开发专题模块培训报名开始啦

    我知道了