前页 后页

在仿真中创建对象

在模拟模型中,您可以创建类并创建它们的实例(全局对象)以表示流程中存在的对象,也可以定义动作以在流程中的任何时候生成一个或多个对象。

您可以使用三个选项在模拟模型中创建对象:

  • 手动创建对象
  • 通过CreateObject Action元素动态创建对象
  • 使用JavaScript函数sim.CreateObject(“名称”)作为Action元素的“效果”,以再次动态创建Object
动态创建对象后,您还可以实例化该对象的任何内部对象,例如Class上的Activity,并对该内部对象的属性进行操作。

手动创建对象

只需在模型中的图上创建Object元素,即可:

  • 从图工具箱的“对象”页面中拖动对象元素并设置其分类器,或者
  • 从浏览器窗口中拖动分类器元素,并将其作为实例粘贴到图中
然后,在仿真模型中,您可以自己设置对象属性(例如,设置运行状态以重新设置属性的初始值)或动作的行为以对对象进行操作(例如将其沿流程传递) ),并在模拟中观察对象发生了什么。

通过CreateObject操作创建对象

如果您的进程在运行时生成对象,则可以使用CreateObject Action进行模拟。

行动

也可以看看

1个

在活动图上,从图工具箱中拖动“动作”图标,然后选择“其他| CreateObject的上下文菜单选项将其定义为CreateObject Action元素。

行动

2

将CreateObject Action的分类器设置为Object将成为其实例的Class。

(高级|设置分类器)。

在类似输出的CreateObject Action上创建一个Action Pin。

动作针

3

在处理序列中创建或选择下一个动作,然后添加一种输入的动作引脚。

将两个动作与一个控制流连接器相连,将两个动作销与一个对象流连接器相连。

CreateObject in uml simulation

控制流 对象流

4

在图上执行模拟。执行CreateObject Action时,它将创建一个具有分类器属性的Object,并将其存储在其Output Pin中。对象本身通过“对象流”连接传递到“动作2”的“输入引脚”,可以在“本地”窗口中列出其属性以进行模拟。

使用JavaScript创建对象

您还可以在Action元素的“效果”字段中使用JavaScript命令动态创建仿真对象。该命令是:

sim.newObject = sim.CreateObject(“ ClassName”);

要么

sim.newObject =新的SimObject(“ ClassName”); (自然JavaScript)

即:“基于类<名称>模拟对象的创建”。分类类将与操作存在于同一包中。

至于CreateObject Action元素,该对象是在模拟过程中创建的,可以向下传递到“下游”元素并由其处理。在此示例中,将创建的对象标识为sim.object1,并在操作2中对其进行访问,并为其属性之一赋予不同的值(也通过JavaScript作为操作的效果)。

Use of Javascript in simulation

实例化内部对象

如前所述,您可以使用JavaScript或CreateObject Action创建对象。同样,您可以使用JavaScript或CallBehavior Action实例化内部对象。

在此示例中,使用JavaScript,模拟首先基于Class1创建一个测试对象。类1具有活动元素和图表,活动参数1设置为整数5,活动参数2设置为字符串“ test”。活动参数1的值被捕获为缓冲区值“ buf”。

Instantiation of inner objects in model simulation

学到更多