iCAx开思网

标题: 请教一个实现将CAD中的零件保存到ST中的功能问题 [打印本页]

作者: David_nuaa    时间: 2006-4-20 18:01
标题: 请教一个实现将CAD中的零件保存到ST中的功能问题
我现在要实现一个将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代码,还要配置其他什么吗?好多属性和方法我都不知道怎样使用其中的参数,请大家帮忙指点一下,谢谢!
作者: mwd121    时间: 2006-4-21 09:31
那边已经回复了!
作者: David_nuaa    时间: 2006-4-22 20:29
谢谢mwd121的答复了!




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3