Main Content

MATLAB 命令行窗口以编程方式打印模型

您可以打印 Simulink® 模型图,并以编程方式将其导出为图像文件格式。要以交互方式打印和导出模型图,请参阅打印模型图

打印命令

MATLAB® print 命令提供几个打印选项。例如,要将 sldemo_enginewc 模型中的 Compression 子系统打印到您的默认打印机,请在 MATLAB 命令行窗口中输入以下命令。

openExample('sldemo_enginewc');
print -sCompression

使用 print 命令时,只能打印一个图。要打印模型层次结构中的多个层级,请使用多个 print 命令,对每个要打印的图使用一个命令。

提示

或者,考虑以交互方式打印。在 Simulink 工具栏中,在仿真选项卡的文件部分中,点击打印。然后,使用 Simulink 编辑器中的“打印模型”对话框指定要打印的图。有关详细信息,请参阅选择要打印的系统

您可以结合使用 set_param 函数和以下参数来指定模型的打印选项。

有关打印的模型参数

参数

描述

PaperOrientation

纸张的打印方向。

'portrait' | {'landscape'}

PaperPositionMode

纸张位置模式。

  • auto - 在打印时,Simulink 软件会调整图的尺寸以适合打印的页面。将图导出为图像时,Simulink 软件会调整导出图像的大小,使其尺寸与屏幕上显示的图的正常尺寸相同。

  • tiled - 打印或导出多页图。有关详细信息,请参阅 在多页上打印图

{'auto'} | 'tiled'

PaperType

打印纸张类型。

'usletter' | 'uslegal' | 'a0' | 'a1' | 'a2' | 'a3' | 'a4' | 'a5' | 'b0' | 'b1' | 'b2' | 'b3' | 'b4' | 'b5' | 'arch-A' | 'arch-B' | 'arch-C' | 'arch-D' | 'arch-E' | 'A' | 'B' | 'C' | 'D' | 'E' | 'tabloid'

PaperUnits

打印纸张尺寸单位。

'normalized' | {'inches'} | 'centimeters' | 'points'

TiledPaperMargins

与每个平铺页面相关联的边距尺寸。向量中的每个元素代表特定边的一个边距。

向量 - [left, top, right, bottom]

打印具有多行名称或名称中包含空格的系统

要打印名称显示为多行的系统,请将名称指定给某个变量,然后在 print 命令中使用该变量。此示例说明如何打印名为 Aircraft Dynamics Model 的子系统。

openExample('simulink_aerospace/AircraftLongitudinalFlightControlExample')
open_system('slexAircraftExample/Aircraft Dynamics Model');
sys = sprintf('slexAircraftExample/Aircraft\nDynamics\nModel');
print (['-s' sys])

要打印名称中包含一个或多个空格的系统,请将该名称指定为字符向量。例如,要打印 Throttle & Manifold 子系统,请输入以下命令。

openExample('sldemo_enginewc');
open_system('sldemo_enginewc/Throttle & Manifold');
print (['-sThrottle & Manifold'])

设置纸张方向和类型

要只设置纸张方向,请使用 orient 函数。或者,通过结合使用 set_param 函数和 PaperOrientation 模型参数来设置纸张方向。

要设置纸张类型,请结合使用 set_param 函数和 PaperType 模型参数。例如,要打印美国信纸大小的纸张,请将纸张类型设置为 'usletter'

在多页上打印图

默认情况下,打印过程中会缩放每个模块图,使图能够打印在一个页面上。对于大图,这种自动缩放会使打印的图像变形。

分块打印允许您打印甚至是最大的模块图,而不会牺牲清晰度和细节。分块打印允许您将一个模块图打印到多个页面上。例如,您可以像下图那样使用图块来拆分模型,每个白框和每个灰框代表一个单独的打印页面。

Simulink model overlaid onto a uniform grid of white and gray tiles

启用分块打印

  1. 使用 set_param 函数将 PaperPositionMode 参数设置为 tiled

  2. print 命令与 -tileall 参量结合使用。

例如,要为 sldemo_enginewc 模型中的 Compression 子系统启用分块打印,请使用以下命令。

openExample('sldemo_enginewc');
set_param('sldemo_enginewc/Compression', 'PaperPositionMode', ...
'tiled');
print('-ssldemo_enginewc/Compression', '-tileall')

显示分块页面边界

要以编程方式显示页面边界,请使用 set_param 函数,并将模型参数 ShowPageBoundaries 设置为 on

openExample('sldemo_enginewc');
set_param('sldemo_enginewc', 'ShowPageBoundaries', 'on')

设置分块页面边距

通过减少边距大小,可以增加分块页面的可打印面积。要指定分块页面的边距大小,请将 set_param 函数与 TiledPaperMargins 参数结合使用。默认情况下,每个边距为 0.5 英寸。TiledPaperMargins 的值是一个向量,按照以下顺序指定页边距:[left top right bottom]。每个元素指定页面上特定边的边距大小。PaperUnits 参数的值决定边距的测量单位。

指定要打印的分块页面的范围

要通过编程方式指定分块页面的页码范围,请将 print 命令与 -tileall-pages 参量结合使用。在 -pages 后面附加一个二元素向量,以指定范围。

注意

Simulink 使用行优先方案为分块页面分配页码。例如,第一行的第一页标为 1,第一行的第二页标为 2,依此类推。

例如,要打印第二、第三和第四页,请使用以下命令。

openExample('simulink_general/VanDerPolOscillatorExample');
print('-svdp','-tileall','-pages[2 4]')

将模型打印为图像文件格式

要将模型打印为图像文件格式,如 .png.jpeg,请将 -device 参量与 MATLAB print 命令结合使用。例如,要以 .png 格式打印 vdp 模型,请使用以下命令。

openExample('simulink_general/VanDerPolOscillatorExample');
print -dpng -svdp vdp_model.png

要以编程方式将模型导出为图像格式,请执行以下操作:

  • 在 MATLAB 命令行中调用您的模型。

    model %model is your model name
  • 使用打印命令以 .jpeg 格式保存您的模型。

    print('-smodel', '-djepg', 'new_name')

默认情况下,导出模型的画布(背景)与模型颜色相匹配。要对您导出为其他文件格式的模型文件使用白色或透明画布,请设置Simulink 预设项 > 常规 > 导出预设项。有关详细信息,请参阅 Simulink Preferences

另请参阅

|

相关示例

详细信息