Amesim竟然可以玩游戏?如何在Amesim草图界面运行Python脚本

开门见山,笔者在Amesim中运行了贪吃蛇游戏。

贪吃蛇

不光有贪吃蛇,还有锻炼记忆力的益智游戏。

益智游戏

难道Amesim真的有隐藏的内置游戏?

答案没有的,上述游戏都是通过python编写的,而为了实现从Amesim的草图界面执行Python文件,需要使用Simulation库的scriptinteractive(SCRCALL01)模块:

在这里插入图片描述

在模块参数中设置好需要运行的脚本文件与解释器。
在这里插入图片描述

双击模块或在右键菜单启动即可运行。

在这里插入图片描述

需要注意的是scriptinteractive模块只能通过Amesim的草图界面进行交互,也就是只能在GUI中运行的模型中使用。

由于其本身不会进行任何仿真运算,所以在仿真期间不会产生任何作用。

命令或脚本可通过以下几种方式调用:

  • 在参数或仿真模式下双击scriptinteractive模块。
  • 在仿真开始前和结束后。
  • 在参数更改时。

设置参数

scriptinteractive模块的设置参数包括三个部分:

  1. 全局设置
  2. 参数模式设置(Parameter mode)
  3. 仿真模式设置(Simulation mode)

在这里插入图片描述

全局设置

全局设置包括debug modeassistant namecommand interpreter三项。

  • debug mode

    用于调试命令,设置为true后会开启一个debug窗口,展示命令的执行情况
    在这里插入图片描述

  • assistant name

    此参数定义助手的名称。其显示在组件图标的上下文菜单和“调试”窗口的标题。

  • command interpreter

    在此参数中定义命令解释器。它将被添加到您在其他参数中指定的所有命令中,将其设置为AMEPython可使用Amesim内置的python解释器。例如,如果想调用python脚本,可以将命令解释器设置为windows的"python.bat"或UNIX/Linux的"python.sh"。

参数模式设置

  • command for open action:

    该参数定义了在参数模式下双击组件图标时启动的命令。如果在图标右键菜单中选择 “Launch User command…(启动用户命令…)”,也会执行同样的操作。如果已经定义了命令解释器,则该解释器将自动预置到该命令中。

  • open action is blocking:

    该参数定义了之前的命令在执行过程中是否阻塞。如果设置为true,则会出现以下消息框并阻塞,直到命令结束为止:

    在这里插入图片描述

  • command on parameter change:

    这条命令将在每次模型中的参数更改时被调用。该命令始终是阻塞的。

    在命令行中可以使用一些关键字,稍后会描述其中的一些关键字。然而,其中有一个关键字是专门针对该参数的:

    ${changed_param_list}

    当该关键字出现在命令行中时,它会被自动替换为一个文件,其中包含当前操作所更改的所有参数的列表。如果该关键字用于其他命令,生成的文件将不包含任何参数。

仿真模式设置

  • command for open action:

    同参数模式。

  • open action is blocking:

    同参数模式

  • command to call before a simulation:

    定义在仿真之前要调用的命令。

  • command to call after a simulation:

    该参数定义仿真后调用的命令。即使仿真失败,也会启动此命令。

  • command called after a simulation is blocking:

    该参数定义上述命令是否在执行过程中阻塞Amesim。如果设置为true,则会显示消息并阻止 Amesim,直到命令结束

关键字

除了命令行中可以执行的操作外,还可以使用一些关键字:

  • ${circuit_name}:替换为当前模型的名称。
  • ${full_circuit_name}:替换为包含绝对路径的当前模型名称。
  • ${library_node}:替换为包含SCRCALL01的库的绝对根路径。默认情况下,该值等同于目录。然而,如果您自定义了这个子模型,这将指向您在路径列表中指定的目录,以使自定义子模型可用。
  • ${all_param_list}:此关键字用于将模型的所有参数的xml列表发送给脚本。脚本可以使用这些信息。然而,目前脚本无法通过修改这些信息来更新模型。此关键字将被替换为一个临时文件,该文件包含模型的所有可见参数列表。命令完成后,该文件将被删除。根据模型的大小,生成该文件可能需要很长时间。
  • ${changed_param_list}:此关键字用于将模型中所有更改参数的xml列表发送给脚本。脚本可以使用这些信息。然而,目前脚本无法通过修改这些信息来更新模型。此关键字将被替换为一个临时文件,该文件包含当前更改参数的列表。当参数的值或标题被更改时,参数被视为已更改。命令完成后,该文件将被删除,此关键字仅在“参数更改命令”中有用。

总结

使用scriptinteractive模块的初衷当然不是用来玩游戏,而是一种定义特定预处理和后处理工具的简便方法,也将外部预处理和后处理工具连接到系统。

具体怎样去使用,就需要大家发挥想象力了。

关注基算仿真公众号并在后台回复:“游戏” 即可获取文中用到的模型源文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值