|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
- `6 X8 K& ^! j8 Y* Q, u% H
Teamcenter C++二次开发源码分享:创建item和item版本
8 R. w; C$ | V; J. e' _7 a# n; x/ e
5 V1 n; M y. y" i2 G通过创建businessobject 指定的createinput 完成对象的创建3 t1 i2 w, t4 R5 m' S( E2 a7 v$ r
2 g; e# U. h }5 y+ B3 c
+ k' a' ~- ^; f" m
- #include <constants/constants.h>. L; _( p9 D" }( _; g
- #include <TCcore/Item.hxx>
3 A! ^0 S6 f0 O0 p+ t( x - #include <metaframework/CreateInput.hxx>
: s7 r) U* I! n - #include <metaframework/BusinessObjectRegistry.hxx>/ d y0 I8 S$ z) W
- 0 G# K# ~- \ `, R: ` A
- using namespace std;
. `* ~7 y7 U; _& O6 D7 x+ c# m
E& G5 c8 B, _8 v0 d. f, e& P# f- static void createItemAndRevisionWithDifferentNames(void)
. Q5 g2 s5 u, P' k% V - {
, U" h6 @: d0 h' m8 R - int ifail = ITK_ok;
6 U5 m6 m: B7 G! h - " o) V8 j# ]% ~
- char type_name[] = "Item";" k& v$ n+ C' A8 R) _$ q: c1 r& q' E
- Teamcenter::CreateInput* itemCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(type_name, OPERATIONINPUT_CREATE));5 E) E' s' L9 h
6 V7 W* o- ]5 U0 L9 _2 p! T2 y/ m- //Revision type name is not always <item type name>Revision
0 C1 B: q' ~- a% G1 M - char *revision_type_name = 0;. B" _2 T c: X) W) }; P5 Z1 E
- CONSTANTS_get_type_constant_value("ItemRevision", type_name, &revision_type_name);
) ~6 N( a# `$ g; U3 Q, P, D" R* ^ - - q; e9 E& g: X4 V
- Teamcenter::CreateInput* revCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(revision_type_name, OPERATIONINPUT_CREATE));; F/ u2 I' Q% s7 H, v" f3 a
-
/ S& d9 x. `1 X$ { - MEM_free(revision_type_name);4 e: I! M- D. ]( ]1 M
- 5 W/ M# v; u0 H: K* V% L/ P
- // set Item properties
2 v# k9 ~; ~1 S2 V6 a - itemCreateInput->setString("item_id", "1234567", false);
1 [. c: V0 [, O3 R0 Z! c6 p& }# l# {5 ~! t - itemCreateInput->setString("object_name", "My Item Name", false);
( [+ m+ g( s- T% W- Y - itemCreateInput->setString("object_desc", "My Item Description", false);
* m5 l& E4 C7 b9 T7 D - itemCreateInput->setTag("revision", revCreateInput->getTag(), false);
; Z$ S% v) Z1 U3 K" p! O - # g' V# l$ ~; H) E! h# D
- // set Revision properties
3 D/ J: @* e$ t - revCreateInput->setString("item_revision_id", "00", false);
, j9 _8 A& _* x0 Y9 R - revCreateInput->setString("object_name", "My Revision Name", false);
7 j {9 u* Z7 T3 `: D - revCreateInput->setString("object_desc", "My Revision Description", false);, S' H7 L( f3 ~ d
2 e! u8 a0 X! O" e; `* v% N- Teamcenter::Item *pItem = dynamic_cast<Teamcenter::Item *>(Teamcenter::BusinessObjectRegistry::instance().createBusinessObject(itemCreateInput));6 z& a+ p* _5 u4 @. F
" b% T; Q: t4 _7 I% w3 e* Y' M9 Q- ifail = AOM_save_with_extensions(pItem->getTag());
# Z! w( N, l% A Y4 t - + w; w4 g3 o8 D0 y7 }
- // If the Revision is not saved it will inherit the Item's Name and Description.
, C! u) h/ Y2 a% L. ~4 h. G - ifail = AOM_save_with_extensions(revCreateInput->getTag());
6 C9 [- a0 t0 w2 p. K4 v/ i - }
复制代码
& {9 M) z& `# }! j# I1 P
! {) C& `; [8 c+ w |
|