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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

8 O7 F) Z% n0 Y8 J, n; Z# `  n5 dTeamcenter ITK二次开发源码分享: 创建一个工作流
4 _1 l$ X) N" }) {
0 k9 @0 y# t- R+ ?0 S& v8 p
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    , l& L# Q' g( w: F* w
  2. #include <stdlib.h>4 G8 J& V1 U1 I; [5 p/ A# L
  3. #include <TCcore/aom.h>
    . s. A# r3 J0 E7 ~9 `
  4. #include <tc/emh.h>" x7 ^* Z' X# {1 x
  5. #include <epm/epm.h>9 _% ]- X3 p9 y% L
  6. #include <tc/tc.h>: Q2 G5 C1 J) S& G2 T
  7. #include <sa/tcfile.h>2 j2 [+ _4 }" B- c  w
  8. #include <itk/mem.h>
    + \5 I1 n* _  J- P( Z

  9. & Q9 K0 t; J6 F9 v. i$ c
  10. #define EXIT_FAILURE 1
    " i  X) `" d* S/ i1 s
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))! s+ n5 i! K2 I4 S: d# \% ^
  12. static void report_error( char *file, int line, char *function, int return_code)* U, L/ h8 u5 w" [& q7 y5 Z
  13. {" _8 p6 }' C! d8 b' x
  14.     if (return_code != ITK_ok)
    - R+ M9 s5 Y' m6 T) }
  15.     {# O2 h& w! d+ [+ x
  16.         char *error_message_string;
    2 r7 b  p0 ~1 l
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);7 n: j3 |$ r3 A' W4 F& M% x
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    2 P6 N5 D: i' {
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    1 m, P& C2 F" `4 @. K( g
  20.         if(error_message_string) MEM_free(error_message_string);$ ?# a# g" X- m3 F: n) e
  21.         printf("\nExiting program!\n");
    5 h1 Z* y$ |& U
  22.         exit (EXIT_FAILURE);   
    3 H, T9 Y4 M2 Y/ j0 ?5 F
  23.     }1 u- u8 `5 B1 ~. r/ p/ |: p
  24. }' r8 K1 K% D8 e: C+ p# n0 y

  25. 0 W+ N6 c$ X3 a$ p* M
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    $ ]- K3 K; _" }7 I: o
  27. static void check_value( char *function, int value )& m4 M. _0 N& a- ^$ t) n1 m9 V
  28. {# U" }: S. G/ m+ J' @
  29.     if (value == 0)% I7 n1 c/ o# B9 X* z, a' V% G% D
  30.     {
    * L) [- N; }5 c9 p, R6 j6 O* D3 P9 _
  31.         printf ("\t%s is NULL\n", function);
    2 u' a9 S; i8 l) J$ J$ ~
  32.         printf("\nExiting program!\n");
    $ P: ~8 P2 Z. b6 C2 q' O7 d+ Q; ]
  33.         exit (EXIT_FAILURE);    ; ?/ Y$ m( a% ]+ X
  34.     }1 q0 ]# v4 t9 m, U: A
  35. }; @6 k# H0 l+ }) w: U1 Y

  36.   b7 |: S# S0 ?, ^& F3 t' r
  37. ' G2 _5 c/ q& ^, k* M- T
  38. static void do_it(void)
    & X" x1 u) r8 g, `/ N8 S1 l
  39. {
      v& D8 f1 h1 Q# M" I8 e( K  i3 {. d
  40.     int ( s% j$ D2 O- v# c: y7 r( ~
  41.         attach_types[1] = {1};+ A  Q6 H: {: J3 D
  42.     tag_t
      B  Y: q3 V, e0 q+ {
  43.         rev = NULLTAG,
    . }; y; a4 ~. ^$ r
  44.         process_template = NULLTAG, - \5 T+ h  b4 k$ {  A
  45.         process = NULLTAG;
    : T7 Y5 e# E) o3 X5 L5 F4 E
  46. , I( w3 v- F9 e, X$ {
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    + y$ i# u6 R2 r! ]
  48.     EXIT_IF_NULL( rev );
      x7 u4 Y' E+ {; Z9 w1 H3 x7 z" K# I! ?+ b- Z

  49. ' [* h( `2 d% z# o- ~
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    . L" l" u8 a: b) F, F3 `
  51.     EXIT_IF_NULL( process_template );- R, _) B6 h; i( C+ q. e2 m

  52. : L0 c- l/ P# d

  53. # e" M/ }. G* B8 R0 u/ s# ]
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 8 ]1 N  ]" ~, R! @5 b
  55.         attach_types, &process) );
    ! S0 e2 |5 E& a6 G' I4 d
  56. , ?$ t5 e9 L- I* `4 x! l7 M+ |
  57.     EXIT_IF_NULL( process );2 U0 ]  ~/ _  E. u4 J
  58. }
    ! J- F5 S, N, I( u7 u

  59. 3 D$ F3 J7 @8 ?: _% D, D( s
  60. int ITK_user_main(int argc, char* argv[])
    8 q6 e* y7 ]' q, S% A7 G; j
  61. {
    3 _' y  v) W- M& l9 I- V
  62.     int
    7 J# a5 r# E. J9 n* v
  63.         status = 0;
    : w7 Z' ]/ a2 q0 L( R5 W6 C
  64.    5 Y2 f% {% Z* M3 a- O
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );# L9 [) O& r4 \" _) |' ?. P4 C
  66.     status = ITK_auto_login();7 h) i, J- `% i1 d3 w. a
  67.    
    4 A# t1 U/ g: z& b  \. t
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");2 x7 r' b" U0 R: X  I: h. z
  69.     else
    % i/ P# s2 a& I4 l1 Z2 Q
  70.     {  P$ \" k% C* G$ _
  71.         printf("\nLogin successful!\n\n");
    ; ~# r' P; c7 N8 L: Z
  72.         ITK_set_journalling(TRUE);1 u4 W1 _, o8 N* A3 Z9 \# N
  73.         do_it();
    2 F1 Y& [2 b  R
  74.     }8 X. @, n, J0 m4 U' B. ?: n
  75.     ITK_exit_module(TRUE);
    2 y8 l" y$ C  \1 k. Y
  76.     return status;
    4 K4 z0 P  Z$ W( Q
  77. }
复制代码

+ }) P5 q, }6 i; z7 ^3 a3 A3 e% D8 y4 h' ~) U  S

$ ]! W  q3 }  T; V7 o4 O
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了