2.7. Ansys Rocky软件的PrePost Scripting自定义

录制或编写PrePost脚本,然后在Rocky中播放或使用,是通过自动执行可重复任务来节省时间的好方法。

Python是构建Rocky的编程语言。虽然了解如何理解Python并非使用Rocky的必要条件,但您可以通过多种方式使用该语言来自定义和扩展程序中的功能。

例如,Python的一个有用之处是创建和编辑脚本

您还可以使用Python为属性或曲线函数自定义高级表达式。(另请参阅关于自定义属性或曲线。)

Rocky还包括一个特殊的面板,您可以使用该面板来编辑底层Python代码并探索Rocky的API:PrePost功能。要打开此面板,请从Tools菜单中,单击Python Shell

图 2.161. Python Shell面板

Python Shell面板

注意:此版本的Rocky仅支持Python 3语言。如果您的脚本是使用旧版本的Rocky或旧版本的Python(例如Python 2.7)构建的,它们可能无法在此版本中运行。(另请参阅我的旧脚本无法运行。)

提示

  • 在Rocky PrePost Scripting Manual中,使用ContentsSearchIndex选项卡快速查找Rocky API。(从Rocky Help中,指向Manuals,然后单击PrePost Scripting Manual。)

  • 在Rocky客户门户的PrePost脚本库部分,查看和修改示例脚本。(如果您还没有客户门户的登录信息,请联系您的Rocky代表寻求帮助。)

另请参阅:

另请参阅:

2.7.1. 关于创建和使用PrePost脚本

在Rocky中创建和使用PrePost脚本是通过自动执行可重复任务来节省时间的好方法。脚本可以在PrePost Script面板中录制和播放,添加到Solver实体下的PrePost Scripts列表中,并且可以从命令行启动(另请参阅使用命令行播放脚本)。

如何选择创建脚本取决于您尝试重复的任务,以及您对Python和Rocky的API:PrePost功能的熟悉程度(另请参阅使用Python自定义和扩展Rocky)。具体来说:

  • 如果您要重复的步骤仅限于您在Rocky UI中单击或输入的内容,那么在PrePost Script面板中录制脚本可能是最简单、最快捷的选择。

  • 如果您需要对输入进行更多控制,或者希望访问无法从Rocky UI直接访问的任务,那么用Python编写脚本可能更适合您的需求。

有关更多详细信息,请参阅以下各节。

关于在PrePost脚本面板中录制和播放脚本

当您选择从PrePost Script面板开始录制脚本时,您在Rocky中执行的每一步都会被记住,直到您选择停止录制。然后,您可以选择在设置的其他部分、另一个视图甚至其他仿真文件中“播放”脚本,以自动重复相同的录制步骤。

例如,您可以使用录制的脚本来完成以下所有任务:

  • 在其他仿真中创建完全相同的动画关键坐标系集

  • 创建可用于其他仿真的通用变量集

  • 将自定义图形视图应用于绘图窗口,以使用首选单位和网格设置

  • 将一组动画关键坐标系导出到单个图像文件

  • 将首选可视化设置应用于同一仿真中的其他3D视图窗口

当您使用PrePost Script面板录制脚本时,Rocky会自动将生成的PY文件保存在正确的文件夹位置,并使用所需的script_前缀。

提示:只要您的脚本PY文件以script_开头,并保存在..RockyScripts文件夹(用于跨项目共享的脚本)或..<ProjectName>rocky.filestmpmacros-0文件夹(用于当前项目专用脚本)(另请参阅Rocky中的文件类型和文件夹),它就可以在PrePost Script面板中列出和播放。

关于用Python编写PrePost脚本

您还可以在Rocky程序外部编写和编辑脚本,然后将它们应用于Rocky中的仿真,方法是从PrePost Script面板播放生成的PY文件,或将代码直接粘贴到Python Shell面板中。

要编写或编辑脚本,需要了解Python(另请参阅使用Python自定义和扩展Rocky)和Rocky的API:PrePost功能(另请参阅我找不到Rocky API文档)。

提示:

关于共享脚本和项目专用脚本

Rocky允许您在不同的Rocky项目中共享录制和保存的脚本,或仅将其用于当前项目。保存到Scripts shared across projects选项卡的脚本将可用于整个应用中的所有Rocky项目;保存到Project scripts选项卡的脚本将仅出现在当前项目中(图1)。

图 2.162. 显示两个选项卡上不同脚本的PrePost脚本面板

显示两个选项卡上不同脚本的PrePost脚本面板

在选择录制脚本(另见录制新脚本)或导入脚本(另请参阅将外部脚本文件添加到脚本目录)时,您选择的选项卡决定了新脚本的类别。脚本可以通过右键菜单从一个选项卡复制到另一个选项卡(另请参阅复制脚本)。


