How to change position of duplicated Simulink module in GUI dynamically?
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Saeed Soltani
le 11 Fév 2016
Commenté : Fangjun Jiang
le 11 Fév 2016
Hi,
I have created a simple GUI in which by clicking a pushbutton, it duplicates (using add_block) an existing module. The problem is that, it creates the new module in the same position each time, therefore by double clicking the last created one may not be recognized in the first look. I would like to optimize it by changing the position (for ex: a bit forwarding) dynamically by each clicking. Thanks in advance.
Best regards,
Saeed
0 commentaires
Réponse acceptée
Fangjun Jiang
le 11 Fév 2016
Modifié(e) : Fangjun Jiang
le 11 Fév 2016
Assume you are duplicating a block in a model using add_block (but not add_block() from a library source), the new block name will always be suffixed with a number starting from 1 and it is available.
sb='untitled/Gain';
hBlock = add_block(sb, sb, 'MakeNameUnique', 'on');
NewName=get(hBlock,'Name');
Offset=regexp(NewName,'\d+','match');
Offset=Offset{end};
Position=get(hBlock,'Position');
set(hBlock,'Position',Position+10*str2double(Offset));
If the source block name starts as e.g. 'untitled/Ga123in5', it should also work. I don't think you care how much is the offset as long as it distinguish from other blocks. Make the linear scale larger could also help.
2 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Computer Vision with Simulink dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!