模型软件编辑
使用模型
添加图块
要添加图块,请使用公共方法add_block
engee.add_block(lib_block_path, tgt_block_path)
-
从
lib_block_path
向tgt_block_path
添加块的副本。 -
lib_block_path "是模型或库中块的完整路径。双击工作区的空闲区域并键入所需块的名称,即可看到
lib_block_path
路径: -
tgt_block_path
- 系统路径和预期名称。如果没有指定名称,则会自动设置。 -
如果现有模型块的路径与库中块的路径一致,因为模型及其系统的名称与库中部分的名称一致,则选择模型中的块。
-
如果
tgt_block_path
最后包含未来区块的名称,则会尝试在该名称下添加一个区块。 -
如果
tgt_path
不包含未来区块的名称,则使用模式<block_type>-<index>
,例如Sin-1
,其中 index 是添加后给定类型区块的数量,Sin 是区块的区块类型。 -
在添加区块端口时,为子系统添加一个额外的端口,例如
Inport
。
添加的程序块不会立即显示。要显示图块,必须重新打开模型(之前已保存模型)、在模型之间切换或重新加载页面。 |
示例
engee.add_block("/Basic/Math Operations/Add", "newmodel_1/")
engee.add_block("/Basic/Math Operations/Complex to Real-Imag", "newmodel_1/Test_name") # добавит блок из библиотеки в систему и присвоит ему имя Test_name
错误
-
如果名称繁忙,则以
IncorrectBlockNameException
错误终止。 -
如果库块的路径不正确,则会以 "InvalidBlockPathException "错误终止。
-
如果添加库块的系统不存在或已关闭,则会以 `SystemIsNotExistException`错误终止。
删除程序块
公共方法delete_block 用于
engee.delete_block(block_path)
-
删除指定路径上的块。
-
block_path
- 模型中块的绝对路径,类型为newmodel_1/Sine Wave
,其中newmodel_1
是模型名称,Sine Wave
是块名称。 -
同时删除与程序块相关的所有线路和端口。
复制程序块
使用公共方法copy_block
engee.copy_block("newmodel_1/Add-3", "newmodel_2/") # добавить блок из модели `newmodel_1` с именем "Test_name" в модель `nemodel_2`
engee.copy_block("newmodel_1/Custom Block Name", "newmodel_2/Test_name")
-
从模型
newmodel_1
中添加一个块,并在模型newmodel_2
中为其赋名。 -
src_block_path::String
- 系统中块的完整路径。 -
tgt_block_path::String
- 系统路径和预期名称。格式:path/to/system/newblockname
(如果未指定名称,则会自动设置)。
错误
-
IncorrectBlockNameException
- 新块的名称不正确。 新块的名称不正确。 -
InvalidBlockPathException
- 复制的程序块在指定路径上不存在。 -
SystemIsNotExistException
- 被添加块的系统不存在。
添加/删除信号
使用公共方法add_line 和delete_line
# добавляет линии между портами
engee.add_line(src_port, dst_port) = engee.add_line(engee.gcs(), src_port_path, dst_port_path)
engee.add_line(system::String|System, src_port :: String, dst_port :: String)
# удаляет линии между портами
engee.delete_line(src_port, dst_port) = delete_line(gcs(), src_port, dst_port)
engee.delete_line(system, src_port :: String, dst_port :: String)
-
在端口
src_port_path
和dst_port_path
之间添加/删除一行,其中src_port
是指向模块输出端口的完整路径,tgt_port
是指向模块输入端口的完整路径。 -
如果路径指向子系统的块端口,则通过相应端口连接/断开子系统本身。
-
在其他情况下,相应端口的模块必须在同一系统中。
-
端口的序列号用作端口名称。
错误
-
SourceEdgeIsNotOutputPort` - 如果在 端口不是输出端口
-
TargetEgdeIsNotInputPort
- 如果 tgt_port_path 上的端口不是输入端口。 -
TargetEdgeAlreadyConnected
- 如果 tgt 端口已连接。 -
NotAcausalPort
- 在非定向连接上,如果其中一个端口的类型为非因果端口。 -
LineCannotBeAdded` - 如果端口类型或线路方向不正确。
写入/读取程序块和信号参数
使用公共方法set_param! 和get_param
engee.set_param!(blockPath, paramName => paramValue)
engee.get_param(blockPath, paramName)
engee.get_param(blockPath)
engee.set_param!(blockPath, blockParams)
-
类似于模型参数的
get_param
和set_param!
。
你不仅可以获取模型参数,还可以获取特定程序块的参数,例如,使用变量结构(我们称之为 params)更改参数:
params = engee.get_param("newmodel_1/Terminator") #возвращает все параметры блока Terminator в структуру params
engee.set_param!("newmodel_1/Terminator", params) #блоку Terminator присваиваются параметры из структуры params
用鼠标选中一个程序块,然后执行 "engee.get_param(engee.gcb()) "命令,即可获得该程序块的所有可用参数。例如,对于程序块Constant :
|
文章计划管理的公共方法 介绍了 Engee 提供的所有公共计划管理方法。 |
实例
engee.add_block("/Basic/Sources/Sine Wave", "model_name/Sine Wave-x") #вставляет блок Sine Wave из библиотеки Basic/Sources и присваивает ему имя Sine Wave-x
engee.add_block("/Basic/Sinks/Terminator", "model_name/") #вставляет блок Terminator из библиотеки Basic/Receivers и присваивает имя автоматически (например Terminator-1, если блок с именем Terminator уже существует)
engee.delete_block("newmodel_1/Terminator") #удаляет блок и все связанные с блоком линии и порты
engee.add_line("Sine Wave/1", "Terminator/1") #устанавливает сигнал между выходным портом №1 у блока Sin Wave и входным портом №1 блока Terminator
engee.delete_line("Sine Wave/1", "Terminator/1") # удаляет сигнал между выходным портом №1 у блока Sin Wave и входным портом №1 блока Terminator
engee.get_param("newmodel_1") # получение параметров моделирования
engee.set_param!("newmodel_1", "StopTime" => 15, "FixedStep" => 0.05) #меняем время окончания симуляции и фиксированный размер шага