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

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

[复制链接]

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

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

admin 楼主

2017-12-27 08:59:02

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

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

x
新建文档是CAA开发中的常用操作,分为在批处理环境下新建和在可视化交互环境下新建两种。下面以在批处理环境下新建为例,简要介绍步骤及涉及的方法。
  R- O. K3 G' [% M/ D/ Q" P- H1 U- Q. }. ]6 R
创建会话
# V' l7 ?) z  ^: j
/ j  }) Z% p3 \  k1 j" c; S这是一个批处理程序,在使用文档之前首先需要打开一个会话。在CAA中,打开一个会话可使用全局函数Create_Session。1 ~* Q6 u! Y4 v- }2 l# w" j4 N3 ^
- F* {7 I- U6 n' i9 {
char *sessionName = "CAA2_Sample_Session";- ~4 b- s& p1 }, R; C) f
CATSession *pSession = NULL;' [  V, z. H& B; U9 _7 w4 e( h- g
HRESULT rc = ::Create_Session(sessionName, pSession);
% U1 h5 Y* |- S创建文档1 Q, n2 m" N" f& u6 q4 U

' w# N% d' A: V会话打开之后,可以使用CATDocumentServices的静态方法New创建文档,该方法创建一个文档并对它进行初始化,使其可以被加载、存储和编辑。在该例子中,使用“Part”作为这个文档的类型,在交互式的模式中,这是使用File/New操作后显示的名称,不是文件的类型,即在这里不要使用“CATPart”。
3 x$ h; p: ^/ {3 C) f; H4 i/ D4 L- O% h0 b# u% o
CATDocument* pDoc = NULL;
: z- [% D/ c, yrc = CATDocumentServices::New("Part",pDoc);
& T/ m4 o9 v8 y2 lif (NULL != pDoc) cout << "New document created OK" << endl;% F# t$ [: Y- @+ l6 z, |0 [9 Y! _
保存文档" ~: Y. W5 P+ o& h

5 c. c1 H/ z) O5 U1 h$ x- i使用CATDocumentServices的静态函数SaveAs保存文档,该方法使用指向前面使用New方法所创建文档的指针作为第一个参数,用文档文件名作为第二个参数。; ?! C+ {6 u6 j( n
3 Z# i) L! h. T
rc = CATDocumentServices::SaveAs (*pDoc, "TestPart");
: R/ F* W9 r" e( o/ q& I$ yif (SUCCEEDED(rc)) cout << "Document saved OK" << endl;& @, Z& }9 x6 k; Y; E4 y* A
移除文档4 ]) E3 g1 }1 Q1 p6 t( b; x' }) ~
- j3 z% z5 t$ l3 l+ k8 p' W
在同一个Session中如果你要再次打开文档,有必要在保存完成以后从会话中移除文档。如果不需要再次打开文档,你就无需担心文档从会话中移除的问题,因为删除会话时会自动将文档移除。使用CATDocumentServices的静态方法Remove可以从会话中移除文档。
" t& R9 r" C# h6 z  J$ O' ]" u0 a( U0 G( V! E
rc = CATDocumentServices::Remove (*pDoc);
- i4 _$ P4 u% x, Y8 G+ D# xif (SUCCEEDED(rc)) cout << "Document removed OK" << endl;4 @; l9 K1 o/ L! l# m- ~9 x% K
pDoc = NULL ;# b5 r- U$ A& g/ y
删除会话& O6 d! q5 b8 T( D

6 L8 U# M9 F3 ^" j, v在程序的最后不要忘记使用全局函数Delete_Session删除会话。
  ]% J0 G( a( O9 ?" x
" m( Y4 Q- f3 Grc = ::Delete_Session(sessionName);
4 L  M# y) _) t1 q0 @' fif (SUCCEEDED(rc)) cout << "Session deleted OK" << endl;( t2 F* p: p. [
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了