NX Journal 子部品を取得する

Share on:

子部品を取得するプログラムを作成しました。

このプログラムでは作業パートのコンポーネントを取得して、その子部品を取得していき、さらに子部品があれば取得する、という処理を再帰的に行って、すべての子部品を取得しています。

取得したコンポーネントはcomponents1に入り、[階層, コンポーネント]のリストになります。

Pythonコード

 1import NXOpen
 2 
 3def main():
 4    theSession  = NXOpen.Session.GetSession()
 5    workPart = theSession.Parts.Work
 6    theComponent = workPart.ComponentAssembly.RootComponent
 7    rank1 = 0
 8 
 9    # アセンブリトップを追加
10    components1 = [ [rank1, theComponent] ]
11 
12    # 子部品の属性を再帰で取得
13    recursion( theComponent, rank1 + 1, components1 )
14 
15def recursion( component1, rank2, components2 ):
16    for child1 in component1.getChildren():
17        components2.append( [rank2, child1] )
18        recursion( child1, rank2 + 1, components2 )
19 
20if __name__ == '__main__':
21    main()

関連記事