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 Programmatic Model Editing 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!

