メインコンテンツ

slreportgen.report.Diagram クラス

名前空間: slreportgen.report
スーパークラス: slreportgen.report.Reporter

ブロック線図レポーターの作成

説明

Simulink® または Stateflow® のブロック線図用に、ブロック線図のスナップショットと表題が含まれるブロック線図レポーターを作成します。

メモ

レポートでブロック線図レポーターを使用するには、slreportgen.report.Report クラスを使用してレポートを作成する必要があります。

slreportgen.report.Diagram クラスは handle クラスです。

作成

説明

diagram = Diagram() は、空のブロック線図レポーターを作成します。Simulink または Stateflow のブロック線図を取得するように、そのプロパティを設定します。

diagram = Diagram(source) は、source によって指定された Simulink または Stateflow のブロック線図用のブロック線図レポーターを作成します。このレポーターをレポートに追加すると、ブロック線図のスナップショットが作成されます。次に、スナップショットがレポート内にイメージとして表題と共に表示されます。スナップショット イメージは、レポートの一時フォルダーに保存されます。レポートを閉じると、スナップショット イメージはレポートにコピーされ、イメージは一時フォルダーから削除されます。スナップショット イメージ ファイルが削除されないようにするには、レポートの Debug プロパティを使用します。slreportgen.report.Report を参照してください。

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

入力引数

すべて展開する

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

プロパティ

すべて展開する

ブロック線図のスナップショット イメージのソース。次のいずれかの値として指定します。

  • 開いている、または読み込まれている Simulink モデルの名前

  • Simulink ブロック線図または Stateflow チャートを含む Simulink サブシステム ブロックのパス

  • slreportgen.finder.DiagramResult オブジェクト

  • Simulink ブロック線図または Stateflow チャートを含むサブシステム ブロックのハンドル

  • Stateflow.Chart または Stateflow サブチャート オブジェクト。サブチャートは、他のサブチャートを含め、最上位のチャートと同じオブジェクトを含むことができるグラフィカル オブジェクトです。サブチャートは一般に Stateflow.StateStateflow.Function、または Stateflow.Box オブジェクトで指定されます。

属性:

NonCopyable
true

スナップショット レポーター。mlreportgen.report.FormalImage オブジェクトとして指定します。FormalImage オブジェクトのプロパティを使用して、スナップショット イメージのキャプションを指定したり、イメージのサイズをさらにカスタマイズしたりします。

メモ

レポーターは Snapshot プロパティを初期化します。このプロパティはリセットしないでください。

属性:

GetAccess
public
SetAccess
public

スナップショットをキャプチャするブロック線図領域。1 行 4 列の double 配列として指定します。配列の最初の 2 つの値は、Simulink エディターの座標空間のブロック線図領域の左上隅にある x 座標と y 座標 (ピクセル単位) です。最後の 2 つの値は、幅と高さ (ピクセル単位) です。空の配列は、ブロック線図全体を指定します。

Simulink エディターでキャプチャするビューを設定してから、SnapshotArea プロパティを関数 slreportgen.utils.getCurrentEditorView の出力に設定できます。例については、ブロック線図の一部のスナップショットのキャプチャを参照してください。

データ型: double

スナップショット イメージの形式。次のいずれかの形式として指定します。

インポートするイメージ形式HTML でのサポートWord でのサポートPDF でのサポート

PDF/A でのサポート (R2025a 以降)

Windows® メタファイル (.emf)なしありなしなし
グラフィックス交換形式 (.gif)ありありありあり
JPEG イメージ (.jpg)ありありありなし
PDF (.pdf)なしなしありなし
PDF/A (.pdf)なしなしありなし
Portable Network Graphics (.png)ありありありあり
Scalable Vector Graphics (.svg)ありありありあり
TIFF イメージ (.tif)なしありありあり

メモ

PDF レポート出力形式とは異なり、PDF/A 形式では PDF または PDF/A イメージを含めることはサポートされていません。PDF/A レポートにイメージを含めるには、表にリストされているイメージ形式のいずれかを使用します。

属性:

GetAccess
public
SetAccess
public

データ型: char | string

