在Solidworks中裝配體能夠?qū)崿F(xiàn)對(duì)各類零件的總裝,在裝配提中可以去操作其中的各種部件,插入部件,進(jìn)行配合等各類工作,裝配體文件也是Solidworks通用文件的一種。故裝配體文件對(duì)象AssemblyDoc可通過(guò)如下方式獲?。?/p>
ModelDoc2 Doc;
if (Doc.GetType() == (int)swDocumentTypes_e.swDocASSEMBLY)
{
AssemblyDoc Assem = (AssemblyDoc)Doc;
}

如下圖所示,本文我們基于如下模型,初步認(rèn)識(shí)下裝配體文檔對(duì)象AssemblyDoc的2個(gè)基本操縱。

實(shí)例1:獲得裝配體的部件
代碼實(shí)例:
public static void GetChildrenComp(ModelDoc2 Doc)
{
if (Doc.GetType() == (int)swDocumentTypes_e.swDocASSEMBLY)
{
AssemblyDoc Assem = (AssemblyDoc)Doc;
#region 頂?shù)讓恿悴考? StringBuilder topsb = new StringBuilder("頂層部件:\r\n");
object[] Comps = Assem.GetComponents(true);
foreach (object cp in Comps)
{
topsb.Append(((Component2)cp).Name2+"\r\n");
}
#endregion
#region 所有零部件
StringBuilder allsb = new StringBuilder("所有部件:\r\n");
Comps = Assem.GetComponents(false);
foreach (object cp in Comps)
{
allsb.Append(((Component2)cp).Name2 + "\r\n");
}
#endregion
System.Windows.MessageBox.Show(topsb+"\r\n" + allsb);
}
}
實(shí)例運(yùn)行效果:

實(shí)例解析:
我們可以通過(guò)AssemblyDoc.GetComponents(ToplevelOnly),獲取對(duì)應(yīng)裝配體下的所有部件。ToplevelOnly為true代表只獲得與當(dāng)前裝配體直接部件,為false時(shí),則獲取當(dāng)前裝配體的的所有部件,包括子裝配體的部件。
注意:
使用該方法獲得的部件順序是隨機(jī)的,不會(huì)嚴(yán)格按照模型特征樹的從上到下的順序輸出部件。
實(shí)例2:裝配體中添加部件
如下圖,我們將在裝配體中添加名字為part3的部件(該部件有2個(gè)配置實(shí)心,挖孔),使用程序?qū)ρb配體添加部件的步驟分為:
1.打開需要插入的部件。
2.將不見插入裝配體。

代碼實(shí)例:
public static void InsertPart(SldWorks swApp ,ModelDoc2 Doc,string newpartpath)
{
swApp.OpenDoc(newpartpath,1);//打開部件
((AssemblyDoc)Doc).AddComponent5(newpartpath,0,"",false,"",0,0.3,0);
((AssemblyDoc)Doc).AddComponent5(newpartpath, 0, "", true, "實(shí)心", 0.5, 0.3, 0);
((AssemblyDoc)Doc).AddComponent5(newpartpath, 0, "", true, "挖孔", 1, 0.3, 0);
swApp.CloseDoc(newpartpath);//關(guān)閉部件
}
運(yùn)行效果:

實(shí)例解析:
通過(guò)AssemblyDoc.AddComponent5(CompName, ConfigOption, NewConfigName, UseConfigForPartReferences, ExistingConfigName, X, Y, Z)的方法,將需要的部件插入到裝配體中。
參數(shù)CompName為需要插入部件的文件路徑。
參數(shù)ConfigOption為插入的部件及子裝配體的配置的設(shè)定
參數(shù)UseConfigForPartReferences是否使用插入部件的某個(gè)配置
參數(shù)ExistingConfigName,若使用具體部件的某個(gè)配置,則該值為對(duì)應(yīng)配置名稱。
參數(shù)X,Y,Z為部件插入到裝配體時(shí)部件原點(diǎn)在裝配體中的坐標(biāo)。
如下圖為本文的示例程序,源碼可上我的Github下載。操作步驟可見文章《公眾號(hào)源碼Github分享庫(kù)》 , 實(shí)例序號(hào)14
