前排声明:新手日记,自己记录用,仅供参考,不保证正确性
在做和装配有关的开发时经常需要遍历总装配下的所有组件。这里提供一个用递归遍历所有组件的方法,稍加改动也可以用于遍历特定组件下的所有子组件。
下面是递归的方法:
/// <summary>
/// 用递归获得所有组件的方法
/// </summary>
/// <param name="fatherComponent">父组件</param>
/// <param name="allComponents">全部的组件集合</param>
public static void GetAllComponents(Component fatherComponent, List<Component> allComponents)
{
Component[] tempComponent = fatherComponent.GetChildren();//得到子组件数组
foreach (Component x in tempComponent)//没有子组件时foreach的语句不会执行,跳出递归
{
allComponents.Add(x);
GetAllComponents(x, allComponents);
}
}
想要遍历显示部件中所有的子组件时,可以这样调用:
List<Component> allComponents = new List<Component>();//定义储存所有组件的List
GetAllComponents(displayPart.ComponentAssembly.RootComponent,allComponents);//遍历显示部件下的所有组件
如果想要遍历特定组件的子组件时,把displayPart.ComponentAssembly.RootComponent改成自己需要的组件(Component)即可。
NX版本:NX1946