Solidworks裝配體對(duì)象-AssemblyDoc對(duì)象

在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;
}
image.png

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

image.png

實(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)行效果:

image.png

實(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.將不見插入裝配體。

image.png

代碼實(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)行效果:

image.png

實(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

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容