注意:  只有Project scripts选项卡上的脚本才会在存档时保存(另请参阅存档仿真项目),并显示在Solver下的PrePost Scripts实体中(见下文)


关于求解器、PrePost脚本

您保存到Project scripts选项卡的任何脚本都可以通过SolverData面板上的PrePost Scripts子实体,在仿真处理之前和/或之后自动运行(图2)。通过这种方式,您可以进一步实现设置和后处理的自动化,特别是在运行许多类似案例的情况下。

图 2.163. Data Editors面板中的Solver、PrePost Scripts子实体

Data Editors面板中的Solver、PrePost Scripts子实体

关于求解器、PrePost脚本

在此版本的Rocky中,仅支持与Python 3(PY3)语言兼容的脚本。这意味着,一些在旧版本的Rocky中运行的脚本可能需要重新创建或修改,以支持Python 3指南。(另请参阅我的旧脚本无法运行。)

此外,只有以script_开头的PY文件才可以在PrePost Script面板中播放。没有此前缀的脚本文件仍然可以通过将代码复制并粘贴到Python Shell面板中来应用。

PrePost脚本面板

使用下面的图像和表格来了解如何创建和应用脚本。

图 2.164. 显示没有跨项目共享脚本的PrePost脚本面板

显示没有跨项目共享脚本的PrePost脚本面板

图 2.165. 新建PrePost脚本对话框

新建PrePost脚本对话框

表1:PrePost Script面板按钮说明

按钮

描述

  Record Script

开始录制过程,这是创建新脚本的第一步。保存Rocky中的每一步,直到您按下Stop and Save Script按钮。

注意:单击Record Script时所选择的选项卡将决定创建哪种脚本——是在所有项目中共享的脚本,还是仅为此项目保存的脚本。

  Stop and Save PrePost Script

停止录制过程并保存所执行的步骤。

  Playback PrePost Script

将所选脚本的录制步骤应用于Rocky UI中当前处于活动状态的任何元素。

  Open PrePost Scripts Directory

打开保存脚本PY文件的特定选项卡(跨项目共享或仅在当前项目中共享)脚本文件夹。从这里,您可以选择执行以下任何操作:

  • 使用Python编程语言编辑已保存的脚本文件,从而对其进行修改。

  • 将脚本发送给其他Rocky用户。

  • 将新脚本添加到目录中。

注意:单击Open PrePost Scripts Directory时所选择的选项卡将决定打开哪个脚本文件夹——是包含所有项目共享脚本的文件夹,还是包含仅为此项目保存的脚本的文件夹。

  Reload PrePost Scripts From the Filesystem

当脚本被添加到目录或从目录中删除时,这会刷新PrePost Script面板中的列表,以包括任何新添加或删除的PY文件。

  Help

打开一个简短的帮助文件,其中包含如何使用PrePost Script面板的说明。

您想要执行什么操作?

另请参阅:

2.7.2. 录制新脚本

  1. 确保已显示PrePost Script面板。(从Tools菜单中,单击PrePost Script。)

  2. PrePost Script面板中,执行以下操作之一:-要录制可在所有其他Rocky项目中共享的脚本,请确保选择了Scripts shared across projects选项卡。-要录制只能用于此项目的脚本,请确保选择了Project scripts选项卡。


    提示:  如果您改变主意,可以稍后将脚本复制到其他选项卡。(另请参阅复制脚本。)


  3. 单击Record Script按钮。

  4. New PrePost Script对话框中,输入要创建的脚本名称,然后单击OK。新脚本名称将出现在选定的PrePost Script面板选项卡上,并且按钮将更改为Stop and Save PrePost Script按钮。

  5. 在Rocky UI中,执行要重复的任务步骤。

  6. 步骤完成后,在PrePost Script面板中,单击Stop and Save PrePost Script按钮。

另请参阅:

2.7.3. 将外部脚本文件添加到脚本目录

使用此过程将脚本添加到脚本目录。

  1. 复制要添加的PY脚本文件。提示:为了让Rocky能够识别该脚本并将其显示在PrePost Script面板中,脚本文件名必须以script开头。例如:script_video settings.py 注意:未以这种确切方式命名的Rocky脚本仍可使用,但不会在PrePost Script面板中列出。相反,这些脚本必须从Rocky外部启动。(另请参阅使用命令行播放脚本。)

  2. 确保已显示PrePost Script面板。(从Tools菜单中,单击PrePost Script。)

  3. PrePost Script面板中,执行以下操作之一:-要以可在所有其他Rocky项目中共享的方式添加脚本,请确保选择了Scripts shared across projects选项卡。-要以只能用于此项目的方式添加脚本,请确保选择了Project scripts选项卡。

  4. 单击Open PrePost Scripts Directory按钮。

  5. 在打开的文件目录位置,粘贴您在步骤1中复制的PY文件。

