find_system() for custom library
15 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Ahmed Ellithy
el 7 de Mayo de 2023
Respondida: Ahmed Ellithy
el 7 de Mayo de 2023
I made a custome Library block which is basically a masked subsystem. I've put the masked subsystem inside another subytem and in its initialization section i made a code that replicates and connect copies of the custome block according to the wished number.
---------->
In order to achieve this, all the blocks need to be deleted along with the lines connecting each block. To delete the lines i inserted the folowing code which works fine:
lines = find_system(gcb,'SearchDepth','1','LookUnderMasks','On','FindAll','On','Type','Line');
delete(lines);
Now for the customed blocks i can't do the same since it doesnt get recognized. Following code has been tried:
blks = find_system(sys,'SearchDepth','1','LookUnderMasks','On','FindAll','On', 'BlockType', 'SubSystem');
delete_block(blks);
Using Simulink.SubSystem.deleteContents(gcb) i was able to delete everything. However this deletes the ports as well which is something that i dont want to have since any conection with the main subsystem will be terminated. Any idea..?
0 comentarios
Respuesta aceptada
Más respuestas (1)
Fangjun Jiang
el 7 de Mayo de 2023
The blks = find_system() will return 4 block handles. The first one is "sys" itself and the next three are the three customized blocks.
delete_block(blks) will delete "sys" first and then give an error message.
You could do delete_block(blks(2:end))
A better way is to give your customized block a unique tag so it is easy to find it. If it is a masked subsystem, then "MaskType" is the right one to use.
3 comentarios
Fangjun Jiang
el 7 de Mayo de 2023
Editada: Fangjun Jiang
el 7 de Mayo de 2023
If "gcb" here points to the block "Dynamic/Main System", then it is the same effect.
"MaskType" is at the document page of the Mask Editor. Make it "MyCustomBlock", then search your blocks like find_system(...,'MaskType','MyCustomBlock'). It is used similarly as find_system(...,'BlockType','Gain').
Ver también
Categorías
Más información sobre Subsystems en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!