预订演示
前页 后页

绘图方法

使用形状脚本创建形状时,可以使用方法定义形状的值。这些值包括以下内容:

  • 形状是什么 - 一个矩形,一条线,一个球体
  • 形状的大小
  • 形状和边框的颜色
  • 形状具有的隔间和隔间文本
  • 显示在形状中和形状周围的文本和标签
  • 形状是否包含或包含捕获的图像
您可以通过按 Ctrl+Space 列出脚本中任何点的有效方法(命令)。

方法语法

<方法名> "(" <参数列表> ")";";

示例

主要形状

{

// 初始化属性 - 这些必须在绘制命令之前

noshadow = "真";

h_align = "中心";

//绘图命令(方法)

矩形(0,0,100,100);

println ("foo bar");

}

方法

方法名称

描述

也见

addsubshape( string shapename( int宽度, int高度))

添加一个必须在当前形状定义中定义的名为“shapename”的子形状。

附加隔间文本( string )

将额外的字符串附加到隔间的文本中。

添加文本的隔间取决于在使用“appendcompartmenttext”之前使用“setcompartmentname”设置的隔间名称。

必须调用此方法才能显示隔间。

将自定义隔间添加到元素

弧( int左, int顶部, int右, int底部, int起点x, int起点, int终点x, int终点)

绘制一个椭圆逆时针圆弧,椭圆的范围在左、上、右和下。

圆弧的起点由椭圆与椭圆中心到该点的连线(startingpointx,startingpointy)的交点定义。

弧的终点类似地由椭圆与从椭圆中心到该点的线(endpointx,endpointy)的交点定义。

例如:

弧(0, 0, 100, 100, 95, 0, 5, 0);

Illustrating the meaning of the Arc() command used in shape scripts.

arcto( int左, int顶部, int右, int底部, int起点 x, int起点, int终点 x, int终点)

至于圆弧方法,只不过是从当前位置画一条线到圆弧的起点,然后将当前位置更新到圆弧的终点。

bezierto( int controlpoint1x, int controlpoint1y, int controlpoint2x, int controlpoint2y, int endpointx, int endpointy)

绘制贝塞尔曲线并更新画笔位置。

defSize( int宽度, int高度)

设置元素的默认大小。

这可能出现在 IF 和 ELSE 子句中,每个子句具有不同的值,并导致元素在每次值更改时自动调整大小。

if(HasTag("水平","true"))

{

defSize(100,20);

矩形(0,0,100,100);

}

else

{

defSize(20,100);

矩形(0,0,100,100);

}

本示例在每次更改标签值'标记值'时将形状设置为指定的默认大小。

设置后,Alt+Z 还会将形状调整为定义的尺寸。

int width 和int height 的最小值都是 10。

绘制形状()

以通常的非形状脚本表示法渲染形状;随后的绘图命令叠加在本机符号上。

仅元素形状脚本支持此方法;不支持线形状脚本。

绘制父图形()

在扩展非 UML物件类型时使用。

呈现从父原型定义的形状。如果没有继承的形状脚本可用,则行为与形状脚本() 相同。

创建构造型扩展非 UML 对象

椭圆( int left, int top, int right, int底部)

绘制一个椭圆,其范围由左、上、右和下定义。

结束路径()

结束定义路径的绘图命令的序列。

填充行程路径()

用当前的填充颜色填充之前定义的路径,然后用当前的笔绘制它的轮廓。

填充路径()

用当前填充颜色填充先前定义的路径。

获取默认填充颜色()

获取元素的默认填充颜色。这可以是所有元素的标准填充颜色,或者,如果在“首选项”对话框的“图表>外观”页面上选择了“元素使用组样式”选项,则为元素类型定义的默认填充颜色。

图表外观Options 标准颜色

获取默认线颜色()

获取元素的默认线条颜色。这可以是所有元素的标准线条颜色,或者,如果在“首选项”对话框的“图表>外观”页面上选择了“元素使用组样式”选项,则为元素类型定义的默认线条颜色。

标准颜色 图表外观Options

隐藏标签( string标签名称)

隐藏由 labelname 指定的标签,其中 labelname 是以下值之一:

  • 中间标签
  • 中底标签
  • 左上标签
  • 左下标签
  • 右上标签
  • 右下标签
注记:通过将指定的标签设置为隐藏来实现此功能。对脚本的任何后续更改都不会再次显示标签。

抑制标签的推荐方法是覆盖该形状。例如,抑制默认构造型标签:

形状中间底部标签

{

打印(””);

}

图像( string imageId, int左, int顶部, int右, int底部)

在图像管理器中绘制名称为 imageId 的图像。

图像必须存在于使用原型的模型中;如果模型中不存在,则必须将其作为参考数据导入或从技术文件中选择。

如果图像在技术文件中,则它的文件名格式应为 <technology ID>::<imagename>.<extension>。

导入参考 添加图片

lineto( int x, int y)

从当前光标位置到 x 和 y 指定的点绘制一条线,然后将笔光标更新到该位置。 (另见注记部分。)

移动( int x, int y)

将笔光标移动到 x 和 y 指定的点。

多边形( int centerx, int centery, int numberofsides, int radius,float rotation)

绘制一个正多边形,中心在点 (centerx, centery),边数为 numberofsides。

打印( string文本)

打印指定的文本string 。

您不能更改此文本的字体大小或类型。

printifdefined( string propertyname, string truepart(, string falsepart))

如果给定属性存在并且具有非空值,则打印“truepart”,否则打印可选的“falsepart”。

您不能更改此文本的字体大小或类型。

println( string文本)

将一行文本附加到形状和换行符。

