PLM之家PLMHome-工业软件践行者

teamcenter C++二次开发源码分享:创建item和item版本

[复制链接]

2015-1-21 13:16:44 5350 0

admin 发表于 2015-1-21 13:16:44 |阅读模式

admin 楼主

2015-1-21 13:16:44

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

x

& T' b1 E3 _. PTeamcenter C++二次开发源码分享:创建item和item版本
& S9 A& o: H6 R. _+ [* N8 Y) E/ U1 E* l

9 L. z. r9 B* K, }. M7 A5 }! t通过创建businessobject 指定的createinput 完成对象的创建
- X" x1 b0 y4 u. L( L" A/ z2 L+ o4 \; M3 D

. l) j1 W5 {% c: ?
  1. #include <constants/constants.h>1 F9 c. s# c/ f' P! q
  2. #include <TCcore/Item.hxx>
    ! g6 n! q$ ^. Y8 S( G5 i
  3. #include <metaframework/CreateInput.hxx>. h0 X+ J# A. k
  4. #include <metaframework/BusinessObjectRegistry.hxx>4 r2 @0 O- \! Z6 K: H2 Y

  5. ! K6 L% c- G% `$ l
  6. using namespace std;( a5 Z. X7 {% g$ y& h

  7. 2 ^/ s) s2 x# G' f. k5 }1 w5 H
  8. static void createItemAndRevisionWithDifferentNames(void)
    2 Y2 z6 a8 y8 v+ F6 R3 Y6 U
  9. {
    6 V/ j" }' @- G/ f' A6 @: _
  10.     int ifail = ITK_ok;
    * e& J, C# e/ U. x! B# O% Q* Z
  11. 9 I; P3 _+ T& \9 q
  12.     char type_name[] = "Item";2 Z/ j) q) Z0 |+ t
  13.     Teamcenter::CreateInput* itemCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(type_name, OPERATIONINPUT_CREATE));
    5 Q3 T0 D, P  j) n' X

  14. 2 T2 j- x# ^, J6 ]; {3 g& f
  15.     //Revision type name is not always <item type name>Revision* y1 f$ M- C: G! l% x
  16.     char *revision_type_name = 0;3 ~2 Q/ s4 p) m& C' R
  17.     CONSTANTS_get_type_constant_value("ItemRevision", type_name, &revision_type_name);
    % ~* S) }+ w% X0 v

  18. " U* p7 ^$ o7 q, G# e. C
  19.     Teamcenter::CreateInput* revCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(revision_type_name, OPERATIONINPUT_CREATE));
    . y0 |; j9 e% G' Z2 v7 X
  20.     2 c3 _) i8 E" w( w4 J
  21.     MEM_free(revision_type_name);
    ) a* [& u" w2 x$ |% Q, A* n

  22. ; M) P6 i7 o2 A  ?! T5 F! D1 m
  23.     // set Item properties. c; }0 p8 t( }
  24.     itemCreateInput->setString("item_id", "1234567", false);
      A2 f. s2 _4 C+ |2 a
  25.     itemCreateInput->setString("object_name", "My Item Name", false);
    - P, O0 a4 l0 Z9 I3 X7 X/ V& f
  26.     itemCreateInput->setString("object_desc", "My Item Description", false);
    " p* G% I: J& G* X! U% v
  27.     itemCreateInput->setTag("revision", revCreateInput->getTag(), false);7 B( U6 ^% C, g: p. {0 T7 R$ Y5 h+ G
  28. ) A2 o/ \& a$ ]& g3 {. t
  29.     // set Revision properties3 o, W. F2 b; j0 D0 d2 l
  30.     revCreateInput->setString("item_revision_id", "00", false);# M# o* `$ B# {
  31.     revCreateInput->setString("object_name", "My Revision Name", false);4 T, y" V$ w5 b& q
  32.     revCreateInput->setString("object_desc", "My Revision Description", false);" I3 p4 M: t: w. t+ B+ b) q+ i
  33. 9 _0 x. E. z% b* ^
  34.     Teamcenter::Item *pItem = dynamic_cast<Teamcenter::Item *>(Teamcenter::BusinessObjectRegistry::instance().createBusinessObject(itemCreateInput));
    1 n! r/ q1 k/ V" u+ c& P4 I- N7 y% B
  35. 8 v- A" m- q5 c) p0 w( F
  36.     ifail = AOM_save_with_extensions(pItem->getTag());
    " t* o* d* B( Z' W1 n! F1 b
  37. % @& L% v# q$ ]' D
  38.     // If the Revision is not saved it will inherit the Item's Name and Description.; e+ O) M- E  X/ X2 {. a0 [7 X
  39.     ifail = AOM_save_with_extensions(revCreateInput->getTag());1 }8 c  ~" i7 S( T
  40. }
复制代码

1 A$ Q% ^$ T( J9 d( i9 }! u$ t" O
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了