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

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

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

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

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

x
新建文档是CAA开发中的常用操作,分为在批处理环境下新建和在可视化交互环境下新建两种。下面以在批处理环境下新建为例,简要介绍步骤及涉及的方法。
& t. R* Z5 T7 p% d0 g, G
; }2 Y, B" V1 B创建会话* s3 _7 j) \. P; v  m- B

) z" K- {% P2 \7 v# m! Z& h) ~3 H* o这是一个批处理程序,在使用文档之前首先需要打开一个会话。在CAA中,打开一个会话可使用全局函数Create_Session。- s% ?8 h" E8 r% @3 f9 x1 A# I5 ?

, P! J7 z* J+ j, i; R/ Nchar *sessionName = "CAA2_Sample_Session";4 }. ~1 T% n# Q7 h4 ^7 ^
CATSession *pSession = NULL;8 E. ~1 }8 h/ A) q& E
HRESULT rc = ::Create_Session(sessionName, pSession);
9 D- {) x: D4 ~' C5 ^创建文档3 |8 F7 G; b+ L  p

- K4 \$ w6 m9 J  H( v3 W, f) w会话打开之后,可以使用CATDocumentServices的静态方法New创建文档,该方法创建一个文档并对它进行初始化,使其可以被加载、存储和编辑。在该例子中,使用“Part”作为这个文档的类型,在交互式的模式中,这是使用File/New操作后显示的名称,不是文件的类型,即在这里不要使用“CATPart”。
; f1 z+ V9 N; ^- v- {/ b3 G: e* v+ V
, Q/ @" F# }8 l5 CCATDocument* pDoc = NULL;' e0 \( ~7 V) C' i$ _) Y, E9 F
rc = CATDocumentServices::New("Part",pDoc);/ a3 e. R7 r5 |$ l- _- u0 P* M+ {
if (NULL != pDoc) cout << "New document created OK" << endl;% Q/ X% A" ]+ `. x3 W8 }1 L
保存文档  s1 R4 l+ X6 Z# l. w+ f. s

5 k2 ]- _9 W" |; f使用CATDocumentServices的静态函数SaveAs保存文档,该方法使用指向前面使用New方法所创建文档的指针作为第一个参数,用文档文件名作为第二个参数。2 X) f2 Z& N# w/ B0 ^3 {9 b
" j* I% o, }' u: I, D* O
rc = CATDocumentServices::SaveAs (*pDoc, "TestPart");
6 C* R2 D& G' q( T) U7 k+ y% Lif (SUCCEEDED(rc)) cout << "Document saved OK" << endl;" u" `0 n; \+ x* u) \8 b4 v6 a
移除文档. Q6 d/ S4 E7 R( H2 D4 C" u% e
7 F  b7 R* C. Y. r6 N
在同一个Session中如果你要再次打开文档,有必要在保存完成以后从会话中移除文档。如果不需要再次打开文档,你就无需担心文档从会话中移除的问题,因为删除会话时会自动将文档移除。使用CATDocumentServices的静态方法Remove可以从会话中移除文档。
" u: L) \8 ^4 h2 q* R3 I& j
' X- |& p- p3 n4 x* `" src = CATDocumentServices::Remove (*pDoc);2 S* ~- R* }% v, Y* h" j0 @5 s! f' z" D
if (SUCCEEDED(rc)) cout << "Document removed OK" << endl;6 [% I% G& E1 c9 q! K! o3 I8 D
pDoc = NULL ;. n/ f+ }5 {  `
删除会话. t& k; P3 X0 K- p. O
) J+ `- o+ j; F7 ~& A! O5 d* W
在程序的最后不要忘记使用全局函数Delete_Session删除会话。
$ a& F  }) ?4 e: f1 X* p) z- v& ?/ A, U  |* Y; I2 ?/ m
rc = ::Delete_Session(sessionName);
* x3 y: _# R8 K/ qif (SUCCEEDED(rc)) cout << "Session deleted OK" << endl;& w" j% z  ?" H
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了