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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
) V1 `$ G" Q$ w! F( S2 X
Teamcenter ITK二次开发源码分享: 创建一个工作流
. R8 s1 [1 V% H
4 g0 g3 }* j- y
  1. /*HEAD CREATE_A_PROCESS CCC ITK */( V* {3 H! V* ]5 t4 N( N& `
  2. #include <stdlib.h>) u- T& G( u- R7 Q- ^0 ~! i  f& ^
  3. #include <TCcore/aom.h>4 o0 N1 Y/ J* e$ O! ]
  4. #include <tc/emh.h>" K3 ]* D4 R: s' J: `$ q: o
  5. #include <epm/epm.h>
    ' o' R/ A3 Q8 _
  6. #include <tc/tc.h>7 W4 a- _$ Q( Q, n5 I
  7. #include <sa/tcfile.h>+ t- Y; y( [8 P% l8 ~* q
  8. #include <itk/mem.h>
      B7 a% `+ j' L
  9. . J" A( i0 Q6 m! \
  10. #define EXIT_FAILURE 1 9 ]( L/ x8 R2 x
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))5 K3 g+ D( I: T# Z
  12. static void report_error( char *file, int line, char *function, int return_code), O& ~2 k. s! r6 L3 @& v  P
  13. {( b6 Q# `- J) P* u9 B( u4 Z
  14.     if (return_code != ITK_ok)& K; S% M/ Q7 R. e" M$ J3 q
  15.     {
      p0 w/ d* E" [
  16.         char *error_message_string;( Q1 n9 \4 f6 z8 }3 M1 n" O
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);8 S1 j9 R3 u/ ]8 K5 t# Q- @
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    1 l/ B- \: H2 V. ], ^7 i4 Q
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    , Z7 `) Y8 B: e7 q+ U2 z
  20.         if(error_message_string) MEM_free(error_message_string);
    " A4 i6 {" m! w' `9 E$ f8 @4 _
  21.         printf("\nExiting program!\n");
    ! M/ y  c8 e7 `$ e, ~, a
  22.         exit (EXIT_FAILURE);    8 B' p$ ?% F3 `- u3 f! b
  23.     }/ j4 d3 _* e- D% `) s. Q) P
  24. }/ g: t" ~" b% n9 D5 ?+ X
  25. : W5 D  e# H, y+ g% @- P" \
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))% i$ T& r+ W: j* }9 `
  27. static void check_value( char *function, int value )
    : ^, ~7 n0 p3 G8 O" C- S
  28. {! [$ l. ]4 v- L( p+ l3 l
  29.     if (value == 0)+ U+ r# A3 H# V, c  n$ U- j) Y3 ?
  30.     {
    7 g( s' I, L+ |
  31.         printf ("\t%s is NULL\n", function);7 q% g3 @( K6 u2 F
  32.         printf("\nExiting program!\n");* J# t! w6 m9 H1 g9 j
  33.         exit (EXIT_FAILURE);   
    , s; ^$ g* y! I+ m
  34.     }5 j! O1 N0 l1 ~. K' B! k
  35. }
    9 R+ b3 x1 ?2 ^7 l8 Q/ Z) d

  36. 3 m9 P7 \$ W4 \$ `( p; T

  37. 9 }; s, q. T* f! Q; |$ k6 F
  38. static void do_it(void)
    * t, B/ R* |; Q* o
  39. {
    0 s! p5 P& b* Y* d5 l
  40.     int   p# l  F  p. b* j% q
  41.         attach_types[1] = {1};
      A* i" I* r3 |2 j
  42.     tag_t * U5 \* p! `( j% o  U8 `
  43.         rev = NULLTAG,
    / Y! U- u- d( I" E! A
  44.         process_template = NULLTAG,
    3 v) F% |4 v; j$ W$ p. o- {* ?( w* U
  45.         process = NULLTAG;# `& h+ f+ E( p+ m( u4 Y) p

  46. * D* A( g/ f; o. i2 t
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );, o- e$ Z+ A5 M9 N9 E! J
  48.     EXIT_IF_NULL( rev );
    - I! Q0 _3 M3 g1 z1 h

  49. + A# x! K; z) ?* E, @$ [
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    * u1 A3 N8 _2 U
  51.     EXIT_IF_NULL( process_template );
    ( q; b6 w4 {1 L# X. s

  52. ( T/ B$ B4 L. w0 O3 T
  53. ! q% Z! G2 s  r3 r7 s1 K- {
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 1 s; M& V! S. _1 [
  55.         attach_types, &process) );
    , T# `( q+ m$ n  U

  56. $ T$ v& C, W  I7 ?4 J6 T0 ^
  57.     EXIT_IF_NULL( process );
    6 F$ v# B6 g, a9 A- v
  58. }
    ( A& l' Y7 K$ L3 H

  59. " x% B4 d5 o% Z* Z
  60. int ITK_user_main(int argc, char* argv[])* p. H% O3 m5 S/ s* I" ~! n
  61. {4 \2 F' W( e% h0 S! z
  62.     int' }: T# F9 i4 O0 G
  63.         status = 0; / T9 b$ T* o8 |% g( A# ^
  64.    & n. S" M  ~$ M# v
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );& n; O% O' f% ]' Z. M4 m
  66.     status = ITK_auto_login();
    4 _  D. |& d  w% O3 Y8 s) G
  67.    
    2 p2 _7 y$ K/ r$ a
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");6 y5 h6 \+ U7 z2 H) c3 C
  69.     else% A" Q$ t0 m* @2 ~- P
  70.     {1 Q# K) v* u8 `) D) V8 T  o) B. ]6 q
  71.         printf("\nLogin successful!\n\n");: f: J& H& R0 K/ T4 q
  72.         ITK_set_journalling(TRUE);
    9 R/ P% y# N: \' `- L9 q
  73.         do_it();
    ) P- e& K/ @* o' \4 k
  74.     }  c. \# g+ q3 v2 \/ X8 L
  75.     ITK_exit_module(TRUE);* X7 o* k( e5 v
  76.     return status;1 }+ K  p3 X$ U0 p; ^
  77. }
复制代码

2 r, A) K, ^6 W  D( C/ f1 D4 B! p
  ]0 k# ^8 S; {$ o* L# r6 U+ U0 G! ~8 Q# p' {0 n
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了