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

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

[复制链接]

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

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

admin 楼主

2017-12-27 08:59:02

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

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

x
新建文档是CAA开发中的常用操作,分为在批处理环境下新建和在可视化交互环境下新建两种。下面以在批处理环境下新建为例,简要介绍步骤及涉及的方法。
3 P2 f7 O6 [# D1 M+ d& J
' a/ ^+ _( l& b1 j& `" e) J创建会话
: @4 Y+ Z! z$ q3 U# y  i* |
1 p" g6 [: f5 _6 d& K这是一个批处理程序,在使用文档之前首先需要打开一个会话。在CAA中,打开一个会话可使用全局函数Create_Session。1 e6 e2 k, s( T' C. J& x
8 _3 E) [$ U% b
char *sessionName = "CAA2_Sample_Session";; @% C8 X1 h9 @: _* \' R
CATSession *pSession = NULL;
4 I" b- A# m' a* NHRESULT rc = ::Create_Session(sessionName, pSession);
( L# N* x% @2 R2 S0 G创建文档% E/ y# U8 [7 I0 t3 A; u/ C
$ w# J( u4 a: b9 H2 s' R9 t3 r  ^- J- B
会话打开之后,可以使用CATDocumentServices的静态方法New创建文档,该方法创建一个文档并对它进行初始化,使其可以被加载、存储和编辑。在该例子中,使用“Part”作为这个文档的类型,在交互式的模式中,这是使用File/New操作后显示的名称,不是文件的类型,即在这里不要使用“CATPart”。
/ O. V% p8 q- Q- ]0 w, G" _# P" A8 `0 t2 C- X8 d
CATDocument* pDoc = NULL;
8 h$ F1 x* M0 H* q% w3 src = CATDocumentServices::New("Part",pDoc);2 d3 v  q$ K+ G+ a7 G2 a
if (NULL != pDoc) cout << "New document created OK" << endl;
7 d4 ^0 x! u' I5 \2 A保存文档
7 @- h: y- }. e0 I! v
- U/ c( C% J  W+ P' }使用CATDocumentServices的静态函数SaveAs保存文档,该方法使用指向前面使用New方法所创建文档的指针作为第一个参数,用文档文件名作为第二个参数。# X  X7 n! w; z3 \0 E

0 F( Q5 c+ a- R5 hrc = CATDocumentServices::SaveAs (*pDoc, "TestPart");
3 S& k, N5 r. \& Z, O5 t* q; _1 @( gif (SUCCEEDED(rc)) cout << "Document saved OK" << endl;
6 g( J' f# V4 I& _1 F移除文档
! m& F9 A  b) Q( q0 h
5 I# [- }1 k: }9 h2 v6 q2 d1 U在同一个Session中如果你要再次打开文档,有必要在保存完成以后从会话中移除文档。如果不需要再次打开文档,你就无需担心文档从会话中移除的问题,因为删除会话时会自动将文档移除。使用CATDocumentServices的静态方法Remove可以从会话中移除文档。
9 ?9 j7 v9 w  A0 Y* w
0 V) F* X0 m0 S! ^1 Urc = CATDocumentServices::Remove (*pDoc);9 a' K2 ~- u  ]8 N3 x
if (SUCCEEDED(rc)) cout << "Document removed OK" << endl;
6 l( n# c1 u( T; V, k" upDoc = NULL ;
! y+ U3 U8 x; q9 N; m3 U删除会话
" f7 _) c5 e  f5 }3 h! o/ D9 {/ W7 V# ]. R  a0 S# t, C
在程序的最后不要忘记使用全局函数Delete_Session删除会话。1 t3 V& [4 n0 U. L+ L3 R
4 e3 ?6 i- ~# N4 Y
rc = ::Delete_Session(sessionName);1 x# k8 W2 L. B" S( F
if (SUCCEEDED(rc)) cout << "Session deleted OK" << endl;
- M. T- C$ f$ _/ `) g
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了