0
我试图以编程方式将Simulink块从模型复制到库。我在不同的文件夹中有几个同名的Simulink模型。我想遍历它们并将这些模型中的块复制到Simulink库中。类似这样的:如何以编程方式将Simulink块复制到Simulink库
function UpdateLibrary()
%UPDATELIBRARY Updates BlockLib.mdl form PLECSBlocks of Components
% Detailed explanation goes here
UserLibDir = SimulationManagerClass.Dir.UserLib; %get the path
if exist([SimulationManagerClass.Dir.UserLib, '\BlockLib.mdl'], 'file')
delete([SimulationManagerClass.Dir.UserLib, '\BlockLib.mdl']);
end
BlockLib = new_system('BlockLib', 'Library'); %empty library
PlecsBlocks = rdir([SimulationManagerClass.Dir.UserLib, '\**\PLECSBlock.mdl']); %get all my sources
for i = 1:numel(PlecsBlocks)
SystemPath = PlecsBlocks(i).name;
sys = load_system(PlecsBlocks(i).name);
Blocks = find_system(sys);
add_block(Blocks(2),BlockLib);
close_system(sys);
end
save_system(BlockLib, [SimulationManagerClass.Dir.UserLib, '\BlockLib.mdl']);
close_system(BlockLib);
end
现在我正试图复制一个块。块似乎包含了完满成功模型的手柄以及这样:
Block(1) == sys
当我尝试这样我得到:
Invalid destination block specification
能add_block无法复制到库?是否有可能做到这一点?
问候
卢卡斯
不错。有效。我只需要传递一个字符串作为参数。谢了哥们! – Lukas