NX Journal コンポーネントを選択するダイアログ

コンポーネントを選択するダイアログを表示するプログラムを作成しました。

NX OpenのSelectionクラスのSelectTaggedObjectで選択ダイアログを表示することができます。

https://docs.plm.automation.siemens.com/data_services/resources/nx/10/nx_api/en_US/custom/nxopen_python_ref/NXOpen.Selection.html#nxopen-selection-selecttaggedobject

SelectTaggedObjectのリファレンス

ダイアログのタイトルはコード内の”title”で、ダイアログのメッセージは”message”、属性は”myAttribute”で指定します。このダイアログで選択する対象をmaskで指定します。属性表示には情報ウィンドウを使用しています。

SelectTaggedObjectでオブジェクトの選択等を活用すると選択したオブジェクトに対しての処理を行えるようになるので、作成したコマンドが使いやすくなるのではないかと思います。



import NXOpen

def main():
    theSession = NXOpen.Session.GetSession()
    lw = theSession.ListingWindow

    components = SelectComponent()

    lw.open()
    for component in components:
        lw.WriteLine( component.GetStringAttribute("myAttribute") )

def SelectComponent():
    scope = NXOpen.SelectionSelectionScope.AnyInAssembly
    action = NXOpen.SelectionSelectionAction.ClearAndEnableSpecific
    mask = NXOpen.SelectionMaskTriple_Struct
    mask.Type = NXOpen.UF.UFConstants.UF_component_type
    mask.Subtype = NXOpen.UF.UFConstants.UF_component_subtype
    response, objects = NXOpen.Selection.SelectTaggedObjects("message", "title", scope, action, False, False, [mask])
    
    if not response == NXOpen.SelectionResponse.ObjectSelectedByName or not response == NXOpen.SelectionResponse.ObjectSelected:
        return []
    
    return objects

if __name__ == '__main__':
    main()

コメント

タイトルとURLをコピーしました