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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
$ E. C( _9 R8 u/ c# N8 Y
Teamcenter ITK二次开发源码分享: 创建一个工作流& m8 I/ x. R* m$ @- e2 {' q1 M

- H# f1 }+ F) C7 [- w
  1. /*HEAD CREATE_A_PROCESS CCC ITK */  v: \4 P: k: v; Q2 H" e( H
  2. #include <stdlib.h>5 F3 P) ~, q1 J/ ]$ o9 {
  3. #include <TCcore/aom.h>
    7 k6 U) O" Y& L5 d; Y
  4. #include <tc/emh.h>4 ~' o) J6 j3 {+ s/ ^5 G2 u
  5. #include <epm/epm.h>% [: o; u) M8 P$ M8 ?7 y
  6. #include <tc/tc.h>6 W& D# O( o/ z& S& J
  7. #include <sa/tcfile.h>
    - b1 r1 M! L% ?( |% j: K# ?  ^4 o  y
  8. #include <itk/mem.h>
    ) ?& Y1 s9 Z/ U( @1 {

  9.   A( o3 }8 g* l2 C1 [
  10. #define EXIT_FAILURE 1 ; i; X- Y: {9 s0 U4 }& E, i
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    / l0 R/ F/ e6 k6 W8 T
  12. static void report_error( char *file, int line, char *function, int return_code)0 k# B3 P2 ]( X# c* V
  13. {
    2 P. O  b; x( X% p
  14.     if (return_code != ITK_ok)
    & g* H. I$ y' Y' {
  15.     {0 }+ s: _& H' p' [9 p; i
  16.         char *error_message_string;, ~! k/ J7 r/ e/ H
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);3 K, X, h) ^! a. E0 D
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    . b! t. y4 X3 _5 B& b% _4 w! ]+ o
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    2 [5 a. J  \% j+ b
  20.         if(error_message_string) MEM_free(error_message_string);( r! H! p$ j* T8 J
  21.         printf("\nExiting program!\n");1 z0 w/ T: s# G
  22.         exit (EXIT_FAILURE);    8 A2 Y  N" {( w+ w6 u0 f8 E
  23.     }
    ! n/ ]8 S$ e6 U+ x/ F9 Y# t2 a
  24. }) F" t; w* D3 h8 n1 {
  25. , \0 y& L. p# P, }6 Y$ i
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))2 U4 H3 ?8 x$ r1 ^6 f6 H
  27. static void check_value( char *function, int value )' ~9 O+ ?1 U& l1 }. A
  28. {
    2 O  n5 c5 C4 B- v' b! k; M
  29.     if (value == 0)
    8 C: R4 z9 ^( H% r
  30.     {
    * B2 M/ B- |# @* u% ?2 J
  31.         printf ("\t%s is NULL\n", function);
    * e1 z/ B  q) J- S
  32.         printf("\nExiting program!\n");0 R8 _( r  X3 n0 v# u
  33.         exit (EXIT_FAILURE);    , v9 |! ?$ V6 P% q( L9 Y3 J
  34.     }+ y5 e& m! |  X& a
  35. }. z( R: R& q* T4 P; e* ~
  36. , [! ~% v* V  }  ?1 P+ C3 j

  37. , k$ ^! I% g3 o# a) o! v9 [# Z
  38. static void do_it(void)# @* i1 N  r) U
  39. {0 ^# F9 x! f3 `: B: S, n) [
  40.     int
    , i7 D) D" E8 j3 k8 [, Y7 \$ y
  41.         attach_types[1] = {1};0 S  S  ~6 ]3 e( y
  42.     tag_t " i4 H/ f6 l. c) B! M' E3 H
  43.         rev = NULLTAG,
    4 V1 T2 I/ p9 }2 C
  44.         process_template = NULLTAG,
    $ Y1 A. @8 z" S7 a7 E* w) p6 o
  45.         process = NULLTAG;; \6 `  c6 i$ Q: n

  46. + r7 ^+ V% [5 w; f( @' Z/ v
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    / |# ^# J  ^4 o; s; k% C. U0 D  q- D' @
  48.     EXIT_IF_NULL( rev );* r0 N$ M" }* ?7 L" V
  49. 4 u6 E6 f9 \9 _" }. N
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); % j* o; }! E/ l% x% F* H' c
  51.     EXIT_IF_NULL( process_template );
    0 @- ?  V, |$ o( d; J4 y7 p

  52. , P0 U; y, [$ i0 W

  53. " D& J# {1 v- t4 j- _1 }( c/ D
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    4 Z3 B5 \/ ]4 ]4 m
  55.         attach_types, &process) );" y& |$ J8 r. s" \( |% ?9 Z4 w" }
  56. ! s/ ]. g& R& G7 u  b
  57.     EXIT_IF_NULL( process );
    3 e5 f, f6 @! q& T( x& W  c# ~
  58. }
    3 z/ Q6 V* ^' C. w

  59. - x3 ^4 p" P3 m/ e) _  _
  60. int ITK_user_main(int argc, char* argv[])9 B! J4 S5 X- v: Q' x+ U5 x& D6 _
  61. {4 o# S; K9 [% P- d2 C
  62.     int: K# U# ~9 d7 F' w4 A* G: f* r
  63.         status = 0; 0 R" H. P  P% {
  64.    ' x" ?' |$ U9 V8 I- J
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    ( {- }% o& x2 G- m
  66.     status = ITK_auto_login();
    " x" `% c3 t1 n- K  w* x, V
  67.    
    + K+ S" l! ^" K  N8 a& @
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");! i+ B* a% g1 q  {
  69.     else) R$ e3 K* ^' j# `3 H
  70.     {
    ' D# X3 l1 c, f: N5 S/ \
  71.         printf("\nLogin successful!\n\n");
    " R  h# J/ I# S, ]: S+ n
  72.         ITK_set_journalling(TRUE);8 N. z" \: c" r2 F- I# X
  73.         do_it();
    0 U7 ]6 R/ r9 l* V5 d  a
  74.     }+ _8 f# f4 u5 Y" E6 G6 Z5 T! ~
  75.     ITK_exit_module(TRUE);
    " g( ^  s  c* F0 Q
  76.     return status;
    + n# |9 S+ J8 `# d' a6 p; W) N9 m& h
  77. }
复制代码

9 V1 {$ ~+ H7 X( e& U2 u+ K) o: I) L/ c% ~" T
( }3 p/ P8 t  A" G2 H! 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二次开发专题模块培训报名开始啦

    我知道了