前页 | 后页 |
在仿真中创建对象
在模拟模型中,您可以创建类并创建它们的实例(全局对象)以表示流程中存在的对象,也可以定义动作以在流程中的任何时候生成一个或多个对象。
您可以使用三个选项在模拟模型中创建对象:
- 手动创建对象
- 通过CreateObject Action元素动态创建对象
- 使用JavaScript函数sim.CreateObject(“名称”)作为Action元素的“效果”,以再次动态创建Object
手动创建对象
只需在模型中的图上创建Object元素,即可:
- 从图工具箱的“对象”页面中拖动对象元素并设置其分类器,或者
- 从浏览器窗口中拖动分类器元素,并将其作为实例粘贴到图中
通过CreateObject操作创建对象
如果您的进程在运行时生成对象,则可以使用CreateObject Action进行模拟。
步 |
行动 |
也可以看看 |
---|---|---|
1个 |
在活动图上,从图工具箱中拖动“动作”图标,然后选择“其他| CreateObject的上下文菜单选项将其定义为CreateObject Action元素。 |
行动 |
2 |
将CreateObject Action的分类器设置为Object将成为其实例的Class。 (高级|设置分类器)。 在类似输出的CreateObject Action上创建一个Action Pin。 |
动作针 |
3 |
在处理序列中创建或选择下一个动作,然后添加一种输入的动作引脚。 将两个动作与一个控制流连接器相连,将两个动作销与一个对象流连接器相连。
|
控制流 对象流 |
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作为操作的效果)。
实例化内部对象
如前所述,您可以使用JavaScript或CreateObject Action创建对象。同样,您可以使用JavaScript或CallBehavior Action实例化内部对象。
在此示例中,使用JavaScript,模拟首先基于Class1创建一个测试对象。类1具有活动元素和图表,活动参数1设置为整数5,活动参数2设置为字符串“ test”。活动参数1的值被捕获为缓冲区值“ buf”。