Siemens-NXUG二次开发-新建与保存prt文件[Python UF][20231204]

Siemens-NXUG二次开发-新建与保存prt文件[Python UF][20231204]

  • 1.python uf函数
    • 1.1 NXOpen.UF.Part.New
    • 1.2 NXOpen.UF.Part.Save
    • 1.3 NXOpen.UF.Ui.OpenListingWindow
    • 1.4 NXOpen.UF.Ui.IsListingWindowOpen
    • 1.5 NXOpen.UF.Ui.WriteListingWindow
    • 1.6 NXOpen.UF.Ui.SaveListingWindow
    • 1.7 NXOpen.UF.Ui.ExitListingWindow
  • 2.示例代码
  • 3.运行结果
    • 3.1 内部模式
    • 3.2 外部模式

1.python uf函数

1.1 NXOpen.UF.Part.New

# 内部和外部模式可用
"""
官方文档翻译:在当前任务中创建一个新的NX零件,并使其成为工作零件。
part_name(str)新部件的名称。此部件名称对于会话必须是唯一的。同一会话中两个部分的叶名称不能相同。
units(int)指定英制或公制单位。1=公制2=英制
"""
def NXOpen.UF.Part.New(self, part_name, units)

1.2 NXOpen.UF.Part.Save

# 内部和外部模式可用
"""
官方文档翻译:将当前工作零件及其所有修改的子零件(如果是部件)保存到磁盘。
"""
def NXOpen.UF.Part.Save(self)

1.3 NXOpen.UF.Ui.OpenListingWindow

# 内部和外部模式可用
"""
官方文档翻译:如果处于内部打开API模式,则打开并管理(显示)主题样式的信息窗口。第一次打开此窗口时,它将是空的。进一步的调用将显示先前在窗口中显示的信息。
如果处于外部打开API模式,则将列表窗口标志设置为打开。
"""
def NXOpen.UF.Ui.OpenListingWindow(self)

1.4 NXOpen.UF.Ui.IsListingWindowOpen

# 内部和外部模式可用
"""
官方文档翻译:查询“信息”窗口是打开还是关闭。如果“信息”窗口从未打开,已通过“文件-->退出”、“文件-->关闭”关闭,或已通过调用UF_UI_Close_listing_window或选择“信息”按钮关闭,则此函数返回值FALSE。
"""
def NXOpen.UF.Ui.IsListingWindowOpen(self)

1.5 NXOpen.UF.Ui.WriteListingWindow

# 内部和外部模式可用
"""
官方文档翻译:将字符串写入“信息”窗口。您应该在放置字符串后添加自己的新行。
如果在内部Open API中,文本将显示在信息窗口中。如果在外部Open API中,文本将打印为标准输出。
必须先打开“信息”窗口,然后才能对其进行写入。
一旦在外部程序中完成UF_terminate,就不能再向控制台窗口写入。必须使用系统调用对其进行重新初始化。
注意:当运行内部Open API程序(例如带有预定义入口点的dll,而不是主可执行文件)时,代码不知道启动用户功能程序的应用程序或进程。
因此,所有内部API都被视为内部NX程序,并将标准输出设置为列表窗口。任何对UF_UI_write_listing_window的调用都将尝试写入列表窗口。
因此,如果GRIP批处理程序调用使用UF_UI_write_listing_window的内部Open应用程序,它将无法找到列表窗口,并将引发错误。
如果GRIP批处理将调用内部程序,请使用UF_print_syslog将输出写入系统日志。
"""
def NXOpen.UF.Ui.WriteListingWindow(self, string)

1.6 NXOpen.UF.Ui.SaveListingWindow

# 内部和外部模式可用
"""
官方文档翻译:将“信息”窗口的内容保存到参数指定的文件中。
注意:保存的列表窗口信息限制为每行256个字符。如果一行的长度超过256个字符,它将被换行到保存文件中的多行。
"""
def NXOpen.UF.Ui.SaveListingWindow(self, filename)

1.7 NXOpen.UF.Ui.ExitListingWindow

# 内部和外部模式可用
"""
官方文档翻译:关闭并清除列表窗口。如果在内部Open API中,则窗口将关闭并清除。如果在外部Open API中,则设备设置为关闭
"""
def NXOpen.UF.Ui.ExitListingWindow(self)

