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

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

[复制链接]

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

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

admin 楼主

2017-12-27 08:59:02

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

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

x
新建文档是CAA开发中的常用操作,分为在批处理环境下新建和在可视化交互环境下新建两种。下面以在批处理环境下新建为例,简要介绍步骤及涉及的方法。$ O3 d2 `3 L$ X4 ]6 l

3 C% X! u4 p* q. l1 e; |创建会话
8 {6 q9 @4 I: c
- ]# D4 l8 D+ u4 ~8 ~/ G( M这是一个批处理程序,在使用文档之前首先需要打开一个会话。在CAA中,打开一个会话可使用全局函数Create_Session。3 S! |7 N1 I& M# o

$ W' t8 N; _: i: \7 L$ S% Gchar *sessionName = "CAA2_Sample_Session";) T- a1 K3 E- F9 C: w
CATSession *pSession = NULL;# \: A5 N- O8 r' B( p) B
HRESULT rc = ::Create_Session(sessionName, pSession);
0 K0 e# x9 o& _  h5 V创建文档
- [" H0 U' m. }3 Z' }- }) i0 J, k0 a7 D% N3 w& q
会话打开之后,可以使用CATDocumentServices的静态方法New创建文档,该方法创建一个文档并对它进行初始化,使其可以被加载、存储和编辑。在该例子中,使用“Part”作为这个文档的类型,在交互式的模式中,这是使用File/New操作后显示的名称,不是文件的类型,即在这里不要使用“CATPart”。" E$ d4 ?6 v, v6 A, l+ q

: @1 R* A. R& a9 E+ z  w8 n2 aCATDocument* pDoc = NULL;5 G8 y. {8 N3 m. H- a
rc = CATDocumentServices::New("Part",pDoc);
- S+ X* U& f4 N2 B8 z6 w# `if (NULL != pDoc) cout << "New document created OK" << endl;
; O2 c$ C, H# `0 g' J- c* u1 p7 d保存文档; d6 g4 [) M& a( Y) U) j
7 g  j: ~# r6 [# s3 V
使用CATDocumentServices的静态函数SaveAs保存文档,该方法使用指向前面使用New方法所创建文档的指针作为第一个参数,用文档文件名作为第二个参数。
, ^7 O7 a+ g$ L+ p' g- ]2 W6 d2 i* A0 D6 W9 q, W
rc = CATDocumentServices::SaveAs (*pDoc, "TestPart");
% [' O# X4 y: m1 s' B2 Wif (SUCCEEDED(rc)) cout << "Document saved OK" << endl;3 d! s! L9 S; D, ~' S
移除文档
2 M  f$ t5 |1 T4 X) o. `* O% X0 y$ M" I
在同一个Session中如果你要再次打开文档,有必要在保存完成以后从会话中移除文档。如果不需要再次打开文档,你就无需担心文档从会话中移除的问题,因为删除会话时会自动将文档移除。使用CATDocumentServices的静态方法Remove可以从会话中移除文档。7 U; a' e# X# X6 Y/ e- M# ~) A  P
2 X3 p3 B3 a9 h6 K" o6 F
rc = CATDocumentServices::Remove (*pDoc);2 e: ]+ b& Y4 L! P
if (SUCCEEDED(rc)) cout << "Document removed OK" << endl;
" I' l- c+ t4 u  `5 w- @pDoc = NULL ;9 \, w& j: m; r4 ?
删除会话
& i6 g2 z, a* X! x2 ]% @, W. }" V; X; D; l  p3 x
在程序的最后不要忘记使用全局函数Delete_Session删除会话。
5 u" ~  }6 f) r- z' w0 E3 u0 c) k- E# Z: ?' L& w) f; l. {
rc = ::Delete_Session(sessionName);
* t+ |4 M( c& u( C2 [0 iif (SUCCEEDED(rc)) cout << "Session deleted OK" << endl;% K( a2 ?3 |9 s1 _! _
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了