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

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

[复制链接]

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

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

admin 楼主

2017-12-27 08:59:02

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

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

x
新建文档是CAA开发中的常用操作,分为在批处理环境下新建和在可视化交互环境下新建两种。下面以在批处理环境下新建为例,简要介绍步骤及涉及的方法。
' H& Z& Y/ w" S! C
' \. J$ i( d$ q% i$ e创建会话
* \5 c  O" a. D9 F" V: e* j6 ]; I- \# Q& t% S. a- b
这是一个批处理程序,在使用文档之前首先需要打开一个会话。在CAA中,打开一个会话可使用全局函数Create_Session。7 A- X4 H& g* ]6 b6 Y: {" E; ^+ M

( Q- ~& S& v0 H; z9 P5 A8 Hchar *sessionName = "CAA2_Sample_Session";
3 N6 L7 M; n. D+ m" mCATSession *pSession = NULL;
! p9 p* k+ m" h8 c/ W8 `HRESULT rc = ::Create_Session(sessionName, pSession);; u' I, G6 G& {# b$ p% P# E0 f
创建文档
* ?. |1 f& \% d) q# a" W  h, Z" G
" |% Q2 W7 n3 A4 n会话打开之后,可以使用CATDocumentServices的静态方法New创建文档,该方法创建一个文档并对它进行初始化,使其可以被加载、存储和编辑。在该例子中,使用“Part”作为这个文档的类型,在交互式的模式中,这是使用File/New操作后显示的名称,不是文件的类型,即在这里不要使用“CATPart”。& K% N$ E4 y; z) H* D/ A+ @+ r

" L0 F2 ~7 B& XCATDocument* pDoc = NULL;
6 h* Y( a  G+ \% {2 `; C) Krc = CATDocumentServices::New("Part",pDoc);/ R6 L& E- H$ l8 T
if (NULL != pDoc) cout << "New document created OK" << endl;1 m3 _# e' i: F
保存文档
/ G' H" p5 N3 z3 Z' y$ Y- |
$ B0 I0 N1 z- K使用CATDocumentServices的静态函数SaveAs保存文档,该方法使用指向前面使用New方法所创建文档的指针作为第一个参数,用文档文件名作为第二个参数。+ U9 B5 h: N8 ]% u

) s# q/ P2 d; z7 E8 s! F0 C; z5 Urc = CATDocumentServices::SaveAs (*pDoc, "TestPart");
, J9 d) f* g( M& o) a- M0 {if (SUCCEEDED(rc)) cout << "Document saved OK" << endl;& d* h* ?" C9 B3 [
移除文档
9 c0 u0 d  k  [% l0 Q( I7 E
2 O% F/ j4 x7 A9 `  ~* R4 r在同一个Session中如果你要再次打开文档,有必要在保存完成以后从会话中移除文档。如果不需要再次打开文档,你就无需担心文档从会话中移除的问题,因为删除会话时会自动将文档移除。使用CATDocumentServices的静态方法Remove可以从会话中移除文档。5 b7 Y9 `% M  Y1 H$ c, P
- Q  c6 k" g" _7 S
rc = CATDocumentServices::Remove (*pDoc);. `6 K# \6 K0 d5 G
if (SUCCEEDED(rc)) cout << "Document removed OK" << endl;
  j# m, {5 [: `* p. XpDoc = NULL ;
: o. X+ [, B+ [; X3 S8 N删除会话" S: B8 c4 }5 v9 ~

; F* v- k  T- |- ]" P5 t( c* m+ j在程序的最后不要忘记使用全局函数Delete_Session删除会话。9 M6 B- e: }2 z( E9 ?% ?: s% k

2 T3 r/ H( t; y: O0 B4 X. jrc = ::Delete_Session(sessionName);
$ s, X  ?+ \4 r9 z1 |if (SUCCEEDED(rc)) cout << "Session deleted OK" << endl;
% q. [: {3 u# h( v! a7 \% l, a/ }
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了