2.示例代码

import NXOpen.UF as UF

def get_uf_session():
    # 获取当前UF会话
    return UF.UFSession.GetUFSession()

def pyuf_new_prt(the_pyuf_session, new_prt_file_name, units = 1):
    """
    功能:创建一个指定文件路径和文件名的.prt文件,默认单位制是米(m)
    """
    
    # 由于要对Part进行操作,因此需要获取Part实例对象
    pyuf_part_instance = the_pyuf_session.Part

    # New方法位于Part类对象中
    new_prt_file_tag = pyuf_part_instance.New(new_prt_file_name, units)

def pyuf_save_prt(the_pyuf_session):
    """
    功能:保存当前工作part
    """
    # 由于要对Part进行操作,因此需要获取Part实例对象
    pyuf_part_instance = the_pyuf_session.Part

    # Save方法位于Part类对象中
    return pyuf_part_instance.Save()

if __name__ == '__main__':
    # 获取uf session
    the_pyuf_session = get_uf_session()

    # 新prt文件路径与名称
    new_prt_file_name = 'D:\\pyuf_new_prt_test.prt'
    
    # 在D盘根目录下创建一个示例.prt文件,并成为工作prt(work part)
    # 如果是在内部模式运行,则会在NX/UG界面创建一个名为pyuf_new_prt_test.prt的文件窗口
    # 如果是外部模式运行,则运行过后不会有任何文件存在,因为没有执行保存操作
    new_prt_file_tag = pyuf_new_prt(the_pyuf_session, new_prt_file_name)

    # 保存当前工作part
    pyuf_save_prt(the_pyuf_session)

    # 外部模式或内部模式运行标识
    flag = 'internal'

    # 外部模式运行,会在命令行中打印,但内部模式运行则无反应,因在UF.UI类中操作,才可在NX/UG界面显示数据
    if flag == 'external':
        print('\nnew_prt_file_tag type is:{}, new_prt_file_tag value is:{}'.format(type(new_prt_file_tag), new_prt_file_tag))
    elif flag == 'internal':
        # 由于与NX/UG界面UI操作的方法都在UI类中,因此先获取UF.UI示例对象
        pyuf_ui_instance = the_pyuf_session.Ui

        # 判断信息窗口是否打开
        if pyuf_ui_instance.IsListingWindowOpen() == False:
            # 信息窗口未打开,先要将其打开
            # 打开信息窗口
            pyuf_ui_instance.OpenListingWindow()

        # 向信息窗口写入内容
        pyuf_ui_instance.WriteListingWindow('\nnew_prt_file_name is:{}'.format(new_prt_file_name))
        pyuf_ui_instance.WriteListingWindow('\nnew_prt_file_tag type is:{}'.format(type(new_prt_file_tag)))
        pyuf_ui_instance.WriteListingWindow('\nnew_prt_file_tag type is:{}'.format(new_prt_file_tag))

        # 将信息窗口的内容保存到指定文件中
        pyuf_ui_instance.SaveListingWindow('D:\\pyuf_listingwindow_content_test.txt')

        # 关闭信息窗口
        #pyuf_ui_instance.ExitListingWindow()

3.运行结果

3.1 内部模式

选中要运行的.py文件后,点击“管道通路”即可。
Siemens-NXUG二次开发-新建与保存prt文件[Python UF][20231204]_第1张图片
运行结果含两个文件:
Siemens-NXUG二次开发-新建与保存prt文件[Python UF][20231204]_第2张图片
Siemens-NXUG二次开发-新建与保存prt文件[Python UF][20231204]_第3张图片

3.2 外部模式

cmd命令:“D:\Siemens\NX 12.0\NXBIN\run_journal.exe” pyuf_new_prt.py
powershell命令:&“D:\Siemens\NX 12.0\NXBIN\run_journal.exe” pyuf_new_prt.py

运行结果:
Siemens-NXUG二次开发-新建与保存prt文件[Python UF][20231204]_第4张图片

你可能感兴趣的:(Siemens,NX/UG二次开发,ug,nx,ug二次开发,NX二次开发,西门子UG,ug,python,nx,python)