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

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

[复制链接]

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

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

admin 楼主

2017-12-27 08:59:02

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

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

x
新建文档是CAA开发中的常用操作,分为在批处理环境下新建和在可视化交互环境下新建两种。下面以在批处理环境下新建为例,简要介绍步骤及涉及的方法。- z0 ~0 Z$ P$ Y: w' |) R

5 g: s$ u/ u3 x* N+ U) G( r$ y3 ]  W创建会话
7 [7 D: i; R2 s9 {, h
  Q" D+ B7 N8 D) L这是一个批处理程序,在使用文档之前首先需要打开一个会话。在CAA中,打开一个会话可使用全局函数Create_Session。: h- Y) V$ j! ]8 C% ^. R* f3 Y) g
" U1 l0 F, y" b& x. \8 x: W' {
char *sessionName = "CAA2_Sample_Session";
' X# R' U8 m' y$ y, [4 Y; C9 cCATSession *pSession = NULL;) s( X& u. y' D% h5 E
HRESULT rc = ::Create_Session(sessionName, pSession);, T( s8 [9 X; w, ~1 B- T$ }4 R. E+ [
创建文档
) k  H' v- A+ I, [
& a1 A) p' s9 d  A$ c) s会话打开之后,可以使用CATDocumentServices的静态方法New创建文档,该方法创建一个文档并对它进行初始化,使其可以被加载、存储和编辑。在该例子中,使用“Part”作为这个文档的类型,在交互式的模式中,这是使用File/New操作后显示的名称,不是文件的类型,即在这里不要使用“CATPart”。1 M1 C9 C* B6 b7 g

( z  D5 W5 H0 O: k! ?- G( iCATDocument* pDoc = NULL;
+ G- C! ?3 A( G, irc = CATDocumentServices::New("Part",pDoc);) O% Q! F) H# D6 v
if (NULL != pDoc) cout << "New document created OK" << endl;
7 r8 V8 T8 G; M保存文档) j' q6 N: ]6 D) ~& a
, Q; Q; W. z! k& S" _
使用CATDocumentServices的静态函数SaveAs保存文档,该方法使用指向前面使用New方法所创建文档的指针作为第一个参数,用文档文件名作为第二个参数。
& [* z1 S7 l9 [- X0 P4 R) C( w
3 P5 n" K- j, _5 erc = CATDocumentServices::SaveAs (*pDoc, "TestPart");
* K, E/ ^! F% Q- D# Wif (SUCCEEDED(rc)) cout << "Document saved OK" << endl;7 T3 L4 d; Z# L* U/ r
移除文档
( b* }6 w7 y7 q) p6 q2 s
2 L2 I( j4 V; Z  F; k在同一个Session中如果你要再次打开文档,有必要在保存完成以后从会话中移除文档。如果不需要再次打开文档,你就无需担心文档从会话中移除的问题,因为删除会话时会自动将文档移除。使用CATDocumentServices的静态方法Remove可以从会话中移除文档。) L* _( Q( _2 X' M+ d, g1 Z

5 M& j, T, I2 n- C% W  Orc = CATDocumentServices::Remove (*pDoc);) D1 e! M0 w: b' ~
if (SUCCEEDED(rc)) cout << "Document removed OK" << endl;+ U( A- J! e2 l! [! V& E9 p, r) k  Z
pDoc = NULL ;
6 a# u: V2 H+ |4 A3 b- J删除会话
9 p! b& q( l* @3 [: J2 L0 L$ y! F. c! K* u
在程序的最后不要忘记使用全局函数Delete_Session删除会话。
0 I' M# F; U0 X! i8 k! C3 ]) |: _) n
rc = ::Delete_Session(sessionName);
- ^9 M. J' P4 t* T: gif (SUCCEEDED(rc)) cout << "Session deleted OK" << endl;) s2 x4 x5 x+ v. W  W+ @
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了