|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
3 X* g _1 I/ m2 Y
Teamcenter C++二次开发源码分享:创建item和item版本8 B8 C l+ `: s3 W! n- O) [& t
. \/ b# f( N0 P, M( F' @5 V
8 p. u4 R. S& d5 X4 g8 u通过创建businessobject 指定的createinput 完成对象的创建* Q) U z6 R1 q$ |' g3 U2 e
# F4 t9 k/ g; ?$ ~
2 P, b6 f9 K5 c3 o- #include <constants/constants.h>
" ^% s: Y2 x8 f! |* ] e* H - #include <TCcore/Item.hxx>4 x+ j; Z- Z6 R- H
- #include <metaframework/CreateInput.hxx>
8 b4 Z# \) B1 Z: S - #include <metaframework/BusinessObjectRegistry.hxx>* q2 P& w3 j% R# }
- 8 Q K' t4 H) c. y$ O# F
- using namespace std;! \/ m1 n2 l9 ^
- 1 |9 U6 k' C+ @, N4 l& F
- static void createItemAndRevisionWithDifferentNames(void); x( p! |; @, ?; f) N+ [
- {
, H! d ]4 a' E - int ifail = ITK_ok;( N( Z! ^! o9 l& U
; Y; c5 b1 y! d; s' Y- char type_name[] = "Item";4 \- P- P0 a# u, a3 ~0 @$ h. j. H
- Teamcenter::CreateInput* itemCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(type_name, OPERATIONINPUT_CREATE));; w; ^0 b+ l& O" m7 ]
- $ ]8 s. I+ w. a- H5 O+ X6 I
- //Revision type name is not always <item type name>Revision
$ Q' E0 y) [7 R - char *revision_type_name = 0;
' E9 k% j0 }1 a0 Y( u; o - CONSTANTS_get_type_constant_value("ItemRevision", type_name, &revision_type_name);9 C' L @( C8 W5 p, v
- ) T2 w; e& p! b. ?5 c
- Teamcenter::CreateInput* revCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(revision_type_name, OPERATIONINPUT_CREATE));
6 K" [7 J. A% j- ~- S2 d& u: S - 8 r7 {, o9 `, ^) s7 r$ V
- MEM_free(revision_type_name);" x5 `8 E9 q" I; E3 W3 H1 h
- ! o5 i$ y0 N: }% a# Y# m! a- `- D2 R
- // set Item properties
: X, G8 J3 U- y% R - itemCreateInput->setString("item_id", "1234567", false);1 \. s, s" j$ A' ~7 T# ]
- itemCreateInput->setString("object_name", "My Item Name", false);/ M0 P0 c6 \4 K( U
- itemCreateInput->setString("object_desc", "My Item Description", false);
. P+ ?# U9 c* _! G; t- U P - itemCreateInput->setTag("revision", revCreateInput->getTag(), false);
1 b5 x9 u3 h3 W# x" z& f% B* Z - , S9 r# T" U3 Z
- // set Revision properties/ X- y# \9 e# e- A3 x- y1 e
- revCreateInput->setString("item_revision_id", "00", false);* u5 K- [0 S0 s) Y# y0 d' I
- revCreateInput->setString("object_name", "My Revision Name", false);
8 d8 X M& h8 ]; } - revCreateInput->setString("object_desc", "My Revision Description", false);
0 t$ }' A( V) i2 q; J - 6 A" m0 p- B+ p% _& ~3 N
- Teamcenter::Item *pItem = dynamic_cast<Teamcenter::Item *>(Teamcenter::BusinessObjectRegistry::instance().createBusinessObject(itemCreateInput));
0 i9 f, ~. I* Y; Z+ j- v - 7 h4 e9 h& A3 t) h9 q! R
- ifail = AOM_save_with_extensions(pItem->getTag());
' E* U$ Z( r8 o
" F. _" ?$ @+ I- // If the Revision is not saved it will inherit the Item's Name and Description.
( ~& M- _- [0 A - ifail = AOM_save_with_extensions(revCreateInput->getTag());1 ?. X3 M* D. R$ x% q
- }
复制代码 " z; b. q3 v; h/ F" S# l5 g
; @: o4 p/ v( V! O4 |. N |
|