Main Content

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 オブジェクトで指定されます。

スナップショット レポーター。既定で mlreportgen.report.FormalImage クラスのオブジェクトに設定されます。このプロパティを手動で設定する必要はありません。FormalImage オブジェクトは、ブロック線図のスナップショットをレポートに追加します。スナップショットのサイズを制御するには、mlreportgen.report.FormalImage プロパティを設定します。

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

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

スナップショット イメージの形式。文字ベクトルまたは string スカラーとして指定します。サポートされる形式は、次のとおりです。

  • 'bmp' — ビットマップ イメージ。

  • 'gif' — グラフィックス交換形式。

  • 'jpg' — JPEG イメージ。

  • 'png' — PNG イメージ。

  • 'emf' — 拡張メタファイル。Windows® プラットフォームの DOCX 出力でのみサポートされます。

  • 'svg' — Scalable Vector Graphics。

  • 'tiff' — タグ イメージのファイル形式。HTML 出力ではサポートされません。

  • 'pdf' — PDF イメージ。

バージョン履歴を参照してください。

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

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

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

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

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

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

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

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

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

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

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

ブロック線図のスナップショット イメージのスケーリング オプション。string、autocustom、または zoom として指定します。Scaling は、イメージ ファイル内のブロック線図スナップショット イメージのサイズを制御します。

  • auto — PDF または Word (docx) 出力の場合、auto は、ブロック線図のスナップショット イメージを、縦横比を保ちながら現在のページ レイアウトに収まるようにスケーリングします。まず、ブロック線図のスナップショット イメージは、ページ幅に合わせてスケーリングされます。イメージの高さがページの高さを超える場合は、イメージは再度スケール ダウンされます。この追加のスケーリングで、イメージは余分な 1 インチの間隔を空けて現在のページに収まるようになります。余分な間隔によって、表題などの追加テキストが可能になります。スケーリングは HTML 出力には適用されません。

  • customHeight および Width プロパティの値に基づいてブロック線図のスナップショット イメージをスケーリングします。

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

メモ

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

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

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

このエラーを回避するには、ズームの Scaling には、より小さい ZoomMaxHeight、および MaxWidth プロパティ値を使用します。カスタムの Scaling には、より小さい Height および Width プロパティ値を使用します。より小さい値を使用すると、ブロック線図がページに収まるようになります。

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

  • px — ピクセル (既定)

  • cm — センチメートル

  • in — インチ

  • mm — ミリメートル

  • pc — パイカ

  • pt — ポイント

例: '2in'

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

  • px — ピクセル (既定)

  • cm — センチメートル

  • in — インチ

  • mm — ミリメートル

  • pc — パイカ

  • pt — ポイント

例: '3in'

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

ズーム スケーリングの最大高さ。string として指定します。このプロパティは、Scalingzoom に設定されている場合にのみ適用されます。

MaxHeight の形式は valueUnits です。ここで、Units は高さの単位の略語で、value は単位の数です。Units の有効な略語の表については、Height プロパティを参照してください。

ズーム スケーリングの最大幅。string として指定します。このプロパティは、Scalingzoom に設定されている場合にのみ適用されます。

MaxWidth の形式は valueUnits です。ここで、Units は高さの単位の略語で、value は単位の数です。Units の有効な略語の表については、Height プロパティを参照してください。

このレポーターのテンプレートのソース。次のいずれかのオプションとして指定します。

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

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

  • このレポーターに使用されているテンプレートをもつか、このレポーター用のテンプレートを含むテンプレート ライブラリをもつ、DOM ドキュメントまたはドキュメント パーツ

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

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

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

メソッド

すべて展開する

すべて折りたたむ

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

次のコマンドを実行して、この例で使用するサポート ファイルにアクセスします。

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

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

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

次のコマンドを実行して、この例で使用するサポート ファイルにアクセスします。

openExample('rptgenext/SimulinkReportGeneratorFilesExample');
import mlreportgen.report.*
import slreportgen.report.*
import slreportgen.utils.*
import mlreportgen.dom.*
rpt = slreportgen.report.Report('output','pdf');
chapter = Chapter('slrgex_sf_car');

load_system('slrgex_sf_car');
diag1 = Diagram('slrgex_sf_car');
diag1.Snapshot.Caption = 'Root System: slrgex_sf_car';
add(chapter,diag1);
add(chapter,PageBreak);

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

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

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

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);

バージョン履歴

R2017b で導入

すべて展開する