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

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

[复制链接]

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

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

admin 楼主

2017-12-27 08:59:02

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

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

x
新建文档是CAA开发中的常用操作,分为在批处理环境下新建和在可视化交互环境下新建两种。下面以在批处理环境下新建为例,简要介绍步骤及涉及的方法。
# }7 a/ ]3 `' Z, u1 G/ v6 e7 B5 r" o4 ]$ k: c( ~, G
创建会话( w6 b( C7 E) R1 A- D6 `
) W+ H( p) j8 D
这是一个批处理程序,在使用文档之前首先需要打开一个会话。在CAA中,打开一个会话可使用全局函数Create_Session。8 \, m6 `8 T7 X- u. j5 C7 N

8 \# v' Q9 H. y' b6 Tchar *sessionName = "CAA2_Sample_Session";
8 k  O! t, S' ^. |$ G: c4 P, N. \CATSession *pSession = NULL;9 Q' a1 a' q; j& s7 G, K4 v
HRESULT rc = ::Create_Session(sessionName, pSession);+ e' c5 Q2 B' g! c; f( o
创建文档0 n" z$ S( X; @" v) C) F8 W2 `

+ f, f5 S, I3 M2 j' R! }会话打开之后,可以使用CATDocumentServices的静态方法New创建文档,该方法创建一个文档并对它进行初始化,使其可以被加载、存储和编辑。在该例子中,使用“Part”作为这个文档的类型,在交互式的模式中,这是使用File/New操作后显示的名称,不是文件的类型,即在这里不要使用“CATPart”。
$ u3 i- L+ l( j* v' `- X9 v+ h' `; q+ H* z
CATDocument* pDoc = NULL;
9 F& a: \4 I9 q: n& i$ Q! Vrc = CATDocumentServices::New("Part",pDoc);
5 @% y  I" I8 o- L7 @if (NULL != pDoc) cout << "New document created OK" << endl;+ ]0 E! H. b( L0 l- x+ R; T
保存文档. s% H. D, d- L3 w  j/ A+ R' y: c
0 i5 B9 Y7 N' N- G
使用CATDocumentServices的静态函数SaveAs保存文档,该方法使用指向前面使用New方法所创建文档的指针作为第一个参数,用文档文件名作为第二个参数。6 S/ q/ v: _- D/ F

' N& [" u" Q2 t. C: C% irc = CATDocumentServices::SaveAs (*pDoc, "TestPart");
* X; k5 l" x& n' Q1 \/ cif (SUCCEEDED(rc)) cout << "Document saved OK" << endl;
, n8 y$ X* L  d* j8 v移除文档- t9 F+ Z& X  ?; u

/ D0 R/ o  \9 |+ G5 h5 ]9 R在同一个Session中如果你要再次打开文档,有必要在保存完成以后从会话中移除文档。如果不需要再次打开文档,你就无需担心文档从会话中移除的问题,因为删除会话时会自动将文档移除。使用CATDocumentServices的静态方法Remove可以从会话中移除文档。
. W! x0 Q, L, E% X( n8 |- T( x6 F# |3 r/ h1 ?
rc = CATDocumentServices::Remove (*pDoc);3 k: Y* z6 u" s/ P% I
if (SUCCEEDED(rc)) cout << "Document removed OK" << endl;* F9 O) ?3 K& [
pDoc = NULL ;( U, r* F, ~: x( I
删除会话, a, }: w3 q) V( W) c( H4 W
. a3 P$ J2 b3 O" Z7 V
在程序的最后不要忘记使用全局函数Delete_Session删除会话。4 v% Z! ^& W* P. r. p% H
/ T0 n: w' t& G  P. x; V$ {2 n3 x
rc = ::Delete_Session(sessionName);- k. u; f) ~6 m* U1 ~- T& f
if (SUCCEEDED(rc)) cout << "Session deleted OK" << endl;
* O. D4 \; P/ @" t. R1 h
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 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二次开发专题模块培训报名开始啦

    我知道了