PLM之家PLMHome-国产软件践行者

CATIA 二次开发源码分享: CAA 如何新建一个文档

[复制链接]

2018-2-28 06:22:14 3403 1

admin 发表于 2017-12-27 08:59:02 |阅读模式

admin 楼主

2017-12-27 08:59:02

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

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

x
新建文档是CAA开发中的常用操作,分为在批处理环境下新建和在可视化交互环境下新建两种。下面以在批处理环境下新建为例,简要介绍步骤及涉及的方法。
# L! I7 v4 l" b8 m! U
7 l7 ~/ z6 y/ r8 {" D1 T, t创建会话$ T8 v7 I% ]  y8 K5 X2 S# Z
: m, f0 W- P/ _, o7 M( y6 X  q
这是一个批处理程序,在使用文档之前首先需要打开一个会话。在CAA中,打开一个会话可使用全局函数Create_Session。
1 d2 A6 ~+ K' Y, R# I+ x8 p; Q( D1 F  b% U' Y- [  f0 R+ m
char *sessionName = "CAA2_Sample_Session";) a& i5 [# n: Y
CATSession *pSession = NULL;8 v$ V* [- K) Q8 u
HRESULT rc = ::Create_Session(sessionName, pSession);
6 l+ h3 z; |6 d, i2 u% R$ w+ H: v创建文档( I' P. q' v  G/ y7 \
% J$ ]4 W7 A! {
会话打开之后,可以使用CATDocumentServices的静态方法New创建文档,该方法创建一个文档并对它进行初始化,使其可以被加载、存储和编辑。在该例子中,使用“Part”作为这个文档的类型,在交互式的模式中,这是使用File/New操作后显示的名称,不是文件的类型,即在这里不要使用“CATPart”。6 N9 V* r1 q8 G: _

' t2 a6 f! {4 B' ~% _CATDocument* pDoc = NULL;
% L+ X0 P. |8 t6 W) R0 Brc = CATDocumentServices::New("Part",pDoc);
6 e5 b! g1 M& j* M; y) Rif (NULL != pDoc) cout << "New document created OK" << endl;
; D* K. p3 Y! R* C& {3 B6 e+ c+ c保存文档
1 v4 M$ {  p2 |# c- ]8 C# `8 s; O7 |& }( W2 i) z5 P+ D4 t
使用CATDocumentServices的静态函数SaveAs保存文档,该方法使用指向前面使用New方法所创建文档的指针作为第一个参数,用文档文件名作为第二个参数。
9 |9 `' `) @) i) v! G6 g( P( _. v  S9 G  k) H8 T- U3 I3 R' M+ b  x
rc = CATDocumentServices::SaveAs (*pDoc, "TestPart");0 X0 R# ]& a2 n: M* x8 U
if (SUCCEEDED(rc)) cout << "Document saved OK" << endl;
  E) q; J- D3 x6 _' e. Q移除文档; M- |0 H* G$ E" A  Y& B8 q) l
( W/ y2 D  d4 @/ X! d9 k
在同一个Session中如果你要再次打开文档,有必要在保存完成以后从会话中移除文档。如果不需要再次打开文档,你就无需担心文档从会话中移除的问题,因为删除会话时会自动将文档移除。使用CATDocumentServices的静态方法Remove可以从会话中移除文档。! h" m1 G. K9 @* l7 N
6 @8 d# V. P( l8 N* y3 E
rc = CATDocumentServices::Remove (*pDoc);. u3 P, N3 l1 Q4 j5 l& q
if (SUCCEEDED(rc)) cout << "Document removed OK" << endl;
" b9 K& P2 K1 G* U6 }pDoc = NULL ;3 G( R: e+ i: d* c  G0 e
删除会话3 ~% u2 L9 W3 |: E$ C4 F, u

/ o  G6 b* ]& d: x5 ]7 o: U在程序的最后不要忘记使用全局函数Delete_Session删除会话。
6 H, k' |  H4 \5 p0 n* c/ t) V& h% z( a% C
rc = ::Delete_Session(sessionName);" |4 U2 \$ U- N9 o/ V! j
if (SUCCEEDED(rc)) cout << "Session deleted OK" << endl;) z5 a' [, |5 H4 K0 D. m# [+ |7 I* V# T0 K
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

全部回复1

cwp86 发表于 2018-2-28 06:22:14

cwp86 沙发

2018-2-28 06:22:14

显示所有内容
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了