预订演示
前页 后页

编写脚本

要为元素或连接器创建替代表示,您可以编写一个定义表示的大小、形状、方向和颜色的形状形状脚本。 A形状脚本包含许多用于定义形状不同方面的部分;对于一个元素,这些包括:

  • 主要object
  • 标签
  • 装饰(例如,一个 Document元素可能包含一个描述文档的图标)
对于连接器,这些部分包括:
  • 主要object
  • 形状源
  • 形状目标
  • 标签
形状脚本在使用默认 ( UML ) 表示的基础上运行,除非脚本包含替代定义。那是:
  • 如果你有一个只包含一个装饰的形状脚本,这个装饰会被添加到正常绘制的object之上
  • 如果你有一个空的形状例程,它会覆盖默认值;因此,空白的“形状标签”会阻止为具有它们的元素创建正常的浮动文本标签
你也可以使用 C 风格的注释来注释你的脚本;例如:

// C 风格单行注释

/* 多行

支持评论 */

脚本不区分大小写:“形状”与“形状”相同。

脚本结构

布局

描述

也见

示例元素布局脚本

主要形状

{

// 绘制object

}

形状标签

{

// 绘制浮动文本标签

}

装饰 <标识符>

{

// 在object内部绘制一个 16x16 的装饰

}

< 标识符 > string是一个字母数字单词。

连接器示例布局脚本

主要形状

{

// 划清界线

}

形状目标

{

// 在目标端绘制形状

}

形状源

{

// 在源端绘制形状

}

标签 <位置标签>

{

// 定义标签的文本

}

<positionLabel> string可以是以下任何一种:

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

子形状

形状可以A子形状,子形状必须在主形状脚本之后声明,但从方法命令中调用。

这是声明排序的示例:

主要形状

{

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

noshadow = "真";

h_align = "中心";

//绘图命令(方法)

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

println ("foo bar");

// 调用子形状

addsubshape ("红色", 20, 70);

// 子形状的定义

形状红色

{

setfillcolor (200,50,100);

矩形(50,50,100,100);

}

}

//标签的定义

形状标签

{

setOrigin ("SW",0,0);

println("物件:#NAME#");

}

//装饰的定义

装饰三角形

{

//划一个三角形装饰

开始路径();

移动到(0,30);

线托(50,100);

lineto (100,0);

结束路径();

设置填充颜色(153,204,255);

fillandstrokepath();

}

此脚本产生的形状是:

An example of a shape script applied to an Object element.

绘图方法

申报顺序

形状可以由属性声明、方法/命令调用和子形状定义组成,它们必须按该顺序出现;也就是说,属性声明必须出现在所有方法调用之前,子形状定义必须出现在最后。

形状属性 子形状 绘图方法

了解更多