Removing a block and making connections
6 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Michael Joslin
am 20 Feb. 2012
Kommentiert: Marco Baratelli
am 22 Jan. 2016
Lets say I have a simple subsystem that is just an inport, an outport and a gain block. I want to get rid of the gain block and just have the inport connected to the outport. If i use replace_block I can only replace the gain with another block and if I use delete_block it will remove the gain but leave two disconnected lines. How can I remove this block and make the connection between the remaining two using code?
0 Kommentare
Akzeptierte Antwort
Jarrod Rivituso
am 20 Feb. 2012
I've run into this before. My solution was to find port handles and reconnect. I'm not sure if there is an easier way.
Here's a function that should do the trick:
function removeAndReconnectBlock(blockHandle)
%Get port handles and parent system
portHandles = get_param(blockHandle,'PortHandles');
sys = get_param(blockHandle,'Parent');
%Get source port
srcSignal = get_param(portHandles.Inport,'Line');
srcPort = get_param(srcSignal,'SrcPortHandle');
%Get destination port
destSignal = get_param(portHandles.Outport,'Line');
destPort = get_param(destSignal,'DstPortHandle');
%Remove
delete_line(destSignal);
delete_line(srcSignal);
delete_block(blockHandle);
%Reconnect
add_line(sys,srcPort,destPort)
Note that this only works for single input, single output blocks, but I'm sure you could see how you would extend it further.
Weitere Antworten (1)
chandu
am 8 Dez. 2014
May I know how to disconnect SimPowerSystems blocks using PortHandles? Please help me ASAP.....
1 Kommentar
Marco Baratelli
am 22 Jan. 2016
The following works for me using SimScape! Hope it helps.
sbh = getSimulinkBlockHandle([sys '/NameOfYourSpecificBlock']);
ph = get_param(sbh,'PortHandles');
srcSignal = get_param(ph.RConn,'Line'); % or LConn for left connection of the block
delete_line(srcSignal);
Siehe auch
Kategorien
Mehr zu Sources finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!