1、用 Visual Basic 开发交互式 CAD 系统1内 容 提 要在交互式 CAD 系统中,不仅可以实现用鼠标绘图, 还可以选择图元,并对选中的图元进行缩放、缩小、等操作。在众多的交互式 CAD 开发工具中,Visual Basic 是使用最简单、应用最广泛、使用者最多的一种开发工具,Visual Basic 语言具备一定的绘图功能。本设计的主要内容是在学习 Visual Basic 语言和交互式 CAD 技术的基础上,运用 Visual Basic 语言来开发交互式 CAD 系统。本系统具有交互绘图功能。能实现鼠标绘图,能对图形进行各种形式的缩放操作。本文中的缩放主要包括图形的放大、缩小
2、和局部放大与全屏显示。关键词: Visual Basic 交互式 CAD 缩放用 Visual Basic 开发交互式 CAD 系统2A b s t r a c tIn interactive CAD system, not only may realize with the mouse cartography, but also may choose the chart Yuan, and to the chart Yuan which selects carries on the reproduce by pantograph, reduces, and so on the operati
3、on. In the multitudinous interactive CAD development kit, Visual Basic is the use simple, the application is most widespread, the user most one kind of development kit, Visual Basic language has the certain cartography function. This design main content is in studies Visual the Basic language and in
4、 the interactive CAD technology foundation, language develops the interactive CAD system using Visual Basic. This system has the alternately cartography function. Can realize the mouse cartography, can carry on each kind of form to the graph the reproduce by pantograph operation. In this article rep
5、roduce by pantograph mainly includes the graph the enlargement, reduces with the fractionated gain and the entire screen demonstration.Key words: Visual Basic interactive CAD zooming 用 Visual Basic 开发交互式 CAD 系统3目 录一、绪言 4 二、开发基础5(一) 交互式 CAD 简介 5 (二) Visual Basic 的简介 . 5三、系统分析6(一) 可行性研究 .6(二) 需求分析 6四、
6、系统总体设计8五、详细设计8(一)界面制作 .8(二)绘图 . 9(三)缩放 . 11六、用户手册16七、结束语 .17八、致谢 18九、参考文献19用 Visual Basic 开发交互式 CAD 系统4一、绪 言在众多的交互式 CAD 开发工具中,Visual Basic 是使用最简单、应用最广泛、使用者最多的一种开发工具。Visual Basic 功能强大是毫无疑问的,所以本文采用 Visual Basic 进行了交互式 CAD 系统的开发。本文结合 Visual Basic 语言介绍了交互式 CAD 系统的开发技术,剖析了构造系统的思路和技巧。本文的第一部分为开发基础部分,比较简单的介
7、绍了交互式 CAD 和 Visual Basic 语言。第二部分为系统定义时期部分,介绍了系统的可行性研究与系统的硬件需求。第三部分主要分为两部分:一个是总体设计部分,大略的介绍了所要开发的交互式 CAD 系统的主要组成部分。另一部分是详细设计部分,这也是本文的主要核心部分。详细的介绍了绘图及图形的缩放功能。第四是用户手册。 第五部分为后记部分。最后是第六部分参考文献。用 Visual Basic 开发交互式 CAD 系统5二、开发基础(一) 交互式 CAD 简介对大多数人来说交互式 CAD 技术是一个熟悉而又陌生的概念 。那么,什么是交互式 CAD 技术呢?简单得打个比方来说:用鼠标在屏幕上
8、画一条直线段,选种它时,会在端点处显示方形的手柄,移动手柄,可以改变直线段的方位和长度。由于采用这种技术绘图具有方便、直观、高效等特点,所以在各种专业软件,数据处理软件、AutoCAD、 SolidWork、Flash、Visio、PowerPoint、Word 等很多软件里面有着广泛的应用。交互式 CAD 技术比一般的计算机绘图技术要复杂一些。 在交互式 CAD 系统中, 不仅可以实现用鼠标绘图, 还可以选择图元,并对选中的图元进行缩放、缩小、等操作。交互式 CAD 技术是相对于一般技术而言的。交互设计的任务包括定位、定向、定量和移动等等。交互设计的目的在于尽可能地站在用户的角度考虑问题,解
9、决问题。交互式设计应该遵循的基本原则有以下七种:(1)尽量减少用户输入数据的工作量,尽可能提供缺省值。(2)容错功能要强。(3)数据输入方便,并提供与其他软件的数据交换接口。(4)比较完善的帮助系统,包括联机帮助、上下文帮助等。(5)操作过程记忆,包括恢复操作功能和重复操作功能。(6)绘图过程的可见性。利用橡皮线功能可以显示图元绘制的过程。(7)指令反馈速度快。如图元拾取时,系统必须比较快地做出反应;如果运算比较费时,则可以在一定精度内进行近似计算。交互式 CAD 技术不仅在办公软件如:Word 、PowerPoint 等软件中均有大量的应用而且在绘图软件如:AutoCAD、CoralDraw
10、 等大量使用了交互式 CAD技术。(二) Visual Basic 的简介Visual Basic 是一种功能非常强大的编程语言。一种在计算机技术发展史上应用得最为广泛的语言。自从 Basic 语言诞生以来,就一直以其简单易学性而闻名于世,因而受到了广大初学者的青睐。然而,由于它是非结构化的编程语言,而且速度慢、灵活性差,为此也受到了许多人的指责。很多人认为,Basic语言是一种游戏语言或数学语言,不能用来开发应用程序。随着 Visual Basic 系列开发环境的出现,这一现象已经成为过去。Visual Basic 保留了 Basic 早期的一些特性。Visual Basic 在原有的 BA
11、SIC 语言的基础上进一步发展,至今包含了数百条语句、函数及关键词,其中很多和 Windows GUI 有直接关系。在计算机领域,图形编程是一个很重要的内容。Visual Basic 作为一门功能强大的计算机语言,为用户提供了一系列的属性、方法和控件,利用它们,可以轻松地实现一般的图形绘制。所以对于一般的图形绘制任务而言,Visual Basic 是完全可以胜任的。用 Visual Basic 开发交互式 CAD 系统6三、系统分析(一) 可行性研究在问题定义阶段的结论进一步复查和确认之后,仔细分析了系统的处理过程,以后, 更进一步的了解到本系统应具体解决的问题。整个系统的流程是在用户的要求下
12、进行的,利用鼠标事件所绘制的图片显示出来。并以用户需求把它们随意放大或缩小。Windows 消息与 VB 事件的转换:VB 的模块化结构:(二)需求分析在需求分析的基本任务是准确地回答“系统必须做什么?”这个问题。这一阶段是对系统认识最为全面、准确、清晰、得体的一个比较关键的时期。需求分析的结果是系统开发的基础,也应该是用户基本上确定自己的最终要求阶段,为下一步的总体设计打好基础。一旦结束需求分析,整个系统的框架基本上就不应该改变了,它关系到整个系统的成败。.硬件运行要求:为了让交互式 CAD 系统能够正常运行,至少要具备以下的硬件要求具有 486 66MHz 处理器(或更高档处理器)的 IB
13、M PC 兼容机Windows 窗口程序事件对象消息Visual Basic 对象资源文件类模块 标准模块窗体代码窗体用 Visual Basic 开发交互式 CAD 系统7 一个鼠标 足够的硬盘空间,最好 2GB 的空间 16MB 内存 VGA 或更高分辨率的监视器软件运行要求: Windows98 操作系统或 Windows 2000 操作系统 Vb6.0 系统盘VB 系统的工作流程图:获得数据是退出吗 处理信息 启 动退 出 是否用 Visual Basic 开发交互式 CAD 系统8四、系统总体设计交互式 CAD 系统的总体设计设计交互式 CAD 系统首先应该具备一个控制系统的主控窗口
14、,就是交互式CAD 的界面。主控模块分绘图、编辑、缩放三个子模块。我做的系统虽说主要围绕缩放功能,但也是以绘图模块所绘制的图形来实现,所以也是系统中必不可少的部分。第一个子模块为绘图部分,主要有直线、多义线、圆、圆弧。第二个子模块为编辑部分。第三个子模块为图形的缩放部分,也是本系统所要重点设计的部分。所以在本论文当中主要围绕图元的放大、缩小、 局部放大、全屏显示这四个部分。图 3-1 系统的总体设计五、 详细设计(一)界面制作界面制作首先要想一想要设计一个什么样的界面,而且还要遵循很多原则。比如有美学方面的,也有习惯方面的。在总体设计原则的指导下,充分考虑细节问题 。(1)制作启动窗口实现交互
15、绘制图元,首先需要创建图形的界面,然后再窗体模块中添加事件代码。在创建界面之前我在设计里添加了启动窗口。制作启动窗口:单击工程菜单的添加窗体点击添加窗体中的展示屏幕。屏幕上的内容可以在属性窗口中修改。(2)菜单设计我的设计里主要有绘图、编辑、缩放等菜单。如总体设计中所示的这些菜单还有各自的子菜单。制作菜单首先在窗体中添加图片框,在工具栏中打开 “菜单编辑器” ,利用 “菜单编辑器”可以很方便的实现菜单的制作。绘图菜单包括:“直线” “多义线” “圆弧” “圆” ,它们的标题分别系 统 界 面局部放大 全屏显示编辑绘图 缩放缩小放大直线 多义线 圆弧 圆用 Visual Basic 开发交互式
16、CAD 系统9是“Line” “Polyline”“Circle”“Arc”和“Text” 。缩放菜单包括:“放大” “缩小” “局部放大” “全屏显示” , 它们的标题为“ZoomOut” “ ZoomIn” “LocalZoomOut”和“Extent” 。(3)工具栏的设计工具条不仅使程序界面更加美观,利用工具条上的工具按钮,还能提高工作效率。状态栏可以给出当前命令的状态、操作信息、提示和反馈信息,是计算机与用户交互的一个重要窗口。所以要先创建工具条和状态栏。创建工具条可以利用 VB 提供的 Toolbar 控件和 ImageList 控件,利用 Statusbar 控件可以创建状态栏。
17、在工具箱中单击 ImageList 控件,在窗体中添加控件 ImageList 打开属性页对话框。对话框有三个对象分别是通用,图像,颜色。在图像选项卡中,打开的对话框中选择图片的路径和名称,图片将会显示到图片栏中(就如图 3-2所示) 。 图 3-2 图像选项(4) 代码设计制作菜单,工具条,状态栏后,就给 VB-CAD 程序添加。首先给窗体添加ImageList 控件 ImageList1,添加 Toolbar 控件,用自定义属性的“属性页”对话框建立与 ImageList1 控件的联系。添加这些控件之后,添加控件的事件代码。系统运行后的界面如图 3-3 和图 3-4图 3-3 主界面 图
18、3-4 窗口模板(二)绘图代码设计用 Visual Basic 开发交互式 CAD 系统10图 3-5 “绘图”菜单绘图在 CAD 系统是必不可少的。我只做了直线、多义线、圆、圆弧四个选项。绘图离不开坐标系统。因为在 VB 中,只有缺省坐标和自定义坐标两个概念。其中,缺省坐标的原点在于窗口的左上角,横坐标向右为正; 纵坐标向下为正。交互式 CAD 系统可以实现用鼠标交互式地输入数据。采用面向对象的编程技术,需要首先创建一个图元系列类和一个命令系列类。定义绘图时的交互过程。定义好类以后,再定义类的属性及调用类的方法就可以进行交互绘图了。交互式鼠标的绘图行为,可以在屏幕上移动鼠标光标,并根据光标处
19、的坐标进行绘图。这样整个绘图过程就简单多了,而且也可以随用户的意愿来决定绘图的大小或长度等。用鼠标事件,单击鼠标左键时,开始绘图:Public Sub LeftButton(X As Single As Single);bolDraw=True单击鼠标右键时,取消绘图:Public Sub LeftButtonDown(X As Single,Y As Single);bolDraw=False(1)直线用 Line 方法绘制语法: Object.LineStep(x1,y1)Step(x2,y2),color,BF其中,object:(可选)对象表达式。如果 object 省略,具有焦点的窗
20、体作为object。Stept:(可选)是关键字,指定起点坐标,相对于 CuttentX 和 CurrentY 所提供的的当前图标坐标。x1,y1: (可选)Single,直线的起点坐标。ScaleMode 属性决定了使用的度量单位。如果省略,线起始于由 CurrentX 和 CurrentY 指定的位置。(2)多义线是由多条直线组成,所以与绘制直线是同一个道理。多义线用 Line 方法将多义线的各个顶点一次连线。(3)绘制圆形使用 Circle 函数。语法 :object.CircleStept(x,y),radius,color,start,end,aspect其中,object:(可选)对象表达式。如果 object 省略,具有焦点的窗体作为object。Stept:(可选)是关键字,指定圆的中心,相对于 object 的 CuttentX 和 CurrentY 所提供的坐标。x,y: (必须写)Single 圆的中心坐标。Object 的 ScaleMode 属性决定使用的度量单位。radius:(必须选)Single,圆的半径。Object 的 ScaleMode 属性决定使用的度量单位。Start,end:(可选)SingleAspect: (可选)Single,圆的纵横尺寸比。缺省值为 1.0(4)圆弧