找回密码 注册 QQ登录
一站式解决方案

iCAx开思网

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

请教一个实现将CAD中的零件保存到ST中的功能问题

[复制链接]
跳转到指定楼层
1
发表于 2006-4-20 18:01:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
我现在要实现一个将CAD软件中的零件或装配体保存到ST中的功能,我使用ISmSaveAsDialog这个接口,STComProgrammerGuide.pdf中提供了一个例子,如下:
Private Sub DisplaySaveAsDialog(SmSession as ISmSession, FileName As
String, ProjectObject As ISmObject)
Begin
Set ClassesList = SmSession.MetaInfo.NewSmClasses
ClassesList.Add(354)
ClassesList.Add(353)
Dim SmGUIServices As ISmGUIServices
Set SmGUIServices = SmSession.GetService(“SmGUISrv.SmGUIServices”)
Set GUIStore = SmGuiServices.GUIStore
Set SaveAsDialog = GUIStore.NewSaveAsDialog
‘ Set input parameter
SaveAsDialog.Classes=ClassesList
SelectedMainClassObject =
SmSession.ObjectStore.NewObject(ProjectObject.ClassId)
SelectedMainClassObject.ObjectId = ProjectObject.ObjectId
SaveAsDialog.SelectedMainClassObject = SelectedMainClassObject
SaveAsDialog.FileName= FileName
SaveAsDialog.ShowModal
End Sub
我将其转化为VC实现的代码如下:
void CSTSampleDlg::OnSaveasdialog()
{
        if (SmSession == NULL)
                return;
        CString FileName;
        ISmGUIServicesPtr SmGUIServices = SmSession->GetService("SmGUISrv.SmGUIServices");
        ISmObjectPtr SmObject;
        ISmClassesPtr SmClasses = SmSession->GetMetaInfo()->NewSmClasses();
        SmClasses->Add(354);
        SmClasses->Add(353);
        ISmSaveAsDialogPtr SmSaveAsDialog = SmGUIServices->GetGUIStore()->NewSaveAsDialog();
        SmSaveAsDialog->GetClasses() = SmClasses;
        ISmObjectPtr SelectedMainClassObject = SmSession->GetObjectStore()->NewObject(SmObject->ObjectId);
        SelectedMainClassObject->ObjectId = SmObject->ObjectId;
        SmSaveAsDialog->SelectedMainClassObject = SelectedMainClassObject;
        SmSaveAsDialog->GetFileName() = FileName;
        SmSaveAsDialog->ShowModal();
}可是编译到ISmObjectPtr SelectedMainClassObject ==SmSession->GetObjectStore()->NewObject(SmObject->ObjectId)时总是有问题,有人告诉我SmClasses->Add(354);SmClasses->Add(353)当中的数字有问题,应该是数据库中存在的类的CLASSID,可我不是很懂,这两句代码要是实现什么功能阿,应该怎样该呀?我觉得SmObject->ObjectId有问题,因为我查过NewObject函数中的参数是ClassId,可我不知道参数用什么阿,请知道的给点指示,我把SmObject->ObjectId都换成一个数字就可以编译通过显示SaveAs对话框了,可也只是显示而已,并不能实现什么功能,请问我要实现Save或SaveAs功能该怎么改我的这段VC代码,还要配置其他什么吗?好多属性和方法我都不知道怎样使用其中的参数,请大家帮忙指点一下,谢谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2006-4-21 09:31:12 | 只看该作者
那边已经回复了!
3
发表于 2006-4-22 20:29:41 | 只看该作者
谢谢mwd121的答复了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

GMT+8, 2024-12-23 06:50 , Processed in 0.022544 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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