PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

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

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

admin 楼主

2015-1-21 13:16:44

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

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

x

! t4 p( H! Y, D% t- Y* jTeamcenter C++二次开发源码分享:创建item和item版本
- Q" i0 B% x  f# Q! [( }  W& c) P5 i
/ ]7 v6 I& R/ q; r% Q8 n2 K8 c2 ~$ S) I
通过创建businessobject 指定的createinput 完成对象的创建. E; o* n/ ]3 T2 U

9 \+ H$ }) i, g- K2 F8 {( U% }; K1 k/ A5 }8 }4 Y7 r
  1. #include <constants/constants.h>
      O1 A0 L* v% L' M) l
  2. #include <TCcore/Item.hxx>
    $ y& v) o$ G& e" U+ d' B  ~. v! S. A
  3. #include <metaframework/CreateInput.hxx>
    3 q/ Q  v3 B2 U2 d4 L1 S6 U
  4. #include <metaframework/BusinessObjectRegistry.hxx>9 l4 x) ]9 a5 t$ I
  5. 3 F7 E# j3 m" T3 S0 @; U, y/ [
  6. using namespace std;' r( J/ r5 E  Q) r, ^  [

  7. ( t# H4 |, B! F
  8. static void createItemAndRevisionWithDifferentNames(void)% B( G3 M6 Y4 y9 R; l
  9. {
    3 [1 J$ ]1 X* f+ A$ {! A( s
  10.     int ifail = ITK_ok;& J$ Q  z+ Q& g, X

  11. : h5 r" U  h" ?/ H
  12.     char type_name[] = "Item";
    0 s" O7 k/ |: h3 a. s( N, O
  13.     Teamcenter::CreateInput* itemCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(type_name, OPERATIONINPUT_CREATE));- a; T* J; H7 p7 [4 y2 p* ]
  14. 4 p$ V* l- f+ M+ v& g: _
  15.     //Revision type name is not always <item type name>Revision
    * W! B: J. v1 d8 B4 I6 M- x
  16.     char *revision_type_name = 0;; L' y) y7 H1 z: T9 X: Y
  17.     CONSTANTS_get_type_constant_value("ItemRevision", type_name, &revision_type_name);0 _+ G. L) T8 [1 y9 r$ p
  18. ! L! ]  @% O* p( X  K0 \
  19.     Teamcenter::CreateInput* revCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(revision_type_name, OPERATIONINPUT_CREATE));
    " y5 |8 H. ^3 G9 n6 L+ C) e
  20.     , K! k5 j# k( |$ }; j  T/ z1 ~
  21.     MEM_free(revision_type_name);
    & I0 b0 R/ d1 u1 D6 Q
  22. 6 s9 T# E; {9 x! U
  23.     // set Item properties
    ( O: A, G# A8 P2 C/ o
  24.     itemCreateInput->setString("item_id", "1234567", false);
    9 p3 o# c) ~; ]
  25.     itemCreateInput->setString("object_name", "My Item Name", false);- T0 u; s% S2 y: |  i7 S! K: O  q
  26.     itemCreateInput->setString("object_desc", "My Item Description", false);
    9 N+ N: }8 Z2 ?$ m% v; A
  27.     itemCreateInput->setTag("revision", revCreateInput->getTag(), false);- o! Y  y- l& c, m2 O/ C5 a
  28. - g8 C7 k4 t! n" j& \. w$ x
  29.     // set Revision properties* v8 p) S4 g* F6 Q* L7 t2 T
  30.     revCreateInput->setString("item_revision_id", "00", false);) W4 a# y! s' b* ?6 i9 t
  31.     revCreateInput->setString("object_name", "My Revision Name", false);% s& O! Y  j" p- q% I5 t+ p' ^/ @
  32.     revCreateInput->setString("object_desc", "My Revision Description", false);' m- Y# M; B- y2 V
  33. + E7 w* f9 F, v5 P" f0 B: `
  34.     Teamcenter::Item *pItem = dynamic_cast<Teamcenter::Item *>(Teamcenter::BusinessObjectRegistry::instance().createBusinessObject(itemCreateInput));
    % l# W; _! ]0 b" M4 |8 U

  35. - s, l0 C$ V4 ?
  36.     ifail = AOM_save_with_extensions(pItem->getTag());  C( W& o+ y% |$ r- N; c. A1 P) f
  37. . |# z+ M3 `& \2 i& @
  38.     // If the Revision is not saved it will inherit the Item's Name and Description.+ H( V1 h7 _. G) C/ y  A
  39.     ifail = AOM_save_with_extensions(revCreateInput->getTag());; X& S/ ~3 M" V/ Z3 G8 R( v7 }
  40. }
复制代码

/ \- R; Z$ R9 e: K3 S, p2 Y4 s* t  F& f* w; W3 Y" k
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了