各ブロック線図要素のハイパーリンクを含めるかどうかの選択。logical として指定します。このプロパティが true の場合、各要素は、その要素を説明するレポート内のオブジェクトへのハイパーリンクになります。このプロパティは、PDF と HTML のレポートにのみ適用されます。ハイパーリンクによって、Simulink と Stateflow のチャートを使用してレポートをナビゲートできます。

DiagramSimulinkObjectProperties、および StateflowObjectProperties レポーターが連携することで、ハイパーリンクを使用したナビゲーションが可能になります。各レポーターは、作成するレポート オブジェクトの前にハイパーリンク ターゲットを付けます。そのターゲットの ID は、モデル内のレポートされる要素のパスに基づきます。また、ブロック線図レポーターは、ブロック線図のスナップショットの要素と、対応する要素ベースのターゲット ID へのハイパーリンクを重ね合わせます。ブロック線図要素がリンクするレポート オブジェクトは、要素のタイプによって異なります。

  • ブロック線図ベースのブロック (サブシステム、チャート、モデル) は、ブロックのブロック線図にリンクされます。

  • その他のブロックは、ブロックのテキスト説明 (通常、ブロックのプロパティ テーブル) にリンクされます。

  • マスク パラメーターをもつマスク サブシステム ブロックは、ブロックのテキスト説明 (マスク パラメーター テーブルなど) にリンクされます。テキスト説明へのこのリンクは、ブロック線図レポーターの MaskedSystemLinkPolicy プロパティが "block" または "default" に設定されている場合にのみ真になります。それ以外の場合、マスク システム ブロックはそのブロック線図にリンクされます。

  • マスク パラメーターをもたないマスク サブシステム ブロックは、ブロックのブロック線図にリンクされます。

ブロック線図ベースのナビゲーションをカスタマイズするには、ユーティリティ関数 slreportgen.utils.getObjectID によって生成されたターゲット ID に基づいてカスタム リンク ターゲットを作成します。

データ型: logical

マスク システム ブロックのハイパーリンクのターゲットを特定するためのポリシー。次のいずれかの値として指定します。

  • "default" — パラメーターをもつマスク システム ブロックは、テキスト説明 (マスク パラメーター テーブルなど) にリンクされます。パラメーターをもたないマスク システム ブロックは、レポート内の対応するブロック線図にリンクされます。

  • "system" — マスク システム ブロックは、レポート内のそのブロック線図にリンクされます。

  • "block" — マスク システム ブロックは、そのテキスト説明 (マスク パラメーターやサブシステム パラメーターのテーブルなど) にリンクされます。

データ型: char | string

スナップショット イメージのスケーリング オプション。"auto""custom"、または"zoom" として指定します。このプロパティは、イメージ ファイル内のスナップショット イメージのサイズを制御します。サポートされているスケーリング オプションは次のとおりです。

  • "auto" — PDF または Word (DOCX) 出力の場合、このオプションを使用して、スナップショット イメージを、縦横比を保ちながら現在のページ レイアウトに収まるようにスケーリングします。まず、レポーターがスナップショット イメージをページ幅に合わせてスケーリングします。イメージの高さがページの高さを超えると、レポーターはイメージを再び縮小方向にスケーリングします。このさらなるスケーリングにより、イメージを 1 インチの余白を空けて現在のページに収まるようにします。スケーリングは HTML 出力には適用されません。

  • "custom" — このオプションを使用して、Height プロパティおよび Width プロパティの値に基づいてスナップショット イメージをスケーリングします。

  • "zoom"Zoom プロパティで指定されているパーセント値に要素イメージのサイズを拡大または縮小します。イメージの最大高さと最大幅を指定するには、それぞれ MaxHeight プロパティと MaxWidth プロパティを使用します。

メモ

"auto" "custom" オプションは、MATLAB®print コマンドを使用して図のサイズを変更します。図が大きすぎて指定されたスペースに収まらない場合は、print コマンドでスナップショット イメージをトリミングします。トリミングを回避するには、[スケーリング] プロパティを ”なし” に設定し、Snapshot プロパティで指定されているレポーターを使用して画像のサイズを変更します。レポーターはテキストのサイズをイメージの他の部分と一緒に縮小するため、画像を拡大しないと細かい部分が判読できない場合があります。Figure スナップショット イメージのサイズ変更を参照してください。

