在裝配體配合中,記錄配合關(guān)系的對(duì)象為Mate2,如下圖紅框中的每個(gè)配合就是一個(gè)配合對(duì)象Mate2的實(shí)例,本文將簡(jiǎn)單介紹Mate2的獲取及其記錄的相關(guān)配合參數(shù)的獲取。

1.Mate2對(duì)象的獲取
常用的Mate2對(duì)象獲取可以通過(guò)部件對(duì)象(Component2)或特征對(duì)象(Faeture)對(duì)象獲取。
Feature SwFeat;
Mate2 SwMate = SwFeat.GetSpecificFeature2()
Component2 SwComp;
Mate2 SwMate = SwComp.GetMates()
2.實(shí)例分析--對(duì)象獲取
本例使用API獲取部件轉(zhuǎn)軸的配合對(duì)象與類(lèi)型。

代碼實(shí)例:
public static void GetMateType(Component2 SwComp)
{
object[] CompMateObjs = SwComp.GetMates();//獲取數(shù)組
foreach (object ObjMate in CompMateObjs)
{
if (ObjMate is Mate2)//判斷是否為配合
{
Mate2 SwMate = (Mate2)ObjMate;
System.Windows.MessageBox.Show(Enum.Parse(typeof(swMateType_e), SwMate.Type.ToString().Trim()).ToString().Trim());
}
}
}
代碼解析
通過(guò)SwComp.GetMates()獲得的是object[]數(shù)組,不能直接使用配合數(shù)組Mate2[]。循環(huán)遍歷每個(gè)object對(duì)象是,判斷該object是否為Mate2對(duì)象,在繼續(xù)后續(xù)的數(shù)據(jù)獲取。
實(shí)例效果

3.實(shí)例分析-配合參數(shù)獲取
本例將通過(guò)Mate2對(duì)象的屬性和方法獲取每個(gè)配合的參數(shù),包括參考對(duì)象,參考部件,配合尺寸等信息。
代碼實(shí)例
public static void GetMateRefrence(Component2 SwComp)
{
object[] CompMateObjs = SwComp.GetMates();
StringBuilder Sb = new StringBuilder("");
foreach (object ObjMate in CompMateObjs)
{
if (ObjMate is Mate2)
{
Mate2 SwMate = (Mate2)ObjMate;
Sb.Append("配合【"+ ((Feature)SwMate).Name + "】參考對(duì)象:\r\n");//配合名稱(chēng)
int n = SwMate.GetMateEntityCount();
for(int i=0;i< n;i++)//配合參考
{
MateEntity2 SwMateEntity2 = SwMate.MateEntity(i);
string reftype = Enum.Parse(typeof(swSelectType_e), SwMateEntity2.ReferenceType2.ToString().Trim()).ToString().Trim();
string comp = SwMateEntity2.ReferenceComponent.Name2;
string refname = SwMateEntity2.Reference.Name;
Sb.Append("部件【" + comp + "】,參考【" + refname + "】" + ",類(lèi)型【" + reftype + "】");
DisplayDimension SwDispDim = SwMate.DisplayDimension2[0];
if (SwDispDim != null)
{
if (SwMate.Type == (int)swMateType_e.swMateANGLE)
{
Sb.Append(",角度=" + SwDispDim.GetDimension2(0).Value.ToString().Trim());
}
else if (SwMate.Type == (int)swMateType_e.swMateDISTANCE)
{
Sb.Append(",尺寸=" + SwDispDim.GetDimension2(0).Value.ToString().Trim());
}
}
Sb.Append("\r\n");
}
Sb.Append("\r\n");
}
}
System.Windows.MessageBox.Show(Sb.ToString().Trim());
}
代碼解讀
a.通過(guò)Mate2::GetMateEntityCount()可以獲得每個(gè)配合的參考數(shù)量,這是獲取每個(gè)參考詳細(xì)數(shù)據(jù)的前置條件。
b.配合對(duì)象也是一個(gè)特征,所以可以通過(guò)強(qiáng)制轉(zhuǎn)換為Feature對(duì)象,獲得該配合的名稱(chēng)
c.通過(guò)Mate2::MateEntity(i)方法可以獲得每個(gè)配合的參考實(shí)體對(duì)象SwMateEntity2
d.通過(guò)SwMateEntity2對(duì)象即可獲取參考對(duì)象,所屬部件,等各類(lèi)配合參考的信息。
e.通過(guò)Mate2::DisplayDimension2方法,即可獲得對(duì)應(yīng)配合的配合尺寸及數(shù)據(jù),關(guān)于尺寸相關(guān)對(duì)象,可以查看之前的文章《尺寸對(duì)象Dimension》
實(shí)例效果

如下圖為本文的示例程序,源碼可上我的Github下載。操作步驟可見(jiàn)文章《公眾號(hào)源碼Github分享庫(kù)》 , 實(shí)例序號(hào)17
