前页 后页

绘图方法

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

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

方法语法

<MethodName>“(”“ <ParameterList>”)“;”;

形状主体

{

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

noshadow =“ true”;

h_align =“中心”;

//绘制命令(方法)

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

println(“ foo bar”);

}

方法

方法名称

描述

也可以看看

addsubshape(字符串shapename(int宽度,int高度))

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

appendcompartmenttext(字符串)

将其他字符串附加到隔离专区的文本。

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

必须调用此方法以显示隔离专区。

将自定义隔间添加到元素

弧(左向左,向右上方,向右向右,向右下方,向左开始int,向左开始int,向左开始int,向右开始int)

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

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

圆弧的末端类似地由椭圆和从椭圆中心到点(endpointx,endpointpoint)的线的交点定义。

例如:

弧(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起始点,int起始点,int终止点,int终止点)

对于圆弧方法,除了从当前位置到圆弧的起点绘制一条线,然后将当前位置更新到圆弧的终点。

bezierto(int控制点1x,int控制点1y,int控制点2x,int控制点2y,int端点x,int端点)

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

defSize(int width,int height)

设置元素的默认大小。

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

if(HasTag(“ horizontal”,“ true”))

{

defSize(100,20);

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

}

其他

{

defSize(20,100);

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

}

每次更改“标记的值”“水平”时,此示例都会将形状设置为指定的默认大小。

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

int宽度和int高度的最小值均为10。

drawingativeshape()

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

仅对元素Shape Script启用此方法。不支持线形脚本。

drawparentshape()

在扩展非UML对象类型时使用。

渲染从父构造型定义的形状。如果没有可用的继承形状脚本,则其行为与drawativeshape()相同。

创建扩展非UML对象的构造型

椭圆(左向左,向右上方,向右向右,向下向内)

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

endpath()

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

fillandstrokepath()

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

fillpath()

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

getdefaultfillcolor()

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

图表外观选项 标准色

getdefaultlinecolor()

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

标准色 图表外观选项

hidelabel(字符串标签名)

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

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

注意:此功能通过将指定标签设置为隐藏来起作用。脚本的任何后续更改都不会再次显示标签。

建议删除标签的方法是覆盖该形状。例如,取消默认构造型标签:

形状中底标签

{

打印(””);

}

image(字符串imageId,int左,int顶部,int右,int底部)

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

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

如果图像在技术文件中,则文件名的格式应为<技术ID> :: <图像名称>。<扩展名>。

导入参考数据 新增图片

lineto(int x,int y)

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

moveto(int x,int y)

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

多边形(int centerx,int centery,intofsides,int半径,浮点旋转)

绘制一个以点为中心(centerx,centery),边数为numberofsides的规则多边形。

打印(字符串文本)

打印指定的文本字符串。

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

printifdefined(字符串属性名,字符串truepart(,字符串falsepart))

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

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

println(字符串文本)

在形状和换行符后附加一行文本。

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

printwrapped(字符串文本)

打印指定的文本字符串,如果文本宽于其包含的形状,则将其包裹在多行上。

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

矩形(向左,向内顶部,向右向内,向下向内)

绘制一个矩形,其范围在左侧,顶部,右侧,底部。值是百分比。

roundrect(int左,int顶部,int右,int底部,int abs_cornerwidth,int abs_cornerheight)

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

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

setcompartmentname(字符串)

将隔离专区名称设置为提供的字符串。

在调用appendcompartmenttext之前必须使用此方法;在调用appendcompartmenttext之后调用此函数将清除已添加到隔离专区的所有文本。

将自定义隔间添加到元素

setdefaultcolors()

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

颜色查询

setfillcolor(红色,绿色,蓝色)或
setfillcolor(颜色newColor)

设置填充颜色。

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

GetUserFillColor()或

GetUserBorderColor()

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

颜色查询

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

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

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

示例脚本

setfontcolor(int红色,int绿色,int蓝色)或
setfontcolor(Color newColor)

设置文本字符串的字体颜色。

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

GetUserFontColor()或

GetUserFillColor()

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

颜色查询

setlinestyle(字符串线型)

更改使用笔的命令的笔划样式。

字符串线型:具有以下有效样式:

  • 固体
  • 短跑
  • 破折号
  • 点划线
(另请参见注释部分。)

setorigin(字符串relativeTo,int xOffset,int yOffset)

相对于主要形状放置浮动文本标签。

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

setpen(int红色,int绿色,int蓝色,int笔宽)或setpen(Color newcolor,int笔宽)

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

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

颜色查询

setpencolor(int红色,int绿色,int蓝色)或setpencolor(Color newColor)

设置笔的颜色。

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

GetUserFillColor()

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

颜色查询

setpenwidth(int penwidth)

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

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

showlabel(字符串标签名)

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

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

startcloudpath(puffWidth,puffHeight,噪声)

与startpath相似,不同之处在于它以云状弯曲段(粉扑)绘制路径。

参数:

  • float puffWidth(默认值= 30),两次抽吸之间的水平距离
  • float puffHeight(默认值= 15),两次抽吸之间的垂直距离
  • 浮动噪音(默认= 1.0),抽吸位置随机化

startpath()

开始定义路径的绘图命令序列。

strokepath()

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

笔记

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

    形状 主要
    {
               noShadow = true

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

               setpen(0,0,0,1);

               SetLineStyle “ solid” );

    

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

               //用于绘图的第一个。

               setpen(255,0,0,2);

               SetLineStyle “ dash” );

               通过MoveTo(0,0);

               lineTo(50,0);

    

               //此线型用于中间线段,但没有其他线型,因为它

               //不是第一个绘制的对象。

               setpen(0,255,0,1);

               SetLineStyle “ dot” );

               lineTo(100,0);

    

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

               setpen(0,0,0,1);

               SetLineStyle “ solid” );

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

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

        }

具有此Shape Script的Dependency连接器可能类似于:

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