在裝配體配合中最筒,記錄配合關(guān)系的對象為Mate2载城,如下圖紅框中的每個配合就是一個配合對象Mate2的實例,本文將簡單介紹Mate2的獲取及其記錄的相關(guān)配合參數(shù)的獲取菩帝。
1.Mate2對象的獲取
常用的Mate2對象獲取可以通過部件對象(Component2)或特征對象(Faeture)對象獲取络它。
Feature SwFeat;
Mate2 SwMate = SwFeat.GetSpecificFeature2()
Component2 SwComp;
Mate2 SwMate = SwComp.GetMates()
2.實例分析--對象獲取
本例使用API獲取部件轉(zhuǎn)軸的配合對象與類型族檬。
代碼實例:
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());
}
}
}
代碼解析
通過SwComp.GetMates()獲得的是object[]數(shù)組,不能直接使用配合數(shù)組Mate2[]化戳。循環(huán)遍歷每個object對象是单料,判斷該object是否為Mate2對象,在繼續(xù)后續(xù)的數(shù)據(jù)獲取点楼。
實例效果
3.實例分析-配合參數(shù)獲取
本例將通過Mate2對象的屬性和方法獲取每個配合的參數(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 + "】參考對象:\r\n");//配合名稱
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 + "】" + ",類型【" + 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.通過Mate2::GetMateEntityCount()可以獲得每個配合的參考數(shù)量却盘,這是獲取每個參考詳細(xì)數(shù)據(jù)的前置條件。
b.配合對象也是一個特征媳拴,所以可以通過強(qiáng)制轉(zhuǎn)換為Feature對象黄橘,獲得該配合的名稱
c.通過Mate2::MateEntity(i)方法可以獲得每個配合的參考實體對象SwMateEntity2
d.通過SwMateEntity2對象即可獲取參考對象,所屬部件屈溉,等各類配合參考的信息塞关。
e.通過Mate2::DisplayDimension2方法,即可獲得對應(yīng)配合的配合尺寸及數(shù)據(jù)子巾,關(guān)于尺寸相關(guān)對象帆赢,可以查看之前的文章《尺寸對象Dimension》
實例效果
如下圖為本文的示例程序小压,源碼可上我的Github下載。操作步驟可見文章《公眾號源碼Github分享庫》 椰于, 實例序號17