另请参阅:

2.7.4. 手动应用已保存的脚本

  1. 确保要应用的脚本已保存到正确的目录。(另请参阅将外部脚本文件添加到脚本目录。)

  2. 在Rocky UI中,选择要应用脚本录制步骤的组件。

  3. PrePost Script面板中,选择要应用的脚本名称,然后单击Playback PrePost Script按钮。在所选组件上执行录制或脚本化的步骤。提示:要查看脚本进程概览,请单击脚本名称左侧的展开箭头。再次单击箭头可将其收缩。

注意:您还可以在处理仿真之前和/或之后直接自动应用脚本。(另请参阅在处理之前或之后直接自动应用脚本。)

另请参阅:

2.7.5. 在处理之前或之后直接自动应用脚本

  1. 确保在处理仿真之前和/或之后要直接自动应用的脚本列在PrePost Script面板的Project scripts选项卡上。(另请参阅复制脚本。)

  2. Data面板中,展开Solver实体,然后单击PrePost Scripts

  3. Data Editors面板中,执行以下操作:

    1. Run before simulation框中,启用要在处理仿真之前直接自动运行的所有脚本。

    2. Run after simulation框中,启用要在仿真处理之后直接自动运行的所有脚本。

提示:您还可以在Rocky项目期间随时手动应用脚本。(另请参阅手动应用已保存的脚本。)

另请参阅:

2.7.6. 使用Python编程语言编辑已保存的脚本

  1. PrePost Script面板中,选择包含要编辑的脚本的选项卡。

  2. 单击Open PrePost Scripts Directory按钮。

  3. 在目录对话框中,右键单击要编辑的脚本文件,用您最喜欢的Python编辑器打开它,根据需要进行修改,然后以PY扩展名保存文件。注意

    • 为了让Rocky能够识别该脚本并将其显示在PrePost Script面板中,脚本文件名必须以script_开头。例如script_video settings.py 未以这种确切方式命名的Rocky脚本仍可使用,但不会在PrePost Script面板中列出。相反,这些脚本必须从Rocky外部启动。(另请参阅使用命令行播放脚本。)

    • 要在此版本的Rocky中正常运行,必须使用Python 3编程语言。(另请参阅我的旧脚本无法运行。)

提示:脚本还可以访问Rocky的API:PrePost功能,该功能可以通过以下方式进行探索:

  • 使用Python Shell面板。(从Tools菜单中,单击Python Shell。)(另请参阅使用Python自定义和扩展Rocky。)

  • 使用API:PrePost Manual中的ContentsSearchIndex选项卡。(从Rocky Help菜单中,指向Manuals,然后单击API:PrePost Manual。)

另请参阅:

2.7.7. 复制脚本

  1. 确保已显示PrePost Script面板。(从Tools菜单中,单击PrePost Script。)

  2. 同时确保您已保存了Rocky项目。(另请参阅保存仿真项目。)

  3. PrePost Script面板中,执行以下操作之一:

    • 要将共享脚本复制到当前项目文件夹,请选择Scripts shared across projects选项卡。提示:如果您想要执行以下任一或两项操作,请按照此过程操作:

    • 要将当前项目脚本复制到与其他所有项目共享的文件夹中,请选择Project scripts选项卡。

  4. 右键单击要复制的脚本名称,然后单击Copy Prepost Script to project。您选择的脚本现在出现在另一个PrePost Script面板选项卡上。此外,Project scripts选项卡上的任何副本,现在也会出现在Solver PrePost Scripts列表中。(另请参阅在处理之前或之后直接自动应用脚本。)

另请参阅:

2.7.8. 删除脚本

  1. PrePost Script面板中,选择包含要删除脚本的选项卡。

  2. 右键单击要删除的脚本名称,然后单击Remove。脚本名称将从PrePost Script面板中删除。脚本PY文件也将从Script目录中删除。如果脚本已从Project scripts选项卡中删除,则它也将从Solver | PrePost Scripts框中删除。(另请参阅在处理之前或之后直接自动应用脚本。)

另请参阅:

2.7.9. 重命名脚本


注意:  重命名脚本只会影响Rocky UI中显示的内容。它不会更改保存在PrePost Scripts目录中的PY文件名。


  1. PrePost Script面板中,选择包含要重命名脚本的选项卡。

  2. 右键单击要重命名的脚本名称,然后单击Rename

  3. Renaming PrePost Script对话框中,输入脚本的新名称,然后单击OK。脚本的新名称将出现在PrePost Script面板中。如果重命名的脚本位于Project scripts选项卡上,则Solver | PrePost Scripts框中的名称也会相应更新。(另请参阅在处理之前或之后直接自动应用脚本。)

另请参阅: