PLM之家PLMHome-工业软件践行者

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82166
QQ
发表于 2017-12-27 08:59:02 | 显示全部楼层 |阅读模式

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

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

x
新建文档是CAA开发中的常用操作,分为在批处理环境下新建和在可视化交互环境下新建两种。下面以在批处理环境下新建为例,简要介绍步骤及涉及的方法。$ ~$ T- p, j. H0 ^! ^( K/ ^) G
% \% y* f% I  l( ^5 y
创建会话+ x% _: M4 p  x
6 m- v7 g0 s2 c+ m: ^
这是一个批处理程序,在使用文档之前首先需要打开一个会话。在CAA中,打开一个会话可使用全局函数Create_Session。( `! K( ], F/ x4 r5 [
+ n: d" C0 o9 c1 y' f3 L  w7 r
char *sessionName = "CAA2_Sample_Session";2 M) L4 `$ c8 j/ v9 j) O8 v
CATSession *pSession = NULL;, K" I* ^0 E2 k
HRESULT rc = ::Create_Session(sessionName, pSession);
0 H) {: E/ Z4 P% J) L创建文档
- B( z$ J- i$ u2 ?, _" d/ M: t4 |: \! M
会话打开之后,可以使用CATDocumentServices的静态方法New创建文档,该方法创建一个文档并对它进行初始化,使其可以被加载、存储和编辑。在该例子中,使用“Part”作为这个文档的类型,在交互式的模式中,这是使用File/New操作后显示的名称,不是文件的类型,即在这里不要使用“CATPart”。
- E' U. ?! |# l! l, M% e9 {" K  i$ M0 c  z9 ~& i
CATDocument* pDoc = NULL;
' [# I9 Z/ y9 K, erc = CATDocumentServices::New("Part",pDoc);$ k2 E7 ^6 ~0 b0 c# s# m) C3 |# P3 ]
if (NULL != pDoc) cout << "New document created OK" << endl;* Y. t1 ^& G; q7 N% H1 a3 b
保存文档/ f! ?; V+ j/ J6 x6 \: c* h

. y0 u2 @9 ~$ Y- ^使用CATDocumentServices的静态函数SaveAs保存文档,该方法使用指向前面使用New方法所创建文档的指针作为第一个参数,用文档文件名作为第二个参数。1 S- \: _/ R' w

8 H. Q8 R& O; A, brc = CATDocumentServices::SaveAs (*pDoc, "TestPart");: E0 k5 b( o/ ^( [' v
if (SUCCEEDED(rc)) cout << "Document saved OK" << endl;; @; j, G- M) _$ V
移除文档
) I$ i6 @, m3 Q; ?$ y) W9 ~) s6 O3 q; v: l. c$ ~' C7 F0 c
在同一个Session中如果你要再次打开文档,有必要在保存完成以后从会话中移除文档。如果不需要再次打开文档,你就无需担心文档从会话中移除的问题,因为删除会话时会自动将文档移除。使用CATDocumentServices的静态方法Remove可以从会话中移除文档。
& M! C5 b; j- n* B# H/ R; E4 Q/ ~0 ^! D
rc = CATDocumentServices::Remove (*pDoc);  d& ?6 l4 S/ a9 c8 S
if (SUCCEEDED(rc)) cout << "Document removed OK" << endl;5 F4 q* m2 F) ^# l
pDoc = NULL ;
7 n5 V8 y* V6 F, B. ?6 l7 B0 ~删除会话$ w# R6 z7 C5 [. s: ?9 ~. t
/ G, \4 i# M$ ?+ X2 }0 j
在程序的最后不要忘记使用全局函数Delete_Session删除会话。
) M2 I6 e; j; {' d5 M
  `' c4 S0 q1 F# z+ xrc = ::Delete_Session(sessionName);' S$ c, g$ o' @  Q8 m0 n) }, i
if (SUCCEEDED(rc)) cout << "Session deleted OK" << endl;
, {/ G7 b* O3 _8 `' q
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

全部回复1

1

主题

38

回帖

603

积分

高级会员

积分
603
发表于 2018-2-28 06:22:14 | 显示全部楼层
显示所有内容
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了