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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

: {1 M9 |( f+ V6 D6 `Teamcenter ITK二次开发源码分享: 创建一个工作流: X( ?1 l$ S; d( \

; o3 n8 z, b- d( {) N$ y! g: w
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    % x4 S( R) ?9 E
  2. #include <stdlib.h>+ |) y- W5 R0 N9 p+ P4 C
  3. #include <TCcore/aom.h>" v/ y( t" s+ q7 L8 M2 f+ l6 D
  4. #include <tc/emh.h>. l: D$ N6 n% ]9 X1 w
  5. #include <epm/epm.h>9 r& {9 {+ ^9 N$ f3 D
  6. #include <tc/tc.h>' T% n$ i& ?4 O" y3 D$ w9 K: o4 f
  7. #include <sa/tcfile.h>: k# A. a6 ~* k( D( G% h( U5 Y! {( A
  8. #include <itk/mem.h>
    7 ~; J( i. s6 P0 E

  9. ; g. R1 s, G6 c+ X
  10. #define EXIT_FAILURE 1 7 O- m) w4 Z, e; _
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    1 T5 o; Q# ]& H7 t# p6 K3 h
  12. static void report_error( char *file, int line, char *function, int return_code)
    , S# }/ Y$ ~, }# {6 r: l
  13. {
    7 c* A* k# `4 f
  14.     if (return_code != ITK_ok): E4 y% l$ ?& l/ d5 S- u  r
  15.     {
    $ L8 G( J# a9 U! e( m/ ?5 l
  16.         char *error_message_string;( z  v# W' b8 g7 i9 o2 e
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    / H: e2 V1 R/ @, d. T5 Z4 U8 U
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);% {+ C' v. @5 ~3 L" e9 T
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);8 k4 M* Z* {* e: _2 b- }& W6 x( y, U
  20.         if(error_message_string) MEM_free(error_message_string);% s3 W1 y  K* B4 H' s- R
  21.         printf("\nExiting program!\n");' b4 L1 z$ i( _  g/ x$ q
  22.         exit (EXIT_FAILURE);    " S- ]/ C1 c- x1 z& `9 G5 }! r
  23.     }
    ' E: Z$ m  G4 x) ?" l* `6 T- {5 S
  24. }
    * P! `- x" _; r1 ^% S0 i
  25. - M4 _7 J, I  d* D% j* Q
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    ( F$ j# k- Z) o# s7 J& w* m
  27. static void check_value( char *function, int value )
    . a& y- @1 P; @0 c
  28. {: i/ T. ]8 j" P+ [
  29.     if (value == 0)& a' E0 C5 H$ C9 |3 d' ]! S
  30.     {4 e* h8 T0 F5 ~
  31.         printf ("\t%s is NULL\n", function);
    - r- A5 T3 w, Z- A4 w3 Y! {: e0 _' K
  32.         printf("\nExiting program!\n");
    $ a9 c1 z+ H- i9 Q2 z
  33.         exit (EXIT_FAILURE);   
    , q/ F8 n' m0 B8 y8 q) s
  34.     }8 b0 ^4 h; ~+ ~. v
  35. }
    9 N9 I* m, g" V: o8 Z& \0 e9 p
  36. 9 t/ @. ^2 k2 ^6 z9 n" `2 _  ?0 ]9 [
  37. * t+ Y% v* k  u1 G/ I# K4 B
  38. static void do_it(void)
    ) _; j# r; o' r) M+ [
  39. {$ T# s& g5 O" q
  40.     int ) W. j1 S( x4 I6 U# i+ s
  41.         attach_types[1] = {1};
    8 B4 Y7 r& y7 k" W/ Z+ R
  42.     tag_t ' b( j& ]. Z! A2 y: I1 M9 P8 R
  43.         rev = NULLTAG,
    - Q3 A4 @8 x5 x! R6 Q+ k1 N$ j7 b7 W1 l
  44.         process_template = NULLTAG,
    7 h# x0 I0 y( a) s- e. F+ |
  45.         process = NULLTAG;) e. |  O7 J- n

  46. " b0 O7 x7 T6 I, }; A6 U8 ?% l# E
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );6 e! |0 h! u+ \3 y4 F
  48.     EXIT_IF_NULL( rev );- C! i' z8 _8 I6 U
  49. 1 u0 U, ^9 e/ K: u/ m
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); : W7 ?! ~) G- B+ k
  51.     EXIT_IF_NULL( process_template );
    4 [* o% {- `5 D6 P" Y2 K
  52. ' ?" I6 v1 K3 N* L3 k
  53. $ \" T8 n* \; Z: U/ S
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    & s! O8 B+ T& O. \2 X; t
  55.         attach_types, &process) );
    ! D" O% d$ \+ a3 T
  56. . M: b( s8 @0 R
  57.     EXIT_IF_NULL( process );+ _2 o6 d5 p: I0 M7 b6 O
  58. }( ]4 y; s7 C, _2 Q: Q- b9 s2 y

  59. # D6 ?4 @, F/ R. a0 x* `+ R$ t
  60. int ITK_user_main(int argc, char* argv[]). y; H  K3 \" i
  61. {; }4 c0 C1 A$ Z% A. K6 s
  62.     int
    9 |) }* ^4 @" N: y5 B
  63.         status = 0;
    ( F. a+ J/ G6 m) ~# b
  64.    4 L+ I. P& `0 W9 [3 L. j' L
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );' r5 _4 Z3 c) {8 W2 r
  66.     status = ITK_auto_login();0 [1 j' G  s3 E# X% B
  67.    % ]" P) O1 U/ B. I+ G! I4 Y
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    ! B# \( ]% ^9 l. `* H# D& S
  69.     else
    9 c; [/ p& h2 x7 G7 H  |" q0 s( N+ a
  70.     {
    $ c6 x! [* f8 Q& r: I$ W- L
  71.         printf("\nLogin successful!\n\n");. ~/ ^5 i. A( j" V
  72.         ITK_set_journalling(TRUE);+ U0 V( f9 I$ \: q
  73.         do_it();
    7 A7 h6 u) Z5 ?% x* ~
  74.     }
    - [. f  e: p0 ~4 T; x
  75.     ITK_exit_module(TRUE);
    9 ?8 Y9 e# k. D  @7 L
  76.     return status;2 p2 e7 q' ?$ k: o6 {/ C: u
  77. }
复制代码

5 b. `6 W3 ~. B+ S  Z  g: g2 Q( j' ~3 ~
! v4 x  \8 C' b* x
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了