Solidworks中获取参考引用

一个装配体中存在很多的部件,在Solidworks的菜单【文件】/【查找参考引用】中可以看到装配体所引用的文件。Solidworks的装配体文件其实就是存储了这些引用文件的地址,在打开装配体时,根据这些记录的地址去逐个加载每个部件。根据记录的部件状态来选择性地加载部件

image.png

在Solidworks2020的API中,我们可以通过文档扩展对象的方法获得文档的参考引用文件ModelDocExtension::GetDependencies。

ModelDocExtension.GetDependencies(Traverseflag, Searchflag, AddReadOnlyInfo, ListBrokenRefs, AppendImportedPaths)
image.png

在一些低版本的Solidworks中,若无法找到上述方法,可以使用文档对象的相应方法获得参考文件ModelDoc2::GetDependencies2

···
ModelDoc2.GetDependencies2(Traverseflag, Searchflag, AddReadOnlyInfo)
···

该方法中的参数同ModelDocExtension::GetDependencies方法中的参数。

实例分析:获得如下装配体的参考引用

image.png

代码实例:

public static void GetDocReference(ModelDoc2 AssemDoc)
{
      //旧方法
      object[] ObjFiles1 = AssemDoc.GetDependencies2(true,false,true);
      StringBuilder Sb = new StringBuilder("ModelDoc::GetDependencies2方法:\r\n");
      foreach (object of in ObjFiles1)
      {
           Sb.Append(of.ToString().Trim() + "\r\n");
      }
      System.Windows.MessageBox.Show(Sb.ToString().Trim());
      
      //新方法
      ModelDocExtension AssemDocEx = AssemDoc.Extension;
      object[] ObjFiles2 = AssemDocEx.GetDependencies(true, false, true, true, true);
      Sb = new StringBuilder("ModelDocExtension::GetDependencies方法:\r\n");
      foreach (object of in ObjFiles2)
      {
           Sb.Append(of.ToString().Trim() + "\r\n");
      }
      System.Windows.MessageBox.Show(Sb.ToString().Trim());
}

实例效果:

image.png
image.png

如下图为本文的示例程序,源码可上我的Github下载。操作步骤可见文章《公众号源码Github分享库》实例序号18

image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在Solidworks中装配体能够实现对各类零件的总装,在装配提中可以去操作其中的各种部件,插入部件,进行配合等各...
    JackChen86阅读 6,758评论 0 1
  • Solidworks中的零件,装配体,图纸都是一个文档,每一个文件都是一个ModelDoc2的实例对象。通过文档对...
    JackChen86阅读 5,264评论 0 1
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 12,721评论 28 53
  • 信任包括信任自己和信任他人 很多时候,很多事情,失败、遗憾、错过,源于不自信,不信任他人 觉得自己做不成,别人做不...
    吴氵晃阅读 11,344评论 4 8
  • 步骤:发微博01-导航栏内容 -> 发微博02-自定义TextView -> 发微博03-完善TextView和...
    dibadalu阅读 8,354评论 1 3