メモ

次のいずれかのプロパティ設定の組み合わせでは、java.lang.OutOfMemoryError が発生する可能性があります。

  • Scaling"zoom" に設定し、かつ ZoomMaxHeight、および MaxWidth プロパティを大きい値に設定する

  • Scaling"custom" に設定し、かつ Height および Width プロパティを大きい値に設定する

このエラーを回避するには、ズームの Scaling には、より小さい ZoomMaxHeight、および MaxWidth プロパティ値を使用します。Scaling"custom" に設定している場合は、より小さい Height および Width プロパティ値を使用します。

属性:

GetAccess
public
SetAccess
public

データ型: char | string

スナップショット イメージの高さ。数値とそれに続く測定単位の略語を含む文字ベクトルまたは string スカラーとして指定します。たとえば、"2in" は 2 インチを指定します。既定のスナップショットは 6 インチです。有効な略語は次のとおりです。

  • "px" — ピクセル

  • "cm" — センチメートル

  • "in" — インチ

  • "mm" — ミリメートル

  • "pc" — パイカ

  • "pt" — ポイント

メモ

PDF イメージの場合、サイズの上限は幅と高さ共に 10,000 ピクセルです。その他のイメージ タイプはすべて画面サイズが上限となります。

例: "2in"

属性:

GetAccess
public
SetAccess
public

データ型: char | string

スナップショット イメージの幅。数値とそれに続く測定単位の略語を含む文字ベクトルまたは string スカラーとして指定します。たとえば、"2in" は 2 インチを指定します。デフォルトのスナップショットの幅は 6.5 インチです。有効な略語は次のとおりです。

  • "px" — ピクセル

  • "cm" — センチメートル

  • "in" — インチ

  • "mm" — ミリメートル

  • "pc" — パイカ

  • "pt" — ポイント

メモ

PDF イメージの場合、サイズの上限は幅と高さ共に 10,000 ピクセルです。その他のイメージ タイプはすべて画面サイズが上限となります。

例: "2in"

属性:

GetAccess
public
SetAccess
public

データ型: char | string

スナップショット イメージのズーム量。string として指定します。Zoom の形式は "value%" です。ここで、value はスナップショット イメージが拡大または縮小されるパーセントです。

例: "100%"

データ型: char | string

ズーム スケーリングの最大高さ。数値とそれに続く測定単位の略語を含む文字ベクトルまたは string スカラーとして指定します。たとえば、"10px" は 10 ピクセルを指定します。有効な略語は次のとおりです。

  • "px" — ピクセル

  • "cm" — センチメートル

  • "in" — インチ

  • "mm" — ミリメートル

  • "pc" — パイカ

  • "pt" — ポイント

メモ

このプロパティは、Scaling"zoom" に設定されている場合にのみ適用されます。

例: "5in"

データ型: char | string

ズーム スケーリングの最大幅。数値とそれに続く測定単位の略語を含む文字ベクトルまたは string スカラーとして指定します。たとえば、"10px" は 10 ピクセルを指定します。有効な略語は次のとおりです。

  • "px" — ピクセル

  • "cm" — センチメートル

  • "in" — インチ

  • "mm" — ミリメートル

  • "pc" — パイカ

  • "pt" — ポイント

メモ

このプロパティは、Scaling"zoom" に設定されている場合にのみ適用されます。

例: "5in"

データ型: char | string

このレポーターのテンプレートのソース。以下のいずれかの方法で指定します。

  • このレポーターのテンプレートを含むファイルのパスを指定する、文字ベクトルまたは string スカラー

  • このレポーターが使用するテンプレートをもつか、このレポーター用のテンプレートを含むテンプレート ライブラリをもつ、レポーターまたはレポート

  • このレポーターが使用するテンプレートをもつか、このレポーター用のテンプレートを含むテンプレート ライブラリをもつ、ドキュメント オブジェクト モデル (DOM) のドキュメントまたはドキュメント パーツ

