1、Visio 绘图工具使用1.1 Visio 绘图初步1. Visio 的功能与特色Visio 软件的核心功能包含了智慧图元技术、智慧型绘图和开发式架构,它的最大特色就是“拖拽式绘图” ,这也是 Visio 与其他绘图软件的最大区别之处。用户只需用鼠标把相应的图件拖动到绘图页中,就能生成相应的图形,可以对图形进行各种编辑操作。通过对大量图件的组合,就能绘制出各种图形。说 Visio 功能强大,是由于它不但能绘制各种各样的专业图形,还可以绘制丰富的生活图形,无论是办公用户还是工程技术人员,都可以用它来绘制自己的图形,包括程序流程图、工艺流程图、企业机构图等等。Visio 提供的模板包括: Web
2、图表。 地图。 电气工程。 工艺工程。 机械工程。 建筑设计图。 框图。 灵感触发。 流程图。 软件。 数据库。 图表和图形。 网络。 项目日程。 业务进程。 组织结构图。图 3-1 显示了其中的“软件” 模板和“网络”模板。用户也可以根据自己的需要建立个性化的新模板。因此,Visio 的应用范围几乎是没有限制的。Visio 与 Microsoft 的 Office 系列软件等有着很好的整合性,同时,用户也可以轻松地利用局域网和 Internet 来分享他们的图表,沟通想法等。2. Visio 的安装Visio 的安装过程十分简单,并且不同版本的安装过程大同小异,其间需要输入作为产品密钥的产品
3、序列号。安装过程中,Visio 安装文件被复制到硬盘上,安装完成时删除这些文件,可以节省约 300M 的磁盘空间。但是,安装程序会建议保留它们,以有助于协助Visio 的维护和更新。(a) “软件”模板(b) “网络”模板图 3-1 Visio 的模板3. Visio 的文件类型Visio 文件共有 4 种类型,即绘图文件、模具文件、模板文件和工作环境文件。1) 绘图文件 (.vsd) :用于存储绘制的各种图形。 个绘图文件中可以有多个绘图页,它是 Visio 中最常用的文件。2) 模具文件 (.vss) :用来存放绘图过程中生成各种图形的“母体” ,即形状 (图件) 。Visio 自带了大量
4、对应于不同绘图场合的模具文件,给绘图带来了很大的方便。用户还可以根据自己的需要,生成自己的模具文件。3) 模板文件 (.vst) :同时存放了绘图文件和模具文件,并定义了相应的工作环境。Visio 自带了许多模板文件。用户可以利用 Visio 自带的或者自己生成的模具文件,对操作环境加以改造,进而生成自己的模板文件。4) 工作环境文件 (.vsw) :用户根据自己的需要将绘图文件与模具文件结合起来,定义最适合个人的工作环境,生成工作环境文件。该文件存储了绘图窗口、各组件的位置和排列方式等。在下次打开时,可以直接进入预设的工作环境。此外,Visio 还支持其他多种格式的文件,可以在 Visio
5、的打开或保存操作中使用这些文件类型。1.2 Visio 绘制工程图形除了做一般绘图操作外, Microsoft Visio 还具有很强的开发能力,可以通过开发 Visio解决方案来扩展 Visio 的应用。所谓解决方案就是通过组合 Visio 图形和程序来将现实世界模型化,以解决特定的绘图问题。软件的解决方案通常是将一个自定义的程序与一个或多个封装的软件应用程序组合起来。解决方案的开发人员不是从头开发功能,而是使用内置在封装产品中的现有功能。Visio 解决方案通常将一些图形 (由 Visio 提供的或为该解决方案开发的) 与一个模板组合起来,以创建一些使用这些图形的绘图。Visio 解决方案
6、还可以使用 Automation (自动操作) 来控制它的图形和绘图。Visio 解决方案中的自定义程序可以使用任意一种支持将Automation 作为客户的编程语言来编写,例如 Visual Basic for Applications (VBA) 、Visual Basic 或 C+等。 Visio 为方便 VBA 项目的开发提供了一个集成开发环境。1. 关于 Visio 解决方案Visio 解决方案通常包括主要图形的样板 (stencil) ,这些样板被称为“主图形” (master) ,用户可以将其拖放到绘图页面中,以创建一个绘图,而不必手工绘制任何内容。解决方案可能还包括一些特定图形
7、 (如标题框、徽标或框架等) 样板的模板 (template) ,以及一些预先定义绘图比例、绘图大小和用于打印的纸张大小等的模板,以提供给新的绘图中使用。程序 (无论是解决方案中 Visio 文档的 VBA 代码,还是 Visio 文档外的独立程序) 可以帮助创建绘图、分析绘图,或者在绘图和外部数据源之间传输信息。可以将 Visio 图形设计成可重用的组件,以便用户可以在不必使用绘图工具的情况下创建绘图。Visio 是一种用于建模的优秀工具,因为这些图形不仅可以形象地表示模型范围内的对象,而且它们被设计成为正确模型的开发方式。在一个设计良好的 Visio 解决方案中,图形与模型范围中的对象相对
8、应,创建绘图就是构造模型。图形行为可以确保正确的建模和正确的图形表示,并且使用户可以忽略具体的属性来创建具有可读性的示意图。2. 使用 Visio 图形创建解决方案Visio 提供了使开发人员可以很容易地访问其专业化图形功能的解决方案,并且提供了一些可以利用 ShapeSheet 窗口中的公式编程的图形。每个 Visio 图形都包括一类公式,以表示它的属性,例如它的宽度和高度等,以及像当用户双击它时图形的变化等这样的行为。因为 Visio 图形可以通过公式编程,所以可以将一些重要的数据 (如零件数量、名称、生产商等 ) 与表示设备的图形等关联起来。于是,图形就会变成一些功能强大的组件,它们在一
9、个大型解决方案中的独特行为完全是由所编写的公式提供的。(1) 将对象组合成绘图Visio 图形都是一些“参数性 ”的矢量集合图形,也就是说,Visio 图形可以根据具体的参数值 (有些是由 Visio 引擎定义的,有些则是由图形开发人员定义的) 来调整它的“几何形状”及其他属性。图形的几何形状随用户对该形状所做的操作,动态地计算公式而变化。可以通过组合一些智能对象来创建所需的绘图。在图 3-12 所示的螺栓图形中,螺栓长度、螺纹长度和螺栓直径都是一些由公式控制的参数。A 螺帽直径 B 螺栓长度 C 螺纹长度 D 螺栓直径 E 螺帽厚度图 3-12 Visio 图形是“参数性”的图形螺帽直径和螺
10、帽厚度都是通过这些参数计算得到的。在实际的物理范围内,这些参数彼此之间是相互独立的。用户可以通过拖动选择柄更改螺栓长度或螺栓直径,或者通过拖动控制柄更改螺纹长度,来设置这些参数。而程序可以使用生产商的可用尺寸数据库中的数值数据来设置这些参数。(2) 用图形表示组件就像一个程序中的过程会将功能封装起来,以使它们更易于使用和重用一样,Visio 会将绘图页面中的行为封装起来。可以将 Visio 图形看作是组件,其默认行为由 Visio 引擎提供,并且它独特的行为是由所编写的公式提供的。一个解决方案很少是由一个图形组成的,通常需要开发一套支持某种特定类型绘图的图形,然后在 Visio 样板中将这些图
11、形组合成主图形。在根据该主图形创建实例 (图形) 的样板中,主图形可以由一个图形组成,也可以由多个图形或一组图形组成。实例将从主图形那里继承很多特征。用户 (或程序 ) 可以将主图形从样板拖放到 Visio 绘图中。样板使自定义的图形更易于重用相同的图形可以被工程师用来模拟产品配置,被销售人员用来向顾客展示他们正在购买的产品,也可以被图形艺术家用来创作系列产品的目录等。当用户首次将一个主图形拖放到绘图页中时,Visio 将自动在该绘图页中创建一个主图形实例,并将该主图形的一个副本 (被称为“文档主图形”) 添加到绘图的文档样板中。将文档样板存储在绘图文件中可以带来两个主要的好处:1) 绘图是完
12、全自我包含的。一旦用户创建了绘图,就不再需要样板。2) 主图形的实例将从文档样板继承属性。用户可以编辑文档样板中的主图形,以更改绘图中该主图形所有实例的特征。因为一个主图形的每个实例都继承文档主图形的特征,所以实例可以支持大量复杂的行为,而同时保持相对较小的规模。可以通过更改文档主图形来将整体更改传递给实例。例如,图 3-13 所示的网络设备图形设计是与网络设备架对齐和联系在一起的,每个图形都与生产商提供的产品规格匹配,以便能够准确地放置它,而图形的设计者自定义了图形的对齐框,并添加了一些连接点,以使图形更易于使用。图 3-13 网络设备图形与设备架图形对齐和联系为了帮助用户使用主图形来创建绘
13、图,通常需要提供一个模板。模板可以提供绘图页中已经存在的图形,但更为重要的是,它可以设置绘图页,使它具有统一的网格和比例,并且可以包含指定的样式和层。模板还可以打开一个或多个样板。当用户在模板的基础上创建绘图时,Visio 将打开一些样板,并创建一个新的绘图文件,将模板的样式及其他属性复制到这个新文件中。就像使用样板一样,一旦用户创建了绘图,就不再需要这个模板。3. 使用 SmartShape 技术开发图形使用 Microsoft Visio 的 SmartShape 技术,可以来构建对于需要创建的各种绘图或图表有意义的特征模型。通过定义一些公式,使图形的行为符合应用于它们所对应的对象的设计规
14、则、代码或原则。每个 Visio 图形都有它自己的 ShapeSheet 表格,它定义了该图形独特的行为和功能。可以将 ShapeSheet 看作是图形的属性页,其中每个属性都是由一个随用户对该图形所做的操作动态变化的值或公式来设置的。可以在 ShapeSheet 窗口中查看和编辑图形的公式。希望通过外部编程获得的很多特性都可以通过 ShapeSheet 窗口来控制。例如,通过在ShapeSheet 窗口中定义用于某个图形的公式,可以将一些菜单项目添加到这个图形的快捷菜单中。这些公式可以控制图形的其他属性,例如:1) 几何形状 (翻转、旋转、显示或隐藏路径) 。2) 颜色、模式和线条的粗细。3
15、) 文本,包括字体、段落格式和方向等。4) 帮助用户调整图形的控制柄。5) 可以连接其他图形的连接点。6) 可以包含用户数据的自定义属性。表格形式的界面使它更易于使用单元格引用来将一个图形属性与另一个图形属性联系起来,这意味着图形属性可以以微妙和强大的方式彼此产生影响。例如,可以将一个图形 (如机械绘图中的一个零件) 的颜色与它的尺度联系在一起,以指出该零件是否在公差范围内。4. 在 Visio 解决方案中使用 Automation有些解决方案不仅仅需要图形、样板和模板。例如,可能需要根据每天都会变化的数据创建一些绘图,或者需要执行一些反复进行的常规图形开发任务等。通过在解决方案中使用 Aut
16、omation (自动操作) 来合并 Visio 引擎的功能 只需简单地使用它的对象,就可以自动执行这些任务。如果熟悉 VBA,那么可以继续使用对象诸如命令按钮、用户窗体、数据库和字段等控件。使用 Automation,也可以使用其他应用程序的对象。绘图、主图形、图形,甚至Visio 菜单和工具都可以成为程序的组件。程序可以在一个 Visio 实例中运行,也可以启动Visio 应用程序,然后访问它所需要的对象。Visio 包括 VBA,因此,不需要使用单独的开发环境来编写程序。但是,可以使用任意支持 Automation 的语言来编写控制 Visio 引擎的程序。5. 计划 Visio 解决方
17、案最简单的解决方案就是使用由 Visio 提供的内容,以及用户所创建的图形、样板和模板的标准化绘图。如果想为创建某种特定类型的绘图提供更多的帮助,那么可能会希望以VBA 代码、COM (component object model,组件对象模型 ) 加载项或 Visio 附件的形式,来为解决方案添加一些程序。如果所创建的绘图符合一组严格的规则,那么解决方案就可以包括一个使用来自其他数据源的数据生成用户可以修改的绘图的应用程序。如果解决方案不仅仅是为了提供绘图,那么它还将涉及到与外部数据库,甚至外部应用程序 (从市场上购买的或者内部开发的) 的集成问题。(1) 计划开发过程一位开发人员可能会经常
18、创建一个由自定义图形、模板及少量代码组成的简单的 Visio解决方案。但是,更周密的解决方案可能会需要一个开发小组,而每位小组成员都需要具备一定的技术。例如,一个小组可能是由下面的成员组成的:1) 一名系统设计师。他了解软件系统的设计过程,并且对 Visio 及其结构和常用功能也有很好的理解。系统设计师拥有自己的技术思想和 Visio 解决方案的设计方案。2) 多名图形开发人员。他们需要非常熟悉 Visio 的绘图工具和 ShapeSheet 窗口,需要具有扎实的数学和几何学知识,因为他们的大多数工作都会涉及到创建控制图形行为的公式方面的内容。3) 多名 Automation 开发人员。他们掌
19、握用来开发解决方案的编程语言 (VBA、Visual Basic 或 C+,这取决于解决方案需要的集成类型) 。Automation 开发人员需要对 Visio 图形和公式有一定的了解,并且需要非常熟悉 Visio 对象模型。4) 多名学术问题专家。他们具有广泛的知识背景,并且在解决方案所属的领域内具有一定的经验。他们需要向开发小组提供行业或公司标准、处理方法、实用性,以及规则的例外情况等方面的建议。一旦成立了开发小组,就可以为开发过程采用下述执行步骤:1) 拜访用户以了解他们的需求,并确定解决方案所属领域内的对象。在一个大型工程中,需要考虑文档管理方面的需求,以便其他用户和开发人员能够查阅这
20、些文档,以了解他们所需的内容。2) 逐步地开发解决方案,并且在每个阶段都要求用户介入,以获得反馈信息。3) 从开发图形并允许用户试用它们开始,然后根据用户的反馈信息来修改图形。4) 一旦用户对最初的图形设计感到满意,就可以开发用户需要用来构建绘图的所有助理程序或附件,并且,如果需要,还可以调整这些图形,以使它们能够更顺利地工作。5) 最后,如果解决方案的图形和附件需要与数据库或其他应用程序进行交互,那么需要在开发过程的早期准确地确定如何来实现这一点,以便可以相应地设计图形和附件。(2) 计划图形和样板可以通过构建所需要的图形,然后用公式实现尽可能多的图形功能,来开始开发解决方案。之所以从图形开
21、始主要有两个重要原因:1) 图形可以是智能的可以使用 Visio 图形本身固有的能力来处理多种必须通过编码才能实现的图形功能。2) 图形独立于控制它们的代码。一旦开发出解决方案将要使用的主图形,就可以更改这些图形,而不必重新编译代码,反之亦然。如果图形行为是可预测的,并且可以使用公式来实现 (例如,自动调整大小或缩放) ,那么可以使用 ShapeSheet 为图形设置它的行为。如果行为是在运行时动态变化的,例如,图形中的文本或绘图中的图形的排列方式都可能是变化的,那么可以在程序 (如文档的VBA 代码、ActiveX 控件、Visio 附件,或者 COM 加载项 ) 中处理这种行为。通过设置图
22、形公式,可以更准确地控制图形的外观和行为。如果可以创建一个主图形的样板来完成解决方案,那么用户可能就不再需要使用 Visio 绘图工具绘制些什么。当为程序构建主图形时,可以通过手工创建各种希望程序自动执行的绘图,在 Visio实例中测试这些主图形。这将会对需要编写的代码及需要提供的数据很有帮助。(3) 计划模板模板为用户提供了一个共用的工作区。通过使用户简单地从一些图形组中进行选择来创建标准化的绘图。模板可以包括一些样式,并且可以使用统一的网格和度量系统来设置绘图页面。模板可以设置其中已经包含图形的绘图页面,并且可以打开一个或多个样板,以使用户可以添加更多的图形。模板还可以通过包括 Activ
23、eX 控件 (如命令按钮和文本框等) 、执行特定任务的自定义控件,以及允许用户通过控件与绘图进行交互的 VBA 代码,来为绘图提供它们自己的用户界面。(4) 自动实现图形和模板当完成解决方案的主图形和模板的开发之后,就可以使用 Automation 来实现解决方案的其他内容。具体内容取决于解决方案要达到的目的,以及它所需要的运行环境。但是,通常可以使用 Automation 进行下面的操作:1) 实现解决方案的用户界面。大多数独立的程序都需要一个对话框或向导页面,来向用户提供操作建议,并提示程序执行所需要的信息。2) 存储和检索数据。图形可以具有自定义属性通过配置这些属性来提示用户输入数据或图
24、形属性,例如,当将一个主图形拖放到绘图页面中时。但是,为了保护数据类型及防止数据被无意中更改,可能希望解决方案将数据存储在一个外部数据库中,然后从这个外部数据库中检索数据。3)设置图形及其属性,或者连接图形。图形可以有一些公式,当程序移动或调整这些公式就好像在 Visio 绘图窗口中使用鼠标移动或调整图形本身一样,它们将会相应地做些调整。如果发现自己编写了大量操纵图形的复杂代码,那么回过头来,仔细地考虑一下,这些功能是否可以通过图形公式来处理。(5) 集成 Visio 解决方案和数据库集成 Visio 解决方案和数据库需要进行一些计划,以将绘图与数据库保持同步。决定将要使用哪个数据库、将要更改
25、哪些内容、如何更改,以及什么时候进行更改,是很重要的。(6) 实现 Automation 的不同方法所编写的程序类型取决于打算做些什么。可以在 Visio 文档或其他 Automation 控制器应用程序中编写 VBA 宏,也可以用 Visual Basic 或 C/C+ 编写独立的程序。可以为 COM加载项编写动态链接库 (DLL) ,也可以编写另一种与 Visio 一起运行的特殊类型的 DLL称为“Visio 库” (VSL) 。用户可以从 Windows 桌面或 Windows 资源管理器运行程序,也可以在 Visio 中通过选择添加到 Visio 菜单中的命令、选择添加到 Visio
26、工具栏中的按钮,甚至通过双击或右击绘图中的图形,来运行自己的程序。或者,还可以设计程序,使它能够在发生某个事件 (如打开文档或创建文档 ) 时自动运行。在 Visio 解决方案中实现 Automation 有 4 种基本的方法。可以实现下面这些内容:1) 独立的可执行 (EXE) 文件。这些文件通常使用 Visual Basic 或 C+ 编写,但是,它们也可以使用任意一种支持创建 ActiveX Automation 客户的语言来编写。2) Visio 库。它是具有规定 Visio 入口点和 .vsl 文件扩展名的标准的 Windows DLL。VSL 的速度比 EXE 文件的速度快许多,但
27、是它必须使用 C+来编写。3) VBA 宏。VBA 被包括在 Visio 产品中,它可以用来编写宏、创建对话框,或者创建类模块。其他 VBA 客户 (如 Word 和 Excel) 也可以用来控制 Visio。4) COM 加载项。它是专门被注册由 Visio 或其他 Office 应用程序加载的标准的Windows DLL。可以在 Microsoft Office Developer 中使用任意的 Office 应用程序来构建COM 加载项,也可以在 Visio 中使用 VBA 来构建 COM 加载项。另外,还可以使用 Visual Basic 或 C+来创建 COM 加载项。像 VSL 和
28、 VBA 宏一样, COM 加载项是在与 Visio 实例相同的进程中执行的,并且也很容易编写。5) 在 Visio 实例中使用 VBA 来加载和执行用其他语言创建的 Automation 服务器 (DLL 或 EXE 文件) 的混合方法。如果 Automation 服务器是被作为 DLL 创建的,并且支持广泛的结构范围,那么这种混合方法将支持进程内执行。但是,这种混合方法一般需要进行更谨慎的系统设计。有关开发 Microsoft Visio 解决方案的进一步知识,读者可参考开发 Microsoft Visio 解决方案一书 (美 Microsoft 公司著,北京:北京大学出版社,2002)
29、。1.3 实验内容 实验目的1) 了解开发 Visio 解决方案的基本概念。2) 学习应用 Visio 工具绘制程序框图、UML 模型图、网络图、机架图和网站图等图形,熟练 Visio 绘图操作。Visio 绘制图形步骤步骤 1:启动 Visio,进入“新建和打开文件 ”窗口步骤 2:在“选择绘图类型”栏所“类别”中单击选择图形相应的模板,生成新空白绘图页步骤 3:在模具中选择一个图件,将其拖放到绘图页上合适位置步骤 4:重复上述步骤,将模具中的各种图件拖入页面中,并排列;步骤 5:单击“常用工具栏”中“连接线”工具按钮或选用拖动模具中的“动态连接线”进行连接(可以选择“常用工具栏”中“指向工
30、具”取消连接状态) ,重复上述动作,完成所有流程的连接;步骤 6:用鼠标选择所有对象或按下 shift 键选取,在“格式”工具栏中“线型” “线端”、 “线条粗细”设置线条的线型、粗细和箭头;步骤 7:在一个图形上双击鼠标,进入文字编辑方式,输入文字,重复上述步骤,输入所有图形中的文字(连接线上的文字也可以双击鼠标输入) ,如果对文字字体、字号不满意可以现在图形后使用“格式”工具栏中“字体” 、 “字号”修改(一般使用 11 号字号) ;步骤 8:保存文件:学号姓名图形名称。用 Visio 绘制如下图一所示的结构化程序流程图在“选择绘图类型”栏所“类别”中单击选择“流程图” 、 “基本流程图”
31、模板开始abx 1fcjdeghix 6x 2x 3x 4x 5x 7x 8结束图一:结构化程序流程图用 Visio 绘制如下图二所示的 UML 模型图在“选择绘图类型”栏所“类别”中单击选择“软件” 、 “UML 模型图”模板,选择 UML序列R e g i f u n A p p l i c a t i c n L i s t p e r s o n L i s t A p p l i c a n tA p p l i c a t i o n A p p l i c a t i c n L i s tF i n d A p p l i c a r d ( )F i n d P e r s
32、c n ( )A p p l i c a n t ( )M a k e A p p l i c a t i o n ( )a d d P e r s o n ( )A p p l i c a t i o n ( )A p p l i c a t i o n ( )消息 1图二:UML 模型图用 Visio 绘制如下图三所示的基本网络实例图在“选择绘图类型”栏所“类别”中单击选择“网络” 、 “基本网络图”模板服务器台式 带有无线调制解调器的膝上型计算机支持 e b 的手机P D A访问供应商的数据图三:基本网络实例图用 Visio 绘制如下图四所示的详细网络实例图在“选择绘图类型”栏所“类别”
33、中单击选择“网络” 、 “详细网络图”模板1 0 . 1 . 5 0 . 0 以太网1 0 . 1 . 5 0 . 0 以太网1 0 . 1 . 1 6 . 0 以太网图四:详细网络实例图用 Visio 绘制业务流程图根据下图所示的某商场销售系统的业务,设计画出业务流程图在“选择绘图类型”栏所“类别”中单击选择“流程图” 、 “基本流程图”模板POS 售货流程营业员填写销售凭单一式两联顾客到收银台缴款收银员输入收银机资料正确 问题销售 正常程序交易,打印收银机小票 通知营业员 查核不属于人为错误收银员在小票上盖章,并保留一份 通知当值楼层主管 收银员将收银机小票及另一联小票给顾客 楼层主管用特定货号进行销售输入 顾客将票据交营业员 将交易保留于收银机中 核对 营业员保留小票,交顾客收银机发票 当日营业结束 第二天交易完成 电脑科打印“问题销售报表” 卖场部汇总填写之“问题销售单据”交审计科 审计科将“问题销售报表”与“问题销售登记单”进行核对无误 不符交电脑科 审计科与卖场核对至无误为止电脑科进行修正