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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
( {# p' O; b( R
Teamcenter ITK二次开发源码分享: 创建一个工作流
. e! F: e! Y7 j! d, |+ F# L7 R# g9 @( m' q* ]% s- B
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    4 F9 E4 u1 I: o5 z/ F
  2. #include <stdlib.h>
    1 P2 a' j" T5 |' p5 K. O
  3. #include <TCcore/aom.h>' g; V+ Q5 ]5 f  k) r5 Q
  4. #include <tc/emh.h>
    " A/ S! n0 w) d$ i
  5. #include <epm/epm.h>
    " F$ s( H% h8 a6 v, B: J1 n
  6. #include <tc/tc.h>2 z! W% \3 I( s
  7. #include <sa/tcfile.h>9 d. H( s* l' n8 `- L4 D
  8. #include <itk/mem.h>+ j" U% O' R2 R; p, I

  9. 9 x. {: t5 U$ G, d+ w8 O8 t$ F
  10. #define EXIT_FAILURE 1 : s% g0 G6 a4 O7 `0 s+ s
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    4 F. E/ U0 V) R" K/ N3 I3 a+ [" I
  12. static void report_error( char *file, int line, char *function, int return_code)
    / j; O' G2 r. M
  13. {
    & q/ I& E+ D5 h- \1 I0 ]
  14.     if (return_code != ITK_ok)
    3 A7 U2 W. m0 Y3 J) ~! I
  15.     {
    7 F8 l+ s. `* r& K4 o1 }# s
  16.         char *error_message_string;; \1 Y" I! E: Q3 Z5 q9 c- l% x( {& Z
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    % M# i0 o" J* i7 [$ y7 B% T7 Z3 D
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    " @2 e/ N! e. C8 I3 q
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    4 d. {3 Q8 O  Q6 r2 G8 O  F7 n
  20.         if(error_message_string) MEM_free(error_message_string);3 C9 K+ K% M6 |- l
  21.         printf("\nExiting program!\n");
    & i8 s! P; o0 |) w% ^( N3 T
  22.         exit (EXIT_FAILURE);   
    % I& ~8 p/ N, O5 B
  23.     }! z/ a3 e0 l8 \  i6 K
  24. }
    7 k- T* P- P) w) ~) u  z  b
  25. . ~) F, V7 z" \% s/ g9 G
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))% x( m6 ~0 u: Z0 U
  27. static void check_value( char *function, int value )
    * I4 w5 Q4 Y. N: U- L& ~7 P
  28. {
    " F  y9 ?1 ~$ H8 g
  29.     if (value == 0)
    + ?5 H. G5 J) l8 a0 y
  30.     {2 r1 T  j( Y( A  e" i$ Z
  31.         printf ("\t%s is NULL\n", function);# Z" M7 @" c2 z+ t( ^" _
  32.         printf("\nExiting program!\n");) p, S" A' P1 H2 `8 q
  33.         exit (EXIT_FAILURE);    ' u- V( P0 ~7 F6 r- Y
  34.     }
    7 ]7 R# h5 p% R. C" t
  35. }
    + e, p, \  m0 l  v# t- F* ^& k
  36. % t9 \# Z% y1 }' Q0 g. f# `* \- i. {; }

  37. 6 ]" R9 \% B( \3 R' Z4 `
  38. static void do_it(void)
    # u  P2 j+ F5 Y; T) y
  39. {
    + q4 ^4 m& }. c
  40.     int   ]# g. J# o% G4 j
  41.         attach_types[1] = {1};
    3 p% Y7 c7 t3 p& @
  42.     tag_t 3 i& d" p% r, u* R; a
  43.         rev = NULLTAG, , p) |5 k; y% s. z3 r
  44.         process_template = NULLTAG,
    3 u6 d5 a& f4 j2 K  [; \3 L2 d
  45.         process = NULLTAG;
      y  l( D. u, ^5 C0 }% q. x  \% f; x
  46. 8 ?9 B" ~& _' v9 N) b0 l% L
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
      U6 A1 W. |( ]" j! _
  48.     EXIT_IF_NULL( rev );
    3 c7 V* w& j% `* K

  49. : i: G+ K- C1 [0 s: q7 g
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); , \, R6 j9 l9 l7 z7 D0 R' j- \
  51.     EXIT_IF_NULL( process_template );
    8 y" }) u' @* L% B

  52. - h. r2 v" {. E$ n9 {
  53. 1 [) Z) Q* K' s: R, ~! j
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
      L7 t9 P% U0 e# E
  55.         attach_types, &process) );5 n, \6 _  ?9 b. G' F' w  i

  56. & Z$ l( t+ ^2 o
  57.     EXIT_IF_NULL( process );
    - H/ ~8 [7 W5 v+ O
  58. }
    3 G7 H3 ^/ K6 N" k# ?0 N; n4 c
  59. " q  p0 w7 u7 ~$ O
  60. int ITK_user_main(int argc, char* argv[])
    7 p+ h+ |( g( a8 `; b, h
  61. {
    , V/ l3 j/ `7 x4 H# x2 Y0 }) |
  62.     int
    / K. R% n8 Z* x* C
  63.         status = 0; 5 G2 I0 _! t. @0 K, _) V
  64.    
    ) P, z4 \- G2 ]: l+ m
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    + M. O9 W3 f  }1 R- X4 ?- ?
  66.     status = ITK_auto_login();
    7 ^4 ?- _" N& @  y
  67.    / P/ j5 j% s! b& E1 m3 p" N+ \9 N% F
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");: b$ {* B8 i5 ?$ G, d8 T8 S# ^, g
  69.     else
    7 U3 S. K' i6 R& q4 F
  70.     {
    ; W7 H, Z3 O9 }. O
  71.         printf("\nLogin successful!\n\n");- j$ Q) o0 |% P
  72.         ITK_set_journalling(TRUE);* ]# V2 j% t9 B* U9 Z+ e6 j; l
  73.         do_it();
    4 ^0 @+ C2 M* m1 @# F7 b
  74.     }
    * A: M, V3 M, V' A
  75.     ITK_exit_module(TRUE);
    7 {3 z. w$ w# b' Q. A0 v) P
  76.     return status;+ U& `* n2 G. @0 V4 H  M, V
  77. }
复制代码

( T3 d) `$ O+ R2 T. b9 V1 {, w& g5 s$ L) e
1 l# ]+ _: \( v+ v: e3 B, C
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了