您不能更改此文本的字体大小或类型。

printwrapped( string文本)

打印指定的文本string ,如果文本比其包含的形状宽,则将其包裹在多行中。

您不能更改此文本的字体大小或类型。

矩形( int左, int顶部, int右, int底部)

绘制一个矩形,其范围为左、上、右、下。值是百分比。

圆形矩形( int左, int顶部, int右, int底部, int abs_cornerwidth, int abs_cornerheight)

绘制一个圆角矩形,其范围由左、上、右和下定义。

角的大小由 abs_cornerwidth 和 abs_cornerheight 定义;这些值不随形状缩放。

设置附件模式()

定义连接器如何连接到元素形状,在元素边上的任意点(参数“normal”)或在每个边的中心点(参数“diamond”),具体取决于“矩形表示法”选项的设置。请参阅示例脚本帮助主题。

示例脚本

设置隔间名称( string )

将隔间名称设置为提供的string 。

此方法必须在调用 appendcompartmenttext 之前使用;在调用 appendcompartmenttext 之后调用它会清除已添加到隔离专区的任何文本。

将自定义隔间添加到元素

设置默认颜色()

将画笔和画笔颜色恢复为默认设置,或恢复为用户定义的颜色(如果可用)。

颜色查询

setfillcolor( int red, int green, int blue)或
setfillcolor(颜色新颜色)

设置填充颜色。

您可以通过定义 RGB 值或使用任何颜色查询返回的颜色值来指定所需的颜色,例如:

GetUserFillColor() 或

获取用户边框颜色()

在所有情况下,setfillcolor 优先于适用于元素的任何颜色定义。

颜色查询

setfixedregion( int xStart, int yStart, int xEnd, int yEnd)

修复连接器中可以绘制子形状的区域,以便子形状不会随着连接器线的长度或方向重新缩放。

有关示例,请参阅示例脚本主题中的“旋转方向”脚本。

示例脚本

setfontcolor( int red, int green, int blue)或
setfontcolor(颜色新颜色)

设置文本string的字体颜色。

您可以通过定义 RGB 值或使用任何颜色查询返回的颜色值来指定所需的颜色,例如:

GetUserFontColor() 或

获取用户填充颜色()

您可以将此命令与任何文本打印命令一起使用。

颜色查询

setlinestyle( string线型)

修改使用笔的命令的笔划模式。

string linestyle: 具有以下有效样式:

  • 坚硬的
  • 短跑
  • 破折号
  • 点划线
  • 双倍的
(另见注记部分。)

setorigin( string relativeTo, int xOffset, int yOffset)

相对于主形状定位浮动文本标签。

  • relativeTo 是N 、NE、 E 、SE、 S 、SW、W、NW、CENTER 之一
  • xOffset 和 yOffset 以像素为单位,不是百分比值,可以为负数

setpen( int red, int green, int blue, int penwidth) 或 setpen(Color newcolor, int penwidth)

将画笔设置为定义的颜色并设置画笔宽度。

此方法仅适用于画线命令。它不影响任何文本打印命令。

颜色查询

setpencolor( int red, int green, int blue) 或 setpencolor(Color newColor)

设置画笔颜色。

您可以通过定义 RGB 值或使用任何颜色查询返回的颜色值来指定所需的颜色,例如:

获取用户填充颜色()

此方法仅适用于画线命令。它不影响任何文本打印命令。

颜色查询

setpenwidth( int penwidth)

设置画笔的宽度。笔宽应在1到 5 之间。

此方法仅适用于画线命令。它不影响任何文本打印命令。

显示标签( string标签名称)

显示由 labelname 指定的隐藏标签,其中 labelname 是以下值之一:

  • 中顶标签
  • 中间底部标签
  • 左上标签
  • 左下标签
  • 右上标签
  • 右下标签

startcloudpath(puffWidth、puffHeight、噪声)

与 startpath 类似,不同之处在于它使用云状曲线段(粉扑)绘制路径。

参数:

  • float puffWidth(默认 = 30),粉扑之间的水平距离
  • float puffHeight(默认 = 15),烟团之间的垂直距离
  • 浮动噪声(默认 = 1 .0),烟团位置的随机化

开始路径()

启动定义路径的绘图命令的序列。

行程路径()

用当前画笔绘制先前定义的路径的轮廓。

注记

  • 如果为一条由多条线段组成的线绘制形状脚本,并为线段定义不同的线型,则除中心线段以外的所有线段都使用第一个定义的线型;中心线段使用定义的第二种线型,如图所示:

    形状 主要的
    {
              无影=

               // 此笔样式将被忽略,因为没有绘制任何内容。

               setpen ( 0 , 0 , 0 , 1 );

               SetLineStyle “实心” );

    

               // 这种笔样式将用于非中心线段,因为它是

               // 第一个用于绘图。

              设置笔( 255 , 0 , 0 , 2 );

               SetLineStyle “破折号” );

              移动到( 0 , 0 );

               lineto ( 50 , 0 );

    

               // 这个线型用在中间段,没有其他的,因为它

               // 不是第一个绘制的。

               setpen ( 0 , 255 , 0 , 1 );

               SetLineStyle ( "点" );

               lineto ( 100 , 0 );

    

               // 此线型仅用于中心段的注释。

               setpen ( 0 , 0 , 0 , 1 );

               SetLineStyle “实心” );

               setfixedregion ( 40 ,- 10 , 60 , 10 );

              椭圆( 40 ,- 10 , 60 , 10 );

        }

具有此形状脚本A依赖连接器可能类似于以下内容:

An example shape script applied to a Dependency connector, illustrating the use of different styles on different line segments.