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

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

[复制链接]

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

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

admin 楼主

2017-12-27 08:59:02

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

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

x
新建文档是CAA开发中的常用操作,分为在批处理环境下新建和在可视化交互环境下新建两种。下面以在批处理环境下新建为例,简要介绍步骤及涉及的方法。7 a5 H: I6 |0 o2 h; J2 O

: K( D: z8 Y' I# Z; }, T! ]创建会话1 h1 O1 I: o: r9 P8 @0 a
& t" E# O  W2 D8 D0 d9 e
这是一个批处理程序,在使用文档之前首先需要打开一个会话。在CAA中,打开一个会话可使用全局函数Create_Session。
/ R( ~: J1 s( K& g! Z
1 S& y6 L, _& C# W0 `  W; H4 Qchar *sessionName = "CAA2_Sample_Session";
+ s6 b( {; T1 T7 B/ mCATSession *pSession = NULL;" q( s( C# w4 X3 ^6 l, G
HRESULT rc = ::Create_Session(sessionName, pSession);) n" v' o7 n1 j# w; w- |
创建文档
2 M0 d3 [' R8 T4 B' t, j; M  f8 C2 Z" x9 U  v
会话打开之后,可以使用CATDocumentServices的静态方法New创建文档,该方法创建一个文档并对它进行初始化,使其可以被加载、存储和编辑。在该例子中,使用“Part”作为这个文档的类型,在交互式的模式中,这是使用File/New操作后显示的名称,不是文件的类型,即在这里不要使用“CATPart”。
: i: o7 Y0 n1 Y" H
" _  h7 b1 `' Q! w. D  j# KCATDocument* pDoc = NULL;
) U7 r2 W. H# E$ A/ yrc = CATDocumentServices::New("Part",pDoc);
; l- T  v1 e& O* P' aif (NULL != pDoc) cout << "New document created OK" << endl;
/ J( F7 n# {2 X# x+ @8 L' O; e: [保存文档
5 u$ x. U3 S0 `% L( d' F4 _  v& q+ x" G( V
使用CATDocumentServices的静态函数SaveAs保存文档,该方法使用指向前面使用New方法所创建文档的指针作为第一个参数,用文档文件名作为第二个参数。
+ f6 o! x5 o+ \/ }1 c2 z! _/ @! ~9 ]$ l/ V
rc = CATDocumentServices::SaveAs (*pDoc, "TestPart");- i% p2 \: |! S
if (SUCCEEDED(rc)) cout << "Document saved OK" << endl;
) u' i3 X0 W9 l  h4 {5 u移除文档
2 W, M; u+ z8 h7 ]: y4 B  m
1 u, i, h2 `" U9 ~( b; [在同一个Session中如果你要再次打开文档,有必要在保存完成以后从会话中移除文档。如果不需要再次打开文档,你就无需担心文档从会话中移除的问题,因为删除会话时会自动将文档移除。使用CATDocumentServices的静态方法Remove可以从会话中移除文档。2 O: L! i" m. H- M- l. q2 s* T( m! U
; `* Z, `  X! K
rc = CATDocumentServices::Remove (*pDoc);# W5 [3 `: U# O1 n  H
if (SUCCEEDED(rc)) cout << "Document removed OK" << endl;
3 p7 `0 n! W! d% V7 CpDoc = NULL ;  I* \5 v0 J- B/ h: i
删除会话9 W+ y, A. ~' k6 c9 m

. N3 {: Z  Y! m8 P- Y# a在程序的最后不要忘记使用全局函数Delete_Session删除会话。
/ D, p2 }' V$ f, j
( ]; d, Z) V- R7 ]; Erc = ::Delete_Session(sessionName);% v) {1 h( v' i6 ~0 \$ U0 @! F( E
if (SUCCEEDED(rc)) cout << "Session deleted OK" << endl;
9 B( g* e, B* R
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了