NX Journal アセンブリ内の全コンポーネントをパラソリッドにエクスポートするジャーナル
2022/01/03 categories:NX Journal| tags:NX Journal|Python|
NXでアセンブリ内の全コンポーネントをパラソリッドにエクスポートするジャーナルを作成しました。
出力されるパラソリッド
コンポーネントごとに別々のファイルとしてパラソリッドの出力を行います。出力されるパラソリッドファイルはエクスポート元のモデルが保存されているフォルダです。
Pythonコード
from pathlib import Path
import NXOpen
import NXOpen.UF
def main():
theSession = NXOpen.Session.GetSession()
theUfSession = NXOpen.UF.UFSession.GetUFSession()
workPart = theSession.Parts.Work
all_components = get_components(workPart.ComponentAssembly.RootComponent)
paths = []
for component in all_components:
part = component.Prototype.OwningPart
if part.FullPath in paths:
continue
theSession.Parts.SetDisplay(part, False, False)
bodies = [ obj for obj in part.Views.WorkView.AskVisibleObjects() if type(obj) is NXOpen.Body ]
body_tags = [ body.Tag for body in bodies ]
filename = Path(part.FullPath).with_suffix('.x_t')
theUfSession.Ps.ExportData( body_tags, str(filename) )
part.Undisplay()
paths.append(part.FullPath)
theSession.Parts.SetDisplay(workPart, False, False)
def get_components(component):
components1 = [component]
for child in component.GetChildren():
if not child.IsSuppressed:
components2 = get_components(child)
components1.extend(components2)
return components1
if __name__ == '__main__':
main()