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

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

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

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

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

x

) g: i  \* |7 H$ l9 E- x, X5 E0 aTeamcenter ITK二次开发源码分享: 创建一个工作流$ J3 N- j! S5 m. o' N- J. H

, y5 E) `8 T" X  S+ h# t
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    1 D' H5 L' ^! `' }  m& `2 Y# K
  2. #include <stdlib.h>( O3 B* t. _" Q: x8 F
  3. #include <TCcore/aom.h>
    3 w5 f8 L4 Q- K* {
  4. #include <tc/emh.h>
    5 V" [0 O/ a0 b& p
  5. #include <epm/epm.h>
    ) @/ z/ r' a9 A8 G% n4 a
  6. #include <tc/tc.h>: E& H4 H* J2 k* Z5 i% A/ |3 }
  7. #include <sa/tcfile.h>: G7 {& B  @/ h- a9 h  c
  8. #include <itk/mem.h>
    $ A0 a0 Q6 ]# |, e$ x$ `+ e

  9. ( m7 C7 R/ F! f
  10. #define EXIT_FAILURE 1 : u# V2 K3 N. Y$ V+ e% Z
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    $ @. `! ~4 A. }- b! }% t
  12. static void report_error( char *file, int line, char *function, int return_code)% d( f4 T( ]1 [/ x# ~1 O4 m
  13. {
    0 Q: \4 L0 _# K, e
  14.     if (return_code != ITK_ok): s1 ?4 |6 q5 i5 _' F0 O
  15.     {
    , j" c6 [4 Z/ d
  16.         char *error_message_string;- L) {4 B  F% _. g" z& Z
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    8 L+ i5 V+ U3 O7 P" @
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);6 q) k; u+ {9 j
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    ( r/ O1 D+ S6 ?! F2 e6 n
  20.         if(error_message_string) MEM_free(error_message_string);. f. s' S9 C7 J! g
  21.         printf("\nExiting program!\n");3 v! I3 w' o- N2 ~
  22.         exit (EXIT_FAILURE);    " U0 @6 e6 R7 @: ~3 I- }( i( j2 L6 W2 g0 o
  23.     }% m) H8 k, ^' ^
  24. }* B% U( m, ~: M% L3 B

  25. + Q, e+ E# B7 d% ^) V3 J
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))* A# y3 l2 P1 L8 N; z/ \' q
  27. static void check_value( char *function, int value ); G$ [0 p* K: P/ u
  28. {
    # ~  ?' M) p7 c
  29.     if (value == 0); Y* u! B# s# R% C! _7 v, N
  30.     {
    ( w3 G2 Q; m( N
  31.         printf ("\t%s is NULL\n", function);
    ( l: u" u, ?3 o8 j+ s
  32.         printf("\nExiting program!\n");  a; r+ w5 q% ?' V4 C: U' V
  33.         exit (EXIT_FAILURE);    ! _6 B2 I8 n) K. y+ `3 Y
  34.     }  }/ W6 g( X1 @, u- A
  35. }7 e3 Y4 ^* a7 n8 ~- S
  36. 8 {6 c: ~/ }  [

  37. : |$ o8 o# V& Y/ N( e4 P
  38. static void do_it(void)& F' ~$ T9 b4 h, s1 w+ n" p. I
  39. {5 o8 w8 o; A) t. F) L0 S
  40.     int
    ! O# Z% o7 @2 O7 D# Q
  41.         attach_types[1] = {1};
    8 @! J2 W( Z  U, _5 K$ r
  42.     tag_t
    . _1 i( F' n# p
  43.         rev = NULLTAG,
    ! ~- F6 w2 J* [9 _$ x
  44.         process_template = NULLTAG, ; r) T8 A) i' b* P; Z
  45.         process = NULLTAG;
    ; H/ ~1 n2 o8 Y  [
  46. 9 r. W* h5 `% _  g/ j& I* G$ w
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    3 D! ^7 C. d0 y8 Z: v; m: ?
  48.     EXIT_IF_NULL( rev );
    4 d, m: t: T) e+ ~( H
  49. 6 y3 J6 W* K0 c2 V9 P
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    ! h7 _: {6 H) }/ Y
  51.     EXIT_IF_NULL( process_template );
    6 D" |" J# f) D; _" X3 [

  52. 6 Q/ d5 `! }* d  S3 `

  53. 9 m& n# i' h& k* C4 ^$ v1 [8 m1 t
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    + W0 w( P' A# `
  55.         attach_types, &process) );
    / t7 q# ?  j1 h' ?3 R

  56. 5 s! _$ L" q# ^& i/ C
  57.     EXIT_IF_NULL( process );
    8 _% R6 \, Z0 [# _
  58. }
    . \; n8 H" Q8 t% q# F
  59. 8 O/ e7 ~' U6 ?! b$ g; Q
  60. int ITK_user_main(int argc, char* argv[]): Z, t5 X' ?2 E
  61. {
    ( h" H  J* b6 |9 H. v7 n
  62.     int8 A; s) B. o. d5 c# N( @
  63.         status = 0; 8 o+ H+ n) ^4 [
  64.    , J1 y6 E6 A8 ~& Y' b
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    4 ?- y( V2 E( F9 o% `' d& R- j
  66.     status = ITK_auto_login();
    % K* A1 {% D) G$ x
  67.    
    " s& N* S5 X- p; A9 h% Z3 f
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");- T9 C1 G8 b% _
  69.     else0 M9 F" P. n$ C5 w/ X
  70.     {
    % l, c$ ?2 Q" ~' p0 S/ W
  71.         printf("\nLogin successful!\n\n");! W2 y. w; |( s; D% }* d& r
  72.         ITK_set_journalling(TRUE);
    / C# K& N: [/ E( D' ]
  73.         do_it();
    , z0 _8 R9 S" K$ m# O; C/ R' r
  74.     }
      N) R; J1 O! {( A
  75.     ITK_exit_module(TRUE);
    : g6 |3 _1 F( T- F
  76.     return status;
    2 @/ M" C& l& N1 J9 S  K% z
  77. }
复制代码
# M" t+ k! v* s( D5 A& z# v. l8 R

  a. q* Y. G3 y; o7 b7 O/ _; C& I3 `* m2 [& ]4 W- i
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了