C# SolidWorks 二次开发 API —遍历零件特征
下面是如何遍历零件特征:
private void Btn_Traverse_Feature_Click(object sender, EventArgs e)
{
ISldWorks swApp = Utility.ConnectToSolidWorks();
if (swApp != null)
{
ModelDoc2 swModel = (ModelDoc2)swApp.ActiveDoc;
//第一个特征
Feature swFeat = (Feature)swModel.FirstFeature();
//遍历
Utility.TraverseFeatures(swFeat, true);
}
}
//Utility.cs
/// <summary>
/// 遍历特征
/// </summary>
/// <param name="thisFeat"></param>
/// <param name="isTopLevel"></param>
public static void TraverseFeatures(Feature thisFeat, bool isTopLevel)
{
Feature curFeat = default(Feature);
curFeat = thisFeat;
while ((curFeat != null))
{
//输出特征名称
Debug.Print(curFeat.Name);
Feature subfeat = default(Feature);
subfeat = (Feature)curFeat.GetFirstSubFeature();
while ((subfeat != null))
{
TraverseFeatures(subfeat, false);
Feature nextSubFeat = default(Feature);
nextSubFeat = (Feature)subfeat.GetNextSubFeature();
subfeat = nextSubFeat;
nextSubFeat = null;
}
subfeat = null;
Feature nextFeat = default(Feature);
if (isTopLevel)
{
nextFeat = (Feature)curFeat.GetNextFeature();
}
else
{
nextFeat = null;
}
curFeat = nextFeat;
nextFeat = null;
}
}
posted @
2019-09-16 16:53
painezeng 阅读(
166) 评论(
0)
编辑
收藏
举报