主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

動的なマスクダイアログボックス

ユーザー入力に対応して変化するマスクブロックのためのダイアログを作成できます。この方法で変更可能なマスクダイアログの機能には,次のようなものがあります。

  • パラメーターコントロールの可視性——パラメーターを変更することで,他のパラメーターのためのコントロールを表示したり,非表示にしたりできます。コントロールが現れたり消えたりすると,ダイアログは拡張されたり縮小されたりします。

  • パラメーターコントロールの有効状態——パラメーターを変更することで,他のパラメーターのためのコントロールの入力を有効にしたり,無効にしたりできます。無効なコントロールは,無効であることを視覚的に示すために灰色で表示されます。

  • パラメーター値——マスクダイアログボックスパラメーターを変更することで,関連付けられているマスクダイアログボックスパラメーターを適切な値に設定できます。

メモ

マスクパラメーターの追加,削除,変更は,マスクコールバックから制限されます。

動的なマスクダイアログボックスを作成するには,マスクエディターをset_paramコマンドとともに使用する必要があります。厳密には,まずマスクエディター使って静的なものと動的なものの両方のすべてのダイアログボックスパラメーターを定義します。各動的パラメーターを変更するには,ダイアログボックスの応答方法を定義するコールバック関数を入力します(コールバックコードの実行を参照)。コールバック関数は,今度は,set_paramコマンドを使用して,ダイアログボックスの他のコントロールの外観と設定に影響を与えるマスクパラメーターを設定します(動的なマスクダイアログボックスの作成を参照)。最後に,動的マスクダイアログボックスの作成を確定するためにマスクサブシステムを含むモデルやライブラリを保存します。

関連する例については,”動的マスクダイアログボックスを作成する“を参照してください。

パラメーターを表示する

選択されたパラメーターがマスクダイアログボックスに表示されるのは,このオプションがオンになっている場合(既定)のみです。

パラメーターを有効にする

このオプションを解除すると,選択されたパラメーターのプロンプトがグレー表示になり,プロンプトの編集コントロールが無効になります。

動的なマスクダイアログボックスの作成

この例では,入力内容に応じて表示が変わるマスクダイアログボックスを作成する方法を示します。

このマスクダイアログボックスを使用する2つのパラメーターを設定できます。1つ目のパラメーターは,3つのゲイン値(25または用户定义的)のいずれかを選択するポップアップメニューです。このポップアップメニューで選択した値に応じて,ゲインを指定する編集フィールドの表示/非表示が決まります。

  1. サブシステムを選択し,(子系统ブロック]タブの[マスク]グループで[マスクの作成)をクリックします。

  2. マスクエディターで[パラメーターとダイアログ]ペインを選択します。

  3. [ポップアップ]パラメーターをドラッグアンドドロップし,[ダイアログボックス]ペインで選択します。

    1. [プロンプト]フィールドに”获得“と入力します。

    2. [名前]フィールドに”gainpopup“と入力します。

    3. ポップアップに指定したリテラル値を仿金宝app真软件®が使用するように[プロパティエディター]ペインで[評価]をオフにします。

    4. [データ型オプション]フィールドで,[編集]ボタンをクリックし,[ポップアップオプション]ダイアログボックスに次の3つの値を入力します。

      2 5用户定义

  4. [ダイアログ]の[コールバック]フィールドに次のコードを入力します。

    %获取掩码参数值。这是一个字符向量的单元格%数组。“gainpopup”maskStr = get_param (gcb);%弹出菜单是第一个掩码参数。当在弹出窗口中选择% User-defined时,将这两个参数的可见性设置为on。set_param(gcb,' maskvisibility ',{'on';'on'}),否则%当用户定义未被选中时关闭Value字段%的可见性。将“值”字段中的字符向量设置为在“增益”弹出菜单中选择的%字符向量。% maskStr {2} = maskStr {1};set_param (gcb, editvalue maskStr);结束

  5. [エディット]パラメーターをドラッグアンドドロップし,[ダイアログボックス]ペインで選択します。

    1. [プロンプト]フィールドに”价值“と入力します。

    2. [名前]フィールドに”editvalue“と入力します。

    3. [プロパティエディター]ペインで,[表示]をオフにし,金宝app仿真软件でこのプロパティの表示が既定でオフになるようにします。

  6. [適用]をクリックします。

  7. マスクダイアログボックスを開くには,マスクサブシステムをダブルクリックします。

    [ゲイン]2または5を選択した場合,金宝app仿真软件では[値]は表示されません。[ゲイン]用户定义的を選択した場合,[値]は表示されます。

入れ子にされたマスクブロックパラメーターの設定

下位レベルのマスクサブシステムが上位レベルのマスクサブシステムによって定義されている記号を参照する場合に,下位レベルのマスクサブシステムにあるブロックのパラメーターの設定を試みると未解決の記号によるエラーを引き起こす可能性があります。このため,初期化されるマスクサブシステム内のマスクサブシステムに存在するブロックのパラメーターの設定にset_paramコマンドを使用することは避けてください。下位レベルのマスクサブシステムが上位レベルのマスクサブシステムによって定義されている記号を参照するかどうか試します。

たとえば,マスクサブシステムに,获得ブロックCを含むマスクサブシステムBがあり,その获得パラメーターがBによって定義されている変数を参照していると仮定します。また,サブシステム一の初期化コードに次のコマンドが含まれていると仮定します。

set_param([gcb '/B/C'], '采样时间','-1');

一个を含むモデルのシミュレーションまたは更新を実行すると,未解決の記号によるエラーが発生します。

関連するトピック