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

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

[复制链接]

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

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

admin 楼主

2017-12-27 08:59:02

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

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

x
新建文档是CAA开发中的常用操作,分为在批处理环境下新建和在可视化交互环境下新建两种。下面以在批处理环境下新建为例,简要介绍步骤及涉及的方法。7 \- c% N2 x% s2 y4 b" j# \

5 G, \! i, K3 e6 h创建会话
+ u1 [5 s+ y8 X, [
/ g7 H5 v" O/ R9 x# Q这是一个批处理程序,在使用文档之前首先需要打开一个会话。在CAA中,打开一个会话可使用全局函数Create_Session。
7 N# y1 ?: b" q& J/ V( i2 }  i/ H+ @. M% \% ]
char *sessionName = "CAA2_Sample_Session";
! N: Q8 ~" t7 o1 oCATSession *pSession = NULL;
. J. Q6 U6 Q6 g) _) s4 wHRESULT rc = ::Create_Session(sessionName, pSession);% U: D2 [+ w( I# m6 j$ `4 \5 f
创建文档( i& h# @0 |8 J
% ?7 h5 M# q% D4 ]: K2 V
会话打开之后,可以使用CATDocumentServices的静态方法New创建文档,该方法创建一个文档并对它进行初始化,使其可以被加载、存储和编辑。在该例子中,使用“Part”作为这个文档的类型,在交互式的模式中,这是使用File/New操作后显示的名称,不是文件的类型,即在这里不要使用“CATPart”。
2 _; I5 e' b9 x2 q. v* e9 V+ ?6 h/ x6 e' A
CATDocument* pDoc = NULL;
  v. G7 l0 L: {( X3 ]3 C' ?+ A$ m6 R! frc = CATDocumentServices::New("Part",pDoc);. O/ ?0 F0 X- y  Q# X1 w+ i
if (NULL != pDoc) cout << "New document created OK" << endl;+ p. I  Z: G4 j1 O% U0 R
保存文档; m- j. t' n8 m; y$ S9 \: y, j

& u  _/ b6 u: [& \7 H使用CATDocumentServices的静态函数SaveAs保存文档,该方法使用指向前面使用New方法所创建文档的指针作为第一个参数,用文档文件名作为第二个参数。
) Z  q" r3 V( I/ t
7 K7 s6 @3 D, a! e' o* jrc = CATDocumentServices::SaveAs (*pDoc, "TestPart");" b/ ^" S" c1 }$ L+ I
if (SUCCEEDED(rc)) cout << "Document saved OK" << endl;' q" k6 P  v$ s+ q. g4 P/ m$ J
移除文档- L5 G2 q6 P) ~1 j& ~3 Q
/ z- J7 E+ n) S* ^
在同一个Session中如果你要再次打开文档,有必要在保存完成以后从会话中移除文档。如果不需要再次打开文档,你就无需担心文档从会话中移除的问题,因为删除会话时会自动将文档移除。使用CATDocumentServices的静态方法Remove可以从会话中移除文档。1 B4 o2 d! \. b4 W
4 j% _9 R9 b+ u9 {3 c; g
rc = CATDocumentServices::Remove (*pDoc);8 V& C; n8 O1 b# ^7 ]* X
if (SUCCEEDED(rc)) cout << "Document removed OK" << endl;: B' Q5 ~* m7 Z5 j: O
pDoc = NULL ;8 M+ V- Y( T$ X7 ~* t6 @4 S4 A
删除会话+ r% U4 O# y( r  Q- i+ V. I# o
7 V# h$ a$ J8 g: o) n, B0 ], o
在程序的最后不要忘记使用全局函数Delete_Session删除会话。
. t! P  Q: ?  U
2 n5 K! L5 M2 k( j( u5 o2 Zrc = ::Delete_Session(sessionName);
/ n* v' l6 T9 b: I! {- Y* I2 sif (SUCCEEDED(rc)) cout << "Session deleted OK" << endl;8 W  y% R5 M2 M' \
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了