Main Content

slreportgen.finder.DiagramElementFinder クラス

パッケージ: slreportgen.finder

ブロック線図要素ファインダー オブジェクトの作成

説明

Simulink® ブロック線図または Stateflow® チャート図で要素を検索します。

slreportgen.finder.DiagramElementFinder クラスは handle クラスです。

作成

説明

finder = DiagramElementFinder(diagram) は、Simulink ブロック線図または Stateflow チャート図の要素を検索するファインダーを作成します。既定では、このファインダーはブロック線図内でブロック、注釈、線、ステート、およびその他の要素を検索します。ファインダーのプロパティを使用して、検索を特定タイプの要素に制約します。

メモ

このファインダーには、検索結果を取得する 2 つの方法が用意されています。

  • 検索結果を配列として返すには、find メソッドを使用します。結果をレポートに直接追加するか、for ループで結果を処理します。

  • 一度に 1 つずつ結果を反復処理するには、while ループで hasNext メソッドと next メソッドを使用します。

これらのオプションに、パフォーマンス上の差はありません。

finder = DiagramElementFinder(Name=Value) は、名前と値の引数を使用してプロパティを設定します。複数の名前と値の引数を任意の順序で指定できます。

入力引数

すべて展開する

Container プロパティを参照してください。

プロパティ

すべて展開する

検索の対象となるブロック線図。次のいずれかの値として指定します。

  • Simulink ブロックのハンドル

  • Simulink ブロックへのパス

  • Stateflow Chart ブロックのハンドル

  • Stateflow Chart ブロックへのパス

  • Stateflow チャート ID

  • Stateflow チャート オブジェクト

検索する Simulink または Stateflow のブロック線図要素のタイプ。string、文字配列、string の配列、または文字配列の cell 配列として指定します。タイプが配列の場合、一連の要素タイプが指定されます。既定値は All または all であり、すべてのブロック線図内のすべての要素を検索します。次のいずれかの値を使用して、検索を特定のブロック線図要素タイプに制約します。完全修飾名または省略名を使用できます。

完全修飾名省略名
Allall
Simulink.Annotationannotation
Simulink.Blockblock
Simulink.Segmentline
Simulink.Portport
Stateflow.Annotationsf_annotation
Stateflow.Boxbox
Stateflow.EMFunctionemfunction
Stateflow.Functionfunction
Stateflow.Junctionjunction
Stateflow.Portsf_port
Stateflow.SLFunctionslfunction
Stateflow.Statestate
Stateflow.Transitiontransition
Stateflow.TruthTabletruthtable

コメントアウトされたブロック線図要素を検索結果に含めるかどうかの選択。logical として指定します。false の場合、コメントアウトされた要素は検索結果から除外されます。

ブロック線図を検索するためのバリアント。string または文字ベクトルとして指定します。既定値は Active です。有効な値は次のとおりです。

  • All — すべてのバリアント

  • Active — アクティブなバリアントのみ

  • ActivePlusCode — すべてのアクティブなバリアントとコード バリアント

Container を検索するレベルの数。次のいずれかの値として指定します。

説明
[] (既定)
  • Container がブロック線図の場合、ブロック線図の最上位のみを検索します。

  • Container が Stateflow チャート図の場合、チャートの最上位から参照できる要素のみを検索します。検索には、入れ子形式のステート内にある要素が含まれますが、サブチャート内の要素は除外されます。

非負の整数

指定された数のレベルを検索します。

inf

すべてのレベルを検索します。

ファインダーの結果を並べ替えます。次のいずれかの値として指定します。

説明
"none"結果を並べ替えません。
"alphabetical"結果を名前のアルファベット順に並べ替えます。
"systemAlpha"結果を親システム名のアルファベット順に並べ替えます。
"depth"結果をモデルの階層構造の深さ順に並べ替えます。並べ替えられたリストの最初の結果は、階層内で最上位のオブジェクトのものです。たとえば、モデルとそのサブシステムは、 myModelmyModel/subsystem1myModel/subsystem1/nestedSubststem の順に並べ替えられます。

検索対象とするオブジェクトのプロパティ。名前と値のペアの cell 配列として指定します。ファインダーは、指定のプロパティが指定の値をもつオブジェクトのみを返します。

例: finder.Properties = {'Gain','5'}

メソッド

すべて展開する

すべて折りたたむ

f14 モデルにおいて、検索の深さ 1 でブロック、注釈、および線のブロック線図要素を検索します。

import mlreportgen.report.*
import slreportgen.report.*
import slreportgen.finder.*

model_name = "f14";
openExample(model_name);

rpt = slreportgen.report.Report("output","pdf");
add(rpt, TitlePage(Title=sprintf("%s Model",model_name)));
add(rpt, TableOfContents);

diagFinder = SystemDiagramFinder(Container=model_name,SearchDepth=1);
while hasNext(diagFinder)
    system = next(diagFinder);
    chapter = Chapter(Title=system.Name);
    add(chapter,system);
    sect = Section(Title="Diagram Elements");
    elemFinder = DiagramElementFinder(...
                        Container=system.Object,...
                        Types=["block" "annotation" "line"]);
    elems = find(elemFinder);
    for elem = elems
        add(sect, elem);
    end  
    add(chapter, sect);
    add(rpt, chapter);
end

close(rpt);
close_system(model_name);
rptview(rpt);

バージョン履歴

R2017b で導入