一個裝配體中存在很多的部件,在Solidworks的菜單【文件】/【查找參考引用】中可以看到裝配體所引用的文件。Solidworks的裝配體文件其實就是存儲了這些引用文件的地址舰涌,在打開裝配體時,根據(jù)這些記錄的地址去逐個加載每個部件。根據(jù)記錄的部件狀態(tài)來選擇性地加載部件
在Solidworks2020的API中趣些,我們可以通過文檔擴(kuò)展對象的方法獲得文檔的參考引用文件ModelDocExtension::GetDependencies。
ModelDocExtension.GetDependencies(Traverseflag, Searchflag, AddReadOnlyInfo, ListBrokenRefs, AppendImportedPaths)
在一些低版本的Solidworks中贰您,若無法找到上述方法坏平,可以使用文檔對象的相應(yīng)方法獲得參考文件ModelDoc2::GetDependencies2
···
ModelDoc2.GetDependencies2(Traverseflag, Searchflag, AddReadOnlyInfo)
···
該方法中的參數(shù)同ModelDocExtension::GetDependencies方法中的參數(shù)。
實例分析:獲得如下裝配體的參考引用
代碼實例:
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());
}
實例效果:
如下圖為本文的示例程序锦亦,源碼可上我的Github下載舶替。操作步驟可見文章《公眾號源碼Github分享庫》 , 實例序號18