|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
x3 ^' L6 [; C! N2 LTeamcenter C++二次开发源码分享:创建item和item版本$ G C; M& y3 q1 m
" |2 |, R9 ~0 ~. d, S! V* Q; L4 N4 ~0 j$ M& L& x+ w' J( Z7 }
通过创建businessobject 指定的createinput 完成对象的创建
8 M! {/ ~7 m; B, Z- D0 }, k5 m9 A: ]$ Z8 g3 m
5 W4 H; Q( N8 { Q. z0 T- #include <constants/constants.h>( H" k, f. \% P3 J$ j# O' }! `
- #include <TCcore/Item.hxx>: Y' c: k6 W5 Q: a4 M; b! c
- #include <metaframework/CreateInput.hxx>+ h/ E/ m. i$ N4 M2 i j
- #include <metaframework/BusinessObjectRegistry.hxx> [0 W, D+ }7 Z [) F1 v
' ~: R( b' g5 ~- using namespace std;) v; {/ q$ J! B; i" X( K) Y$ n
- 7 a7 f! _/ b0 v1 I+ {
- static void createItemAndRevisionWithDifferentNames(void)
8 `9 I/ Q7 V$ i% }' z - {7 @( @4 O- {4 V9 ?2 t" R
- int ifail = ITK_ok;
# j0 {2 q5 c: h1 D - 1 u- w8 T9 |* U
- char type_name[] = "Item";
' q) P3 e2 _. b+ O - Teamcenter::CreateInput* itemCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(type_name, OPERATIONINPUT_CREATE));% ?; U# Z; m9 ^' L- Z
- $ W3 m3 V7 D7 {+ g
- //Revision type name is not always <item type name>Revision, m8 d* \3 H2 B1 O9 O
- char *revision_type_name = 0;
/ p$ W: `) a- r# h2 e8 t5 @ - CONSTANTS_get_type_constant_value("ItemRevision", type_name, &revision_type_name);5 h' Y# A1 f" U5 {
- ! f( g' ]+ b7 b- _/ K
- Teamcenter::CreateInput* revCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(revision_type_name, OPERATIONINPUT_CREATE));
9 F% k* [' Z: G7 g- d& o - * P" H- e& I# h$ g8 v) S9 K# e
- MEM_free(revision_type_name);" r) t% t. Y$ {: J L, n
1 A |# F/ }. |9 M+ b; G. Z- // set Item properties# F, U. r- G& q* r4 M) F, V. Q, f
- itemCreateInput->setString("item_id", "1234567", false); X2 h- ^* F# t$ G
- itemCreateInput->setString("object_name", "My Item Name", false);
% P( {, g$ Z- `; H& J* E+ I - itemCreateInput->setString("object_desc", "My Item Description", false);; _. K; N" o/ j$ ~+ v1 y3 b6 D
- itemCreateInput->setTag("revision", revCreateInput->getTag(), false);! Q" T; T j. d( i& W4 y
: P' Q- E! q& H1 c- I* J, |( J; m- // set Revision properties
+ ]& V- H0 d: o) a3 K- b( Y3 p - revCreateInput->setString("item_revision_id", "00", false);; G% P4 Q0 ~5 O2 Q6 u1 j
- revCreateInput->setString("object_name", "My Revision Name", false);
8 r, ]; C, R7 ~. }3 p+ P - revCreateInput->setString("object_desc", "My Revision Description", false);6 m: y* W, a; N( t& L2 P" p" _
- ( [- ?3 w; K6 B- {5 w# X
- Teamcenter::Item *pItem = dynamic_cast<Teamcenter::Item *>(Teamcenter::BusinessObjectRegistry::instance().createBusinessObject(itemCreateInput));
1 C; I& K: k. Y. s3 J0 R3 ` - ) y2 s* h8 `- ]4 G8 h) R' V
- ifail = AOM_save_with_extensions(pItem->getTag());
/ J: V0 i( m1 `4 a9 u
: e: A' T+ W0 v7 \6 j* P/ |# k7 B- // If the Revision is not saved it will inherit the Item's Name and Description.
7 D, ]8 t1 z" h3 D# f( D9 g - ifail = AOM_save_with_extensions(revCreateInput->getTag());& U4 v' w+ y# U% J( [, U
- }
复制代码
5 ]( R( R* ?- _9 y( h: f5 J7 ?* X% b- n0 @2 S* ?+ j( ^6 l1 x
|
|