找回密码 注册 QQ登录
开思网工业级高精度在线3D打印服务

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 24371|回复: 15
打印 上一主题 下一主题

CAA中如何在一个窗口中打开一个文档?

[复制链接]
跳转到指定楼层
1
发表于 2007-5-7 15:54:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

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

x
在CAA百科全书中,Document模块File里有关Loading a Document的部分提供的是一个以batch program的方式打开文档的方法,不是可视化的。现在我想通过按钮响应,在一个窗口中打开一个文件(比如一个part文件),CAA help文档中看到用CATIIniInteractiveSession这个接口的open()方法
public virtual HRESULT Open(const CATUnicodeString&   iCompleteName,
                                               const CATBoolean              iFlagRead,
                                  CATIEditor**              oIEditorDocument)= 0
Opens a document and opens a window to visualize it.
请问这个方法可以吗?第三个参数CATIEditor**如何得到?
以下语句可以吗:
CATIEditor * pIEditor = NULL ;
HRESULT rc = QueryInterface (IID_CATIEditor, (void**)&pIEditor);
或者还是有其它的方法
还请各位指教!!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 赞一下!赞一下!
2
发表于 2007-5-7 16:49:23 | 只看该作者
CATIEditor* oIEditorDocument = NULL;
        CATString FilePath ="D:\\New.CATPart";//需要打开的文件目录
        CATSession * pSession = CATSession::GetPtrSession();
        CATIIniInteractiveSession * pIOnInteractiveSession=NULL;
        HRESULT hr = pSession -> QueryInterface ( IID_CATIIniInteractiveSession, (void **) &pIOnInteractiveSession ) ;
        HRESULT a= pIOnInteractiveSession -> Open(FilePath.CastToCharPtr(),FALSE, &oIEditorDocument);

就可以了 。。
3
发表于 2007-5-8 11:47:28 | 只看该作者
非常感谢 skyzhangwalkman !!
以后还请多多指教:)
4
发表于 2007-5-8 21:19:20 | 只看该作者
又遇到问题了
如果用CATIIniInteractiveSession这个接口要在Imakefile.mk中添加module CATInteractiveInterfaces
同样的用CATSession类,要添加CATObjectModelerBase
但是添加之后有这样的报错:
1.  Module [CATObjectModelerBase.m] in LINK_WITH is ignored since it is in framework [D:\DassaultSystemes\B14\.\ObjectModelerBase] which is not a direct prerequisite.
2.  Module [CATInteractiveInterfaces.m] in LINK_WITH is ignored since it is in framework [D:\DassaultSystemes\B14\.\InteractiveInterfaces] which is not a direct prerequisite.
在IdentityCard.h里添加了AddPrereqComponent("CATObjectModelerBase",Protected);
                                           AddPrereqComponent("CATInteractiveInterfaces",Protected);
也没有用,有报错:
mkmk-ERROR: CATInteractiveInterfaces -> This Framework was not found in specified Workspace(s).
mkmk-ERROR: CATObjectModelerBase -> This Framework was not found in specified Workspace(s).
和上面1,2两条报错

问题解决了,应该添加    AddPrereqComponent("ObjectModelerBase",Protected);
                                            AddPrereqComponent("InteractiveInterfaces",Protected);

[ 本帖最后由 ashio 于 2007-5-8 21:38 编辑 ]
5
发表于 2007-5-8 22:15:21 | 只看该作者
编译通过了,但是调试运行时还是不行,有如图的报错对话框弹出,不知道是什么问题,还请指教!!

本帖子中包含更多资源

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

x
6
发表于 2007-5-10 18:09:54 | 只看该作者
试着用UseCase里讲的,在内存中加载文档,也不行。请问是什么原因?
7
发表于 2007-5-10 23:17:35 | 只看该作者
在窗口中打开文档的方法,CATSession指针和CATIIniInteractiveSession接口指针都能获得,但是到了打开文件这一条语句是发生错误,弹出document cannot be read的警告对话框。

在内存中加载文档也是如此,可以获得当前Session,但是同样无法加载。
和文件本身和文件位置有关吗(d:\trail.CATPart)

还有一个问题,我是在partdesign里做的addin,进入partdesign后自动会新建一个文件。这样是不是就不能再用Create_Session(),建立一个新的Session了,而必须去获取现在的Session?不能在内存中加载文件是不是和我是在partdesign里做的addin也有关?

还请各位指点!!
8
发表于 2007-5-11 13:07:28 | 只看该作者
问题基本解决了,  再次谢谢 skyzhangwalkman
关于出现Command Interrupted警告对话框的问题也解决了

不过还有些疑问,那就是似乎只能打开根目录下的文件
比如路径  “d:\\partdoc\trail.CATPart” 的文件就无法打开
请问是这样的吗?还是有别的原因?

[ 本帖最后由 ashio 于 2007-5-11 17:04 编辑 ]
9
发表于 2007-5-14 01:05:10 | 只看该作者
我可以打开的
难道是版本问题?
10
发表于 2007-5-14 11:36:45 | 只看该作者
我用的是R14
和环境变量设置有关吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2024-12-24 21:42 , Processed in 0.029108 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

快速回复 返回顶部 返回列表