|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
0 W+ v. H/ I- r0 C$ r" v: |
Teamcenter C++二次开发源码分享:创建item和item版本
* r" ?9 `/ F9 z6 D
. @; `+ S \7 c( Q: \; t4 j1 Q: `/ O7 Q% u. F2 L/ d
通过创建businessobject 指定的createinput 完成对象的创建& x% P& f" F" n# W$ O
4 x! f) h8 p) {3 r
6 ]; E/ y* J# M. A6 y/ z ?0 p
- #include <constants/constants.h>
& N% W! R2 _; l - #include <TCcore/Item.hxx>6 g2 y+ q* n! D$ f2 k9 ?0 [
- #include <metaframework/CreateInput.hxx>- S0 N3 G$ S: C: T
- #include <metaframework/BusinessObjectRegistry.hxx>$ [" s$ @, c( _+ Y2 d- ?
4 a' [7 t; o {2 r- using namespace std;: @5 t4 I3 a0 B( e- N& U
- # y, W8 r, [4 t) R* g6 g
- static void createItemAndRevisionWithDifferentNames(void)# q( }/ c, t& X# K
- {/ p2 X' M8 U% @. w/ J& l
- int ifail = ITK_ok;$ o6 ^/ V* V3 q4 @' W j
0 @5 W% C5 F$ r& j5 ]8 l4 a0 j- char type_name[] = "Item";
1 [/ ^, h4 F+ R - Teamcenter::CreateInput* itemCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(type_name, OPERATIONINPUT_CREATE));& T) ]5 N0 q6 c3 a5 i& |6 `
- + o( u6 N+ ^) F. F! _
- //Revision type name is not always <item type name>Revision
- k& Q* P; G* e% z - char *revision_type_name = 0;! E' d$ k1 r& X. s! g
- CONSTANTS_get_type_constant_value("ItemRevision", type_name, &revision_type_name);9 N; F+ c7 j& h/ ^. l( @
- h9 a' a( f6 i k1 ^$ f" I
- Teamcenter::CreateInput* revCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(revision_type_name, OPERATIONINPUT_CREATE));
/ n' l# D6 S5 P" N0 Y$ a5 t8 | -
( `1 g6 d7 R+ X# q% d; Y6 I @ - MEM_free(revision_type_name);5 Z& L3 d# [. B6 y* G
- * a2 q @* K4 ^8 h% ?
- // set Item properties$ ?- Z0 L4 _9 j5 J
- itemCreateInput->setString("item_id", "1234567", false);
5 R7 Y( G7 s4 f! @4 T - itemCreateInput->setString("object_name", "My Item Name", false);
t: e. S- l0 y1 Z - itemCreateInput->setString("object_desc", "My Item Description", false);
5 P6 \/ `8 u: H/ a- o - itemCreateInput->setTag("revision", revCreateInput->getTag(), false);
3 l$ h, c1 _1 Y) [
6 ]3 P' n f7 Z3 q" {- // set Revision properties |- E- z% d3 ], u, }
- revCreateInput->setString("item_revision_id", "00", false);
9 |# V3 U9 \/ M% b7 }6 L5 p - revCreateInput->setString("object_name", "My Revision Name", false);8 R$ X' H2 K3 Q8 Q. B$ I" ?
- revCreateInput->setString("object_desc", "My Revision Description", false);
0 {; f+ z* k2 H5 C - " h q# H, ?! x) q6 g4 g- W
- Teamcenter::Item *pItem = dynamic_cast<Teamcenter::Item *>(Teamcenter::BusinessObjectRegistry::instance().createBusinessObject(itemCreateInput));
' }: K; g+ ?: `1 X! i
1 D& [: \! G8 u: a- ifail = AOM_save_with_extensions(pItem->getTag());; m# P& Y6 _* h7 w4 n1 I
' e% A K9 r/ j- // If the Revision is not saved it will inherit the Item's Name and Description.
7 q: u8 k b; o; ?" z( x) W - ifail = AOM_save_with_extensions(revCreateInput->getTag());6 y& B: ?* |; v- p% Q
- }
复制代码
+ r3 `9 I3 K) J- n
@6 e: X' d" k# W- G# B' ?) @ |
|