PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

PLM之家PLMHome-国产软件践行者

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

5 }4 {9 e, Z5 O3 iTeamcenter ITK二次开发源码分享: 创建一个工作流  c7 |" l" n3 d5 t$ H

& e; a8 s7 S) r0 H
  1. /*HEAD CREATE_A_PROCESS CCC ITK */" Z, N6 ], w" F$ Z: J' j
  2. #include <stdlib.h>4 w4 `. |: g& q# e% O$ m' W; N+ ?
  3. #include <TCcore/aom.h>" f5 u1 G& a5 D; W3 a5 R: F1 T4 P
  4. #include <tc/emh.h>
    ( n4 k' P9 ?9 x1 W5 B
  5. #include <epm/epm.h>3 k4 [: A+ m' T7 }! A
  6. #include <tc/tc.h>3 s" I1 X0 x7 _+ ^
  7. #include <sa/tcfile.h>
    # x! m  ~- P) R5 g$ O% G) K
  8. #include <itk/mem.h>
    : q( T6 ~- G2 k, A: q# J5 J
  9. ; g  Y7 g, P' d
  10. #define EXIT_FAILURE 1   j" l& M, n3 X' l
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    6 }8 e, B/ U6 ^& e1 N3 q
  12. static void report_error( char *file, int line, char *function, int return_code)
    2 ~% _" c, q! i0 F; A& F$ w
  13. {9 T, e; Y2 l. }( I
  14.     if (return_code != ITK_ok)" d2 b7 [$ i! `$ e8 m% q5 ]7 X4 P
  15.     {& H5 u2 u( _8 U  [6 J& o8 d
  16.         char *error_message_string;" c: v2 q: y; C8 S9 ^7 V3 E( Z5 v2 w
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);* E( n7 ?( b/ A  y- h& \# l- J
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    ; e  f& t& \& W' X
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);  v  Q% k% a- K6 {' S
  20.         if(error_message_string) MEM_free(error_message_string);: ]* r$ W' F/ `+ J' a
  21.         printf("\nExiting program!\n");9 l8 z! C, w. r( e, B
  22.         exit (EXIT_FAILURE);   
    0 W& I- [3 Z7 L/ d$ M9 s9 H" X! [
  23.     }
    & x: F* M3 w- D' g
  24. }
    ! n; P. _" e7 ]
  25. ' I) i3 u* p% E' f: k, T7 w6 U
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    5 |) ]" D( S! \; {
  27. static void check_value( char *function, int value )3 C6 `; w6 R4 I  E* h
  28. {
    , @, n- `; u& O6 ]* y
  29.     if (value == 0)0 ^4 s4 }) i0 r- X: h
  30.     {; t0 \, x* o+ S! m3 V0 b
  31.         printf ("\t%s is NULL\n", function);
    4 G; D" L2 G" x: h
  32.         printf("\nExiting program!\n");
    # ]2 T! \& N) T% ?* p; V+ }3 i
  33.         exit (EXIT_FAILURE);    ( u# v0 C: A* W7 \
  34.     }
    5 M5 {1 D+ Z5 G2 l+ X
  35. }
    ) t" e4 a4 c  N3 r2 m* D& D, y
  36. + C9 j$ w- L" o4 C7 A/ d
  37. $ b6 O- h1 r( G+ Z. d  L
  38. static void do_it(void): \- _5 [8 O, _; i7 T: z! @% R
  39. {
    8 t7 }) |2 l. M4 t& A
  40.     int
    & \0 _6 R! P! f. n/ x
  41.         attach_types[1] = {1};! M* ^1 `- p' L# x+ P- K- W
  42.     tag_t $ S" W$ y3 k: Y
  43.         rev = NULLTAG, # E% P! j$ Z* O8 X2 s
  44.         process_template = NULLTAG, 8 y1 x: ~- m/ m/ c4 j' B/ J  S
  45.         process = NULLTAG;
    - C* y: ?  D- c# S& d0 q" b. p* X

  46. 4 \2 l7 \& a$ {7 O6 d
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    1 G7 {( J" I) p8 i- f7 X* E
  48.     EXIT_IF_NULL( rev );: T+ _; d' M# t3 z# I7 w
  49. + ~; E! O) Q0 X; N4 E9 n
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 5 O' R; K& ?: x4 w+ P: l8 f
  51.     EXIT_IF_NULL( process_template );1 U* ^* ^1 b9 ]7 @9 g: d

  52.   |0 c  T- ~1 @: ?- h

  53. : K: Z- ]/ A5 e0 S& s. t# O
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 5 M) v* l1 Q% a; c3 L0 g! k8 N
  55.         attach_types, &process) );$ C) Z( g7 s4 x, ~2 `# A& b

  56. 5 j/ P' Y; E! z2 ^1 C1 z/ M( M
  57.     EXIT_IF_NULL( process );% I0 G7 k) ~8 @; e) R
  58. }! \7 L8 s7 m5 K6 G* j1 G5 n- z  m
  59. ( F$ D) j  T6 ~0 @. c; P7 Q
  60. int ITK_user_main(int argc, char* argv[])
    8 n( E+ E1 T! l& q
  61. {
    ' V: Z- u5 Q) ~; }
  62.     int! m4 M. v; \( d+ W. V; g! Y
  63.         status = 0;
    2 \- Y- Y, `6 H/ \2 D# M2 ]( g
  64.    
    ( a' b1 V7 M, P; P% K! h- M
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    ' t5 J1 n! b" f2 J
  66.     status = ITK_auto_login();
    1 ?% [+ q# _* r0 ]; {& R3 y
  67.    8 S, L6 _3 X8 t# }6 T
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    4 S! v; \8 l, Y' N
  69.     else  R8 ?% W9 S: r
  70.     {
    ; n1 C! g9 q% F; p3 ^/ b( H
  71.         printf("\nLogin successful!\n\n");
    - N) c( @) h  a$ `; w
  72.         ITK_set_journalling(TRUE);1 ?( d' V8 K, m6 o( G0 v% T
  73.         do_it();
    ! \/ n- ]3 T- s- Y5 k+ \
  74.     }
    % c3 F* S% \: j" \5 g+ F
  75.     ITK_exit_module(TRUE);
    3 r* y* P' `, v5 I
  76.     return status;
    . V1 N- s: g9 {9 A  B& p4 o6 b
  77. }
复制代码

/ k/ f; H% q  I7 t- j* s8 m0 J) q& H- N- D$ z
  F% _8 _) ?! t- V9 p
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了