|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
+ ]5 u1 w% \8 _6 Q
Teamcenter C++二次开发源码分享:创建item和item版本
" w* ?$ g+ T3 }% I; l
$ M& H6 f# L. m" \# c# V8 }
! U5 p8 D; k6 U7 a- o G6 z通过创建businessobject 指定的createinput 完成对象的创建7 [8 `) [, I& A, P& v, @
, D+ M) y# W+ y* o7 G' g% [& k' h
5 O# }/ F+ V6 w1 E8 j7 s- #include <constants/constants.h>
' `9 s0 J+ N0 Z2 H - #include <TCcore/Item.hxx>
. g" B. }7 G; O! m2 `) b7 U - #include <metaframework/CreateInput.hxx>
! O2 S6 T( V4 B: } - #include <metaframework/BusinessObjectRegistry.hxx>+ }; n, C, l- k9 p4 @: O4 W
- ' @! S( Y2 s0 K+ x$ S2 o; m. N
- using namespace std;. |$ K! m+ N$ Y8 F/ \
: ?3 i* K; j, I. x: t# H- static void createItemAndRevisionWithDifferentNames(void)
}9 A, M4 z9 z2 A* k - {
! J- D9 {" [8 A5 w# J4 ^ - int ifail = ITK_ok;
& c& u' z- W9 P8 @% g( q2 \+ W+ b3 |
# J! O9 P/ l/ a- char type_name[] = "Item";
E4 P6 L, B4 O/ f" P - Teamcenter::CreateInput* itemCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(type_name, OPERATIONINPUT_CREATE));# u+ l! C* e: w
: W, l% F: a9 v7 ~# c# T- //Revision type name is not always <item type name>Revision
; h- D5 H9 M0 u; S l0 v - char *revision_type_name = 0;7 k- P; b: Z7 B& c# n" G
- CONSTANTS_get_type_constant_value("ItemRevision", type_name, &revision_type_name);, o+ v) R& |8 G$ i7 R! s, U
2 H) X# [. a& j1 r& V/ p- Teamcenter::CreateInput* revCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(revision_type_name, OPERATIONINPUT_CREATE));6 }8 k/ M! m J8 T6 s r. e
- 3 s ?/ j0 n; U) q7 u( C
- MEM_free(revision_type_name);
: X% [3 u. v! X, v* P3 v3 g, ]
# L) x5 a2 F& l# H. O& X. P- // set Item properties
0 f: `" G) A% A3 i8 w) ]* G/ v - itemCreateInput->setString("item_id", "1234567", false);) `4 U* D% B- `4 s0 X
- itemCreateInput->setString("object_name", "My Item Name", false);$ a) ?0 f! a) @! E
- itemCreateInput->setString("object_desc", "My Item Description", false);7 H6 J/ R2 p* ]3 z* B) j' @: t
- itemCreateInput->setTag("revision", revCreateInput->getTag(), false);
+ h( ~# A3 S* V
8 J/ F+ A: B5 P3 t( r- // set Revision properties; T' D6 v% i/ c1 B
- revCreateInput->setString("item_revision_id", "00", false);5 `9 d+ K* T" W+ y
- revCreateInput->setString("object_name", "My Revision Name", false);
' p- A7 Q6 o! V/ P - revCreateInput->setString("object_desc", "My Revision Description", false);
$ j& f& h2 T' c' `) X3 a+ B
9 ]' |3 l4 u( e. m v1 O- Teamcenter::Item *pItem = dynamic_cast<Teamcenter::Item *>(Teamcenter::BusinessObjectRegistry::instance().createBusinessObject(itemCreateInput));6 {- H6 k8 y8 m5 B1 `& h
# f0 U7 v$ d. L( y3 w1 [7 u" d- ifail = AOM_save_with_extensions(pItem->getTag());
/ t1 A) i& p1 f6 L: w - 1 x5 ?% L* L* X
- // If the Revision is not saved it will inherit the Item's Name and Description.& @+ o6 j9 Z' L/ A4 h- i
- ifail = AOM_save_with_extensions(revCreateInput->getTag());
( V N9 L$ b; \ - }
复制代码 ' ?' B: c* f5 J( W/ t e& U
5 r; f2 y" x* J! k$ w |
|