接着上一文的SldWorks文档操作,本文将继续介绍文档的切换,第三方文档加载,及文档的关闭操作。
1.文档的切换
当Solidworks中打开了多个文档时,我们可以通过菜单的【窗口】菜单切换不同的文档。
SldWorks对象中使用ActiveDoc属性获得当前激活的文档对象。
ModelDoc2 Doc = swApp.ActiveDoc;
SldWorks对象中使用ActivateDoc3方法进行文档的切换,该方法使用如下,含有4个参数。
Sldworks.ActivateDoc3(Name, UseUserPreferences, Option, Errors)
参数含义:
代码示例--详细代码可见我的GitHub:
int err = -1;
int warn = -1;
swApp.OpenDoc6(AppDomain.CurrentDomain.BaseDirectory + @"RectanglePlug\PlugTopBox.SLDPRT", (int)swDocumentTypes_e.swDocPART, (int)swOpenDocOptions_e.swOpenDocOptions_AutoMissingConfig, "圆壳", ref err, ref warn);
swApp.OpenDoc6(AppDomain.CurrentDomain.BaseDirectory + @"RectanglePlug\PlugWire.SLDPRT", (int)swDocumentTypes_e.swDocPART, (int)swOpenDocOptions_e.swOpenDocOptions_AutoMissingConfig, "", ref err, ref warn);
ModelDoc2 Doc = iswApp.ActiveDoc;
MessageBox.Show("当前激活文档:" + Doc.GetTitle());
Doc = swApp.ActivateDoc3("PlugTopBox.SLDPRT", true, (int)swRebuildOnActivation_e.swRebuildActiveDoc, ref err);
MessageBox.Show("文档:" + Doc.GetTitle() + "被激活");
Doc = swApp.ActiveDoc;
MessageBox.Show("当前激活文档:" + Doc.GetTitle());
2.第三方文档加载
SldWorks的OpenDoc6方法是打开Solidworks文档,那么对于第三方格式的文档,SldWorks同样提供了LoadFile4方法进行加载,方法使用如下,含有4个参数。
Sldworks.LoadFile4(FileName, ArgString, ImportData, Errors)
参数含义:
代码示例--详细代码可见我的GitHub:
启用3D Interconnect加载零件、装配体及不启用3D Interconnect加载零件:
int err = -1;
//启用3D Interconnect
string FileName = AppDomain.CurrentDomain.BaseDirectory + @"ThirdPart\PlugBottomBox.IGS";
ImportIgesData importData = default(ImportIgesData);
importData = (ImportIgesData)iswApp.GetImportFileData(FileName);
if ((importData != null))//指定参数加载
{
importData.IncludeSurfaces = true;
importData.IncludeCurves = true;
importData.CurvesAsSketches = true;
importData.ProcessByLevel = false;
}
swApp.LoadFile4(FileName, "", importData, ref err);
//启用3D Interconnect
FileName = AppDomain.CurrentDomain.BaseDirectory + @"ThirdPart\PowerStrip.IGS";
importData = default(ImportIgesData);
importData = (ImportIgesData)iswApp.GetImportFileData(FileName);
if ((importData != null))//指定参数加载
{
importData.IncludeSurfaces = true;
importData.IncludeCurves = true;
importData.CurvesAsSketches = true;
importData.ProcessByLevel = false;
}
swApp.LoadFile4(FileName, "", importData, ref err);
//不启用3D Interconnect
FileName = AppDomain.CurrentDomain.BaseDirectory + @"ThirdPart\PlugBottomBoxNon.IGS";
swApp.LoadFile4(FileName, "r", null, ref err);
额外说明
1)该方法可同时通用启用与不启用Solidworks的3D Interconnect 加载第三方格式文档的。
a.启用Solidworks的3D Interconnect 情况:需要在系统设置中先【启动3D Interconnect】,如下图标记步骤(同样也可以使用SldWorks提供的SetUserPreferenceToggle系统设置方法进行设置,下一篇文档将统一介绍SldWorks的系统设置及文档设置方法)。
b.不启用Solidworks的3D Interconnect的情况:需要设置
ArgString参数,API文档中对于参数说明如下图:
c.该方法仅用于在Solidworks软件中直接打开第三方格式的文档。若需要在Solidworks的零件中插入第三方文件作为特征或在装配体中插入第三方格式的部件时,分别需要使用IPartDoc::InsertImportedFeature或IAssemblyDoc::InsertImportedComponent方法进行操作。后续文章将分别对这两个类对应的方法进行讲解。
3.文档的关闭
SldWorks对象中提供了CloseDoc方法关闭指定文档,以及CloseAllDocuments方法同时关闭所有文档。
CloseDoc方法的使用如下,其中的参数Name为关闭的文档名称
Sldworks.CloseDoc(Name)
CloseAllDocuments方式的使用如下,其中参数IncludeUnsaved为是否同时关闭未保存的文档
Sldworks.CloseAllDocuments(IncludeUnsaved)
代码示例--详细代码可见我的GitHub:
swApp.CloseDoc(AppDomain.CurrentDomain.BaseDirectory + @"RectanglePlug\PlugTopBox.SLDPRT");
swApp.CloseAllDocuments(true);
如下图为本文的示例程序,源码可上我的Github下载。操作步骤可见文章《公众号源码Github分享库》