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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
! n# `& d5 a0 l
Teamcenter ITK二次开发源码分享: 创建一个工作流
6 ?, }; N8 G, |7 x" }* S- O
( T- |- Q; L2 W$ V+ @* o( C
  1. /*HEAD CREATE_A_PROCESS CCC ITK */1 o  Y; Z$ M* V4 i$ x, _, m
  2. #include <stdlib.h>) D" b0 r6 ]. t  c! C
  3. #include <TCcore/aom.h>: j! J" j4 @+ A5 y
  4. #include <tc/emh.h>* f- j2 J4 o3 I/ n/ T/ b/ Y4 y" N- @6 a
  5. #include <epm/epm.h>8 \" }( H% \, |3 Z
  6. #include <tc/tc.h>
    + V& \- [+ H3 n. e$ i
  7. #include <sa/tcfile.h>
    / t% z" p7 S! K& _
  8. #include <itk/mem.h>3 Q7 Y! P8 ^" m4 e- }
  9. ; F+ |" V1 c2 y6 |
  10. #define EXIT_FAILURE 1
    + r3 ]* `! l! s3 x+ e: O
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))) J6 F% y* y3 ~7 |, w9 s
  12. static void report_error( char *file, int line, char *function, int return_code)
    2 ]- I! Z7 l  s' P7 ^
  13. {
    ; F9 s! X( t! S6 x' z  V
  14.     if (return_code != ITK_ok)
    0 ]7 A/ K& c' X8 v% l2 a
  15.     {( U) J8 y" A5 Z  _# O) A2 |
  16.         char *error_message_string;
    / v, o4 z$ ?  \' o# O1 \
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);4 B- ~, n) g& j. j$ v
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    6 I" L9 s5 ?& W! W
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);  L: W% s9 n% ~0 W# z
  20.         if(error_message_string) MEM_free(error_message_string);
    + L! A9 ~. h4 e) w* q
  21.         printf("\nExiting program!\n");
    ) f, g& C  p9 }# ?% o# w/ P
  22.         exit (EXIT_FAILURE);    ! p+ ^% T8 P9 F, s. ^$ ^
  23.     }
    & n5 ^1 f3 D1 v1 w' s: [
  24. }
    ( ]* Q0 G" i! I# Y1 m& G6 [

  25. & |2 X$ _  U7 ^! [: [/ D8 w! f( L
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))2 h8 H! T. P  S6 N" E% v, o
  27. static void check_value( char *function, int value ): \* T9 C/ a. E$ R4 Z
  28. {
    ' f0 Q1 x: k9 d! a* K
  29.     if (value == 0)7 _* ^8 B* r1 x9 _9 K
  30.     {
    . U7 W. z3 T9 c/ y  F& c. ]5 Q
  31.         printf ("\t%s is NULL\n", function);* v, V1 P  ~, E* X1 Q3 f, q
  32.         printf("\nExiting program!\n");
    ; G( @- ?8 |" B3 g# h/ ~
  33.         exit (EXIT_FAILURE);   
    , D% F- X  F5 R% V
  34.     }
    5 m+ b* }1 T/ W
  35. }' ~3 f8 x0 _6 v/ C/ t. _9 l2 M$ g1 y
  36. " ^0 {3 B7 {9 I" R- A1 {& `; }

  37.   E; c* j) Y$ `! u' G7 B) H5 V
  38. static void do_it(void)
    " ~6 ~" G+ }( c4 r" g" J
  39. {
    $ M; v) H& C- v! R
  40.     int   _5 Z$ C# k3 D8 R# _: G! J+ @2 H
  41.         attach_types[1] = {1};
    1 O! ]: ]% d8 W) d; F
  42.     tag_t . u  ?5 ^3 v6 k$ s& _, E$ J3 d
  43.         rev = NULLTAG, / t4 |* G/ A0 k, Q# p; N7 w
  44.         process_template = NULLTAG, ; S2 b' k$ G  v# r. i
  45.         process = NULLTAG;" K& b9 ^% W/ r* D/ S/ [7 E! O
  46. 0 c" r; C5 n6 A: k- g- i9 J" F2 |
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    ; m* d$ ?- W, S8 S
  48.     EXIT_IF_NULL( rev );
    ! B" L6 G$ N9 X! c! p5 n

  49. ' N! w! Y9 G! y# m0 v7 z0 {) L% Q( O
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 7 ~8 C# X: c7 l
  51.     EXIT_IF_NULL( process_template );
    - @( B5 W3 Z# d; N, t( r
  52. ' Y/ D/ \: P2 @7 N+ h1 o
  53. 4 h: O& w. i1 C% z: ^, E/ c6 k7 Q
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    " z. C$ b) ]! ]2 V5 z4 p
  55.         attach_types, &process) );2 e- A' x/ g# c; E7 O3 b

  56. # l  X  O* a9 s% a, k
  57.     EXIT_IF_NULL( process );
    7 b9 V  D5 V9 r4 x
  58. }' |9 }- f8 V7 g

  59. 4 _6 p" e2 x# Q1 t# `6 v* e
  60. int ITK_user_main(int argc, char* argv[])3 [  U+ J$ q) _; j4 R
  61. {
    ( a4 t: @; l) p: h' d3 B7 s- [+ X
  62.     int
    8 Q! Y# u* ~- W
  63.         status = 0;
    $ h) Y+ n2 r; U' g( {  t2 ]" {
  64.    
    + ^0 ~! V2 E0 {0 S! R+ h8 Y' u
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    : g0 ?, W' U- I6 Q  P- |9 _2 O/ p# k
  66.     status = ITK_auto_login();
    ' I0 k; J1 p4 Y
  67.    3 v) Z* E( g3 ^% P3 e+ C) G8 w
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");/ {! M6 m+ e2 h" g0 [% r
  69.     else  G/ |" u5 W! ], l
  70.     {
    ) X2 I! S1 h8 o
  71.         printf("\nLogin successful!\n\n");
    ! }* H! A+ v! h( `2 }5 y
  72.         ITK_set_journalling(TRUE);  r5 I7 w% r% b% A3 c: n
  73.         do_it();) t9 s$ u1 m* X( J) o9 Z
  74.     }4 X. ~  r. d* m! i2 ?
  75.     ITK_exit_module(TRUE);4 ?( P3 A. u( ?
  76.     return status;
    ( p3 t& z# t/ x* b+ }& D: ^
  77. }
复制代码

, @% A! Y* s4 K1 q
% c, w8 J, ]# ?( H7 }) u. _. Z3 d5 H$ G+ \9 G3 M
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了