2013-09-25 89 views
1

因爲我需要爲子系統指定一個局部變量,所以我創建了一個掩碼。這樣做會使我無法輕鬆訪問子系統。右鍵單擊並導航到「查看掩碼」應該太複雜了。如何在Simulink子系統掩碼中實現一個按鈕?

所以我想到了一個解決辦法,並內置了以下內容:「!得到更深層次的」

mask

背後的對話框回調代碼複選框:

myParameter = %Parameter set by checking Get deeper! 
path = gcb(gcs); 

if strcmp(get_param(gcb,'myParameter'),'on')  
open_system(path,'tab'); 
end 

每次當我檢查中,該子系統被打開,並且還通過在每一個子系統雙擊,萬一這個箱子被前檢查。因此,代碼做了它應該做的事情,但這實際上不是人們如何實現/可視化這種事情的常見方式。

我想要的是一個按鈕「在面具下查看面具」 - 因此只需點擊該按鈕即可打開子系統。基本上按鈕應該調用功能:open_system(gcb(gcs),'tab')。看起來很簡單,但Simulink不提供任何選項來實現此功能。任何人都可以幫忙嗎?

當前解決方案的主要問題在於,每次執行模型時,所有子系統都會打開,在此框中進行檢查。這不是主意。

回答

3

Matlab 2012b增加了你想要的東西:被蒙面的塊在左邊的一個按鈕上是一個「查看掩碼下」的快捷方式。

不幸的是,我不認爲有可能在掩碼中添加一個按鈕。

您可能需要更改自己的功能以自動設置「獲取更深層次!」複選框在用戶點擊後關閉。這將避免模型加載時子系統自動打開。你可以這樣做只是open_system(path,'tab');

最後經過加set_param(path,'myParameter','off'),作爲另一種解決方法,您可能需要設置OpenFcn回調調用open_system(gcb,'tab')。這將使系統工作,就好像它根本沒有被屏蔽。如果您願意,您可以放兩個open_system調用,一個用於查看掩碼,另一個用於打開掩碼對話框。

+0

真的嗎?我有Matlab 2013a和2012a,兩者都沒有按鈕;)我也發現這個:[有沒有方法在Simulink中添加另一個按鈕到掩碼?](http://www.mathworks.de/support/解決方案/恩/數據/ 1-2YEIGG/index.html?產品= SL)這適用於情節,但不適合我的情況。你所建議的是我現在想要實現的幾個小時。如果你能提供一些代碼,你會幫助我很多。我嘗試將該複選框「初始化」爲關閉狀態,因此每次雙擊並進行非常模擬時都會取消選中。但我無法做到這一點。 – thewaywewalk

+0

@thewaywewalk它是蒙板子系統左下角的向下箭頭。它在R2012b中引入,請參閱http://blogs.mathworks.com/seth/2012/09/12/welcome-simulink-r2012b/。 – am304

+0

從發行說明中:「如果庫被鎖定或其」LockLinksToLibrary「屬性設置爲true,則不會爲庫鏈接的遮罩顯示[look under mask]徽章。」 – am304

相關問題