应用程序对象SldWorks文档操作进阶:提升设计效率

接着上一文的SldWorks文档操作,本文将继续介绍文档的切换,第三方文档加载,及文档的关闭操作。

1.文档的切换

当Solidworks中打开了多个文档时,我们可以通过菜单的【窗口】菜单切换不同的文档。

SldWorks对象中使用ActiveDoc属性获得当前激活的文档对象。

ModelDoc2 Doc = swApp.ActiveDoc;

SldWorks对象中使用ActivateDoc3方法进行文档的切换,该方法使用如下,含有4个参数。

Sldworks.ActivateDoc3(Name, UseUserPreferences, Option, Errors)

参数含义:

image.png

代码示例--详细代码可见我的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());
image.png

2.第三方文档加载

SldWorks的OpenDoc6方法是打开Solidworks文档,那么对于第三方格式的文档,SldWorks同样提供了LoadFile4方法进行加载,方法使用如下,含有4个参数。

Sldworks.LoadFile4(FileName, ArgString, ImportData, Errors)

参数含义:

image.png

代码示例--详细代码可见我的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的系统设置及文档设置方法)。

image.png

b.不启用Solidworks的3D Interconnect的情况:需要设置

ArgString参数,API文档中对于参数说明如下图:

image.png

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分享库》

image.png

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空