指定されるテンプレートは、このレポートが追加されるレポーターと同じタイプでなければなりません。たとえば、Microsoft® Word レポートの場合、TemplateSrc は Word レポーター テンプレートでなければなりません。TemplateSrc プロパティが空の場合、このレポーターはレポートの出力タイプで既定のレポーター テンプレートを使用します。

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

このレポーター テンプレートの名前。文字ベクトルまたは string スカラーとして指定します。このレポーター テンプレートは、このレポーターの TemplateSrc プロパティで指定されたテンプレートのテンプレート ライブラリになければなりません。

属性:

GetAccess
public
SetAccess
public

データ型: char | string

このレポーターのハイパーリンク ターゲット。リンク ターゲット ID を指定する文字ベクトルまたは string スカラー、あるいは mlreportgen.dom.LinkTarget オブジェクトとして指定します。文字ベクトルまたは string スカラーの値は LinkTarget オブジェクトに変換されます。リンク ターゲットは、出力レポートでこのレポーターのコンテンツの直前に配置されます。

属性:

GetAccess
public
SetAccess
public

メソッド

すべて展開する

すべて折りたたむ

vdp モデルの最上位のスナップショットをレポートに追加します。

load_system("vdp")
import slreportgen.report.*
import mlreportgen.report.*
rpt = slreportgen.report.Report("output","pdf");
 
chapter = Chapter();
chapter.Title = "Diagram Reporter Example";
 
diagram = Diagram("vdp");
diagram.Snapshot.Caption = "The van der Pol Equation";
diagram.SnapshotFormat = "svg";
diagram.Snapshot.Height = "4in";

add(chapter,diagram);
add(rpt,chapter);
rptview(rpt);

Snapshot of the top-level model in the report

PDF レポートを作成し、それに sf_car モデルのルート システムとサブシステムのブロック線図スナップショットを追加します。transmission サブシステムにハイパーリンクを追加し、そのリンクのターゲットとして段落を追加します。

import mlreportgen.report.*
import slreportgen.report.*
import slreportgen.utils.*
import mlreportgen.dom.*
rpt = slreportgen.report.Report("output","pdf");
chapter = Chapter("sf_car");

model_name = "sf_car"
model_name = 
"sf_car"
load_system(model_name);
diag1 = Diagram("sf_car");
diag1.Snapshot.Caption = "Root System: sf_car";
add(chapter,diag1);
add(chapter,PageBreak);

diag2 = Diagram("sf_car/Engine");
diag2.Snapshot.Caption = "Subsystem: sf_car/Engine";
add(chapter,diag2);
add(chapter, PageBreak);

para = Paragraph("Custom target for sf_car/transmission");
id = getObjectID("sf_car/transmission");
append(para,mlreportgen.dom.LinkTarget(id));
add(chapter,para);
add(chapter,PageBreak);

add(rpt,chapter);
close(rpt);
rptview(rpt);
close_system(model_name);

First chapter of the report, showing an image of the model sf_car.

SnapshotArea プロパティを使用して、スナップショットをキャプチャするブロック線図の領域を指定します。この例では、Simulink エディターでビューを設定してから、slreportgen.utils.getCurrentEditorView を呼び出してそのビューに SnapshotArea プロパティを設定します。

モデルを開きます。

openExample("f14")

Simulink エディターで、スナップショットをキャプチャするブロック線図の一部を表示します。slreportgen.utils.getCurrentEditorView を呼び出して、Simulink エディターの現在のビュー領域を取得します。

editorViewArea = getCurrentEditorView();

レポートとブロック線図レポーターを作成します。ブロック線図のスナップショット領域をエディターの現在の表示領域に設定します。ブロック線図レポーターをレポートに追加します。

import slreportgen.report.*
import Slreportgen.utils.*
rpt = Report("output","pdf");

diag = Diagram("f14");
diag.SnapshotArea = editorViewArea;
add(rpt, diag);

close(rpt);
rptview(rpt);

制限

  • slreportgen.report.Diagram は、以下からブロック線図のスナップショットを作成できません。

    • Stateflow.StateTransitionTableChart

    • Stateflow.TruthTableChart

    • Stateflow.TruthTable

    • Stateflow.EMChart

バージョン履歴

R2017b で導入

すべて展開する