交互式CAD系统开发与实现论文.docx
- 文档编号:9382835
- 上传时间:2023-05-18
- 格式:DOCX
- 页数:59
- 大小:239.92KB
交互式CAD系统开发与实现论文.docx
《交互式CAD系统开发与实现论文.docx》由会员分享,可在线阅读,更多相关《交互式CAD系统开发与实现论文.docx(59页珍藏版)》请在冰点文库上搜索。
交互式CAD系统开发与实现论文
内容提要
在交互式CAD系统中,不仅可以实现用鼠标绘图,还可以选择图元,并对选中的图元进行缩放、缩小、等操作。
在众多的交互式CAD开发工具中,VisualBasic是使用最简单、应用最广泛、使用者最多的一种开发工具,VisualBasic语言具备一定的绘图功能。
本设计的主要内容是在学习VisualBasic语言和交互式CAD技术的基础上,运用VisualBasic语言来开发交互式CAD系统。
本系统具有交互绘图功能。
能实现鼠标绘图,能对图形进行各种形式的缩放操作。
本文中的缩放主要包括图形的放大、缩小和局部放大与全屏显示。
关键词:
VisualBasic交互式CAD缩放
Abstract
IninteractiveCADsystem,notonlymayrealizewiththemousecartography,butalsomaychoosethechartYuan,andtothechartYuanwhichselectscarriesonthereproducebypantograph,reduces,andsoontheoperation.InthemultitudinousinteractiveCADdevelopmentkit,VisualBasicistheusesimple,theapplicationismostwidespread,theusermostonekindofdevelopmentkit,VisualBasiclanguagehasthecertaincartographyfunction.ThisdesignmaincontentisinstudiesVisualtheBasiclanguageandintheinteractiveCADtechnologyfoundation,languagedevelopstheinteractiveCADsystemusingVisualBasic.Thissystemhasthealternatelycartographyfunction.Canrealizethemousecartography,cancarryoneachkindofformtothegraphthereproducebypantographoperation.Inthisarticlereproducebypantographmainlyincludesthegraphtheenlargement,reduceswiththefractionatedgainandtheentirescreendemonstration.
Keywords:
VisualBasicinteractiveCADzooming
一、绪言……………………………………………………………………………4
二、开发基础…………………………………………………………………………5
(一)交互式CAD简介…………………………………………………………5
(二)VisualBasic的简介…………………………………………………..5
三、系统分析…………………………………………………………………………6
(一)可行性研究……………………………………………………………….6
(二)需求分析…………………………………………………………………6
四、系统总体设计……………………………………………………………………8
jhjhjhjhj五、详细设计…………………………………………………………………………8
(一)界面制作…………………………………………………………………….8
(二)绘图…………..…………………………………………………………9
(三)缩放……..………………………………………………………………11
六、用户手册………………………………………………………………………16
七、结束语……………………………………………………………………….17
八、致谢…………………………………………………………………………18
九、参考文献………………………………………………………………………19
一、绪言
在众多的交互式CAD开发工具中,VisualBasic是使用最简单、应用最广泛、使用者最多的一种开发工具。
VisualBasic功能强大是毫无疑问的,所以本文采用VisualBasic进行了交互式CAD系统的开发。
本文结合VisualBasic语言介绍了交互式CAD系统的开发技术,剖析了构造系统的思路和技巧。
本文的第一部分为开发基础部分,比较简单的介绍了交互式CAD和VisualBasic语言。
第二部分为系统定义时期部分,介绍了系统的可行性研究与系统的硬件需求。
第三部分主要分为两部分:
一个是总体设计部分,大略的介绍了所要开发的交互式CAD系统的主要组成部分。
另一部分是详细设计部分,这也是本文的主要核心部分。
详细的介绍了绘图及图形的缩放功能。
第四是用户手册。
第五部分为后记部分。
最后是第六部分参考文献。
二、开发基础
(一)交互式CAD简介
对大多数人来说交互式CAD技术是一个熟悉而又陌生的概念。
那么,什么是交互式CAD技术呢?
简单得打个比方来说:
用鼠标在屏幕上画一条直线段,选种它时,会在端点处显示方形的手柄,移动手柄,可以改变直线段的方位和长度。
由于采用这种技术绘图具有方便、直观、高效等特点,所以在各种专业软件,数据处理软件、AutoCAD、SolidWork、Flash、Visio、PowerPoint、Word等很多软件里面有着广泛的应用。
交互式CAD技术比一般的计算机绘图技术要复杂一些。
在交互式CAD系统中,不仅可以实现用鼠标绘图,还可以选择图元,并对选中的图元进行缩放、缩小、等操作。
交互式CAD技术是相对于一般技术而言的。
交互设计的任务包括定位、定向、定量和移动等等。
交互设计的目的在于尽可能地站在用户的角度考虑问题,解决问题。
交互式设计应该遵循的基本原则有以下七种:
(1)尽量减少用户输入数据的工作量,尽可能提供缺省值。
(2)容错功能要强。
(3)数据输入方便,并提供与其他软件的数据交换接口。
(4)比较完善的帮助系统,包括联机帮助、上下文帮助等。
(5)操作过程记忆,包括恢复操作功能和重复操作功能。
(6)绘图过程的可见性。
利用橡皮线功能可以显示图元绘制的过程。
(7)指令反馈速度快。
如图元拾取时,系统必须比较快地做出反应;如果运算比较费时,则可以在一定精度内进行近似计算。
交互式CAD技术不仅在办公软件如:
Word、PowerPoint等软件中均有大量的应用而且在绘图软件如:
AutoCAD、CoralDraw等大量使用了交互式CAD技术。
(二)VisualBasic的简介
VisualBasic是一种功能非常强大的编程语言。
一种在计算机技术发展史上应用得最为广泛的语言。
自从Basic语言诞生以来,就一直以其简单易学性而闻名于世,因而受到了广大初学者的青睐。
然而,由于它是非结构化的编程语言,而且速度慢、灵活性差,为此也受到了许多人的指责。
很多人认为,Basic语言是一种游戏语言或数学语言,不能用来开发应用程序。
随着VisualBasic系列开发环境的出现,这一现象已经成为过去。
VisualBasic保留了Basic早期的一些特性。
VisualBasic在原有的BASIC语言的基础上进一步发展,至今包含了数百条语句、函数及关键词,其中很多和WindowsGUI有直接关系。
在计算机领域,图形编程是一个很重要的内容。
VisualBasic作为一门功能强大的计算机语言,为用户提供了一系列的属性、方法和控件,利用它们,可以轻松地实现一般的图形绘制。
所以对于一般的图形绘制任务而言,VisualBasic是完全可以胜任的。
三、系统分析
(一)可行性研究
在问题定义阶段的结论进一步复查和确认之后,仔细分析了系统的处理过程,以后,更进一步的了解到本系统应具体解决的问题。
整个系统的流程是在用户的要求下进行的,利用鼠标事件所绘制的图片显示出来。
并以用户需求把它们随意放大或缩小。
Windows消息与VB事件的转换:
VB的模块化结构:
(二)需求分析
在需求分析的基本任务是准确地回答“系统必须做什么?
”这个问题。
这一阶段是对系统认识最为全面、准确、清晰、得体的一个比较关键的时期。
需求分析的结果是系统开发的基础,也应该是用户基本上确定自己的最终要求阶段,为下一步的总体设计打好基础。
一旦结束需求分析,整个系统的框架基本上就不应该改变了,它关系到整个系统的成败。
.硬件运行要求:
为了让交互式CAD系统能够正常运行,至少要具备以下的硬件要求
◆具有48666MHz处理器(或更高档处理器)的IBMPC兼容机
◆一个鼠标
◆足够的硬盘空间,最好2GB的空间
◆16MB内存
◆VGA或更高分辨率的监视器
软件运行要求:
◆Windows98操作系统或Windows2000操作系统
◆Vb6.0系统盘
VB系统的工作流程图:
四、系统总体设计
交互式CAD系统的总体设计
设计交互式CAD系统首先应该具备一个控制系统的主控窗口,就是交互式CAD的界面。
主控模块分绘图、编辑、缩放三个子模块。
我做的系统虽说主要围绕缩放功能,但也是以绘图模块所绘制的图形来实现,所以也是系统中必不可少的部分。
第一个子模块为绘图部分,主要有直线、多义线、圆、圆弧。
第二个子模块为编辑部分。
第三个子模块为图形的缩放部分,也是本系统所要重点设计的部分。
所以在本论文当中主要围绕图元的放大、缩小、局部放大、全屏显示这四个部分。
图3-1系统的总体设计
五、详细设计
(一)界面制作
界面制作首先要想一想要设计一个什么样的界面,而且还要遵循很多原则。
比如有美学方面的,也有习惯方面的。
在总体设计原则的指导下,充分考虑细节问题。
(1)制作启动窗口
实现交互绘制图元,首先需要创建图形的界面,然后再窗体模块中添加事件代码。
在创建界面之前我在设计里添加了启动窗口。
制作启动窗口:
①单击工程菜单的添加窗体
②点击添加窗体中的展示屏幕。
屏幕上的内容可以在属性窗口中修改。
(2)菜单设计
我的设计里主要有绘图、编辑、缩放等菜单。
如总体设计中所示的这些菜单还有各自的子菜单。
制作菜单首先在窗体中添加图片框,在工具栏中打开“菜单编辑器”,利用“菜单编辑器”可以很方便的实现菜单的制作。
绘图菜单包括:
“直线”“多义线”“圆弧”“圆”,它们的标题分别是“Line”“Polyline”“Circle”“Arc”和“Text”。
缩放菜单包括:
“放大”“缩小”“局部放大”“全屏显示”,它们的标题为“ZoomOut”“ZoomIn”“LocalZoomOut”和“Extent”。
(3)工具栏的设计
工具条不仅使程序界面更加美观,利用工具条上的工具按钮,还能提高工作效率。
状态栏可以给出当前命令的状态、操作信息、提示和反馈信息,是计算机与用户交互的一个重要窗口。
所以要先创建工具条和状态栏。
创建工具条可以利用VB提供的Toolbar控件和ImageList控件,利用Statusbar控件可以创建状态栏。
在工具箱中单击ImageList控件,在窗体中添加控件ImageList打开属性页对话框。
对话框有三个对象分别是通用,图像,颜色。
在图像选项卡中,打开的对话框中选择图片的路径和名称,图片将会显示到图片栏中(就如图3-2所示)。
图3-2图像选项
(4)代码设计
制作菜单,工具条,状态栏后,就给VB-CAD程序添加。
首先给窗体添加ImageList控件ImageList1,添加Toolbar控件,用自定义属性的“属性页”对话框建立与ImageList1控件的联系。
添加这些控件之后,添加控件的事件代码。
系统运行后的界面如图3-3和图3-4
图3-3主界面图3-4窗口模板
(二)绘图代码设计
图3-5“绘图”菜单
绘图在CAD系统是必不可少的。
我只做了直线、多义线、圆、圆弧四个选项。
绘图离不开坐标系统。
因为在VB中,只有缺省坐标和自定义坐标两个概念。
其中,缺省坐标的原点在于窗口的左上角,横坐标向右为正;纵坐标向下为正。
交互式CAD系统可以实现用鼠标交互式地输入数据。
采用面向对象的编程技术,需要首先创建一个图元系列类和一个命令系列类。
定义绘图时的交互过程。
定义好类以后,再定义类的属性及调用类的方法就可以进行交互绘图了。
交互式鼠标的绘图行为,可以在屏幕上移动鼠标光标,并根据光标处的坐标进行绘图。
这样整个绘图过程就简单多了,而且也可以随用户的意愿来决定绘图的大小或长度等。
用鼠标事件,单击鼠标左键时,开始绘图:
PublicSubLeftButton(XAsSingleAsSingle);bolDraw=True
单击鼠标右键时,取消绘图:
PublicSubLeftButtonDown(XAsSingle,YAsSingle);bolDraw=False
(1)直线
用Line方法绘制
语法:
Object.Line[Step](x1,y1)[Step](x2,y2),[color],[B][F]
其中,object:
(可选)对象表达式。
如果object省略,具有焦点的窗体作为object。
Stept:
(可选)是关键字,指定起点坐标,相对于CuttentX和CurrentY所提供的的当前图标坐标。
x1,y1:
(可选)Single,直线的起点坐标。
ScaleMode属性决定了使用的度量单位。
如果省略,线起始于由CurrentX和CurrentY指定的位置。
(2)多义线
是由多条直线组成,所以与绘制直线是同一个道理。
多义线用Line方法将多义线的各个顶点一次连线。
(3)绘制圆形
使用Circle函数。
语法:
object.Circle[Stept](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:
(可选)Single
Aspect:
(可选)Single,圆的纵横尺寸比。
缺省值为1.0
(4)圆弧
绘圆弧比起绘圆要复杂一点,本系统采用圆心起点和终点绘制圆弧,除了需要知道圆心以外,还要知道圆弧的起点的终点的坐标。
语法:
object.Circle[Stept](x,y),radius,[color,start,end,aspect]
用Circle方法绘圆弧时,需要知道圆弧的起点和终点与圆心连接和X轴正向所成的角度。
圆弧的半径可以根据圆心与起点的距离得到。
Start和end分别指定弧的起点和终点相对于中心点的连线与X轴正向所成的角度,用弧度表示。
范围在-2*pi(π)到2*pi(π)之间,缺省时为0。
返回点pBegin到点pEnd的连线与X轴正向的夹角,用弧度表示。
`如果重点坐标大于、等于起点坐标。
并且终点坐标大于、等于起点坐标
IfpEnd.x>=pBegin.xAndpEnd.y>=pBegin.yThen
GetAngle=sita
`如果终点横坐标小于、等于起点横坐标,并且终点纵坐标大于、等于起点纵坐标
ElseIfpEnd.x<=pBegin.xAndpEnd.y>=pBegin.yThen
GetAngle=PI-sita
`如果终点横坐标小于、等于起点横坐标,并且终点纵坐标小于、等于起点纵坐标
ElseIfpEnd.x<=pBegin.xAndpEnd.y<=pBegin.yThen
GetAngle=PI+sita
`如果终点横坐标大于、等于起点横坐标,并且终点纵坐标小于、等于起点纵坐标
ElseIfpEnd.x〉=pBegin.xAndpEnd.y<=pBegin.yThen
GetAngle=2*PI-sita
……………
……………
……………
Endif
计算圆弧的起始点:
Angle1=GetAngle(m_pCenter,m_pBegin)
计算圆弧终止角:
Angle2=GetAngle(m_pCenter,m_pEnd)
(三)缩放代码设计
图3-6“缩放”菜单
在绘图和审图过程中,常常有对图形进行缩小或放大的要求。
实现各种方式的缩小和放大功能通过调节绘图环境的ScaleLeft,ScalaTop,ScaleWidth和ScaleHeight属性或者利用Scale方法可以实现图形画面的缩小、放大。
缩放菜单项中各项的标题为“ZoomOut”,“ZoomIn”,“LocalZoomOu”和“Extent”。
(1)全局缩放
通过放大或缩小Scale方法的参数来实现。
原理:
就是将视口矩形4个角点的坐标放大一定的倍数,视口内的图形将以相应的倍数缩小。
相反,将视口矩形4个角点的坐标缩小一定倍数,视口内的图形以相应的倍数放大。
全局图形缩小或放大都由改变坐标系统来实现。
`全局缩小图形
PrivateSubZoomIn_Click()
SLeft=sLeft*1.2`以120%的比例放大
sRight=sRight*1.2
sTopic=sTopic*.2
sBottom=sBottom*1.2
`修改坐标系统
CallCoordinate
EndSub
`全局放大图形
PrivateSubZoomOut_Click()
sLeft=sLeft*0.8`以80%的比例缩小
sRight=sRight*0.8
sTopic=sTopic*0.8
sBottom=sBottom*0.8`改变坐标系统
CallCoordinate
EndSub
上面两个过程中都要调用Coordinate过程,该过程利用坐标参数Scale方法修改坐标系统,并通过控制视口范围来实现图形的缩放操作。
Coordinate过程的代码:
PublicSubCoordinate()
`利用Scale方法修改坐标系统
DrawMain.picDraw.Scale(sLeft,sTopic)-(sRight,sBottom)
`更新绘图环境
DrawMain.picDraw.Refresh
EndSub
图3-7原始图形
图3-8全局放大和全局缩小结果
(2)局部放大
当希望更清楚地了解图形的某个细节部位时,可以采用局部放大技术,把包含该部位的一个矩形范围放大到整个绘图环境。
如图3-9所示,要把E点和G点确定的矩形放大到整个绘图环境,需要把E点与屏幕左上角A点对齐,然后按照一定比例放大图形,使矩形内的图形正好全部显示在视口内。
放大的比例包括X方向的比例和Y方向的比例,若不改变图元的形状,并且矩形EFGH内的所有图元能在矩形ABCD中显示,放大比例只能取X方向比例和Y方向比例中的小者。
ABAE`BF`
EF
‘
GH
CDCG`DH`
图3-9局部放大的原理图示
实现局部放大先选取用户所要放大的部分,那么这个部分就用矩形来选取,用Line方法绘矩形;而且无论放大或缩小都要计算新坐标系与逻辑坐标系的缩放比例因子;然后重新设置视口范围之后,就是局部放大的效果了;创建CviewLocalZoomOut类,并添加一些相关的代码。
然后像处理前面各绘图类一样,在窗体模块中添加相对应的鼠标事件处理代码。
在该类中主要实现选取局部放大的功能。
选取行为在移动鼠标的过程中产生,放大行为在鼠标左键第二次击下的那一时刻才产生。
就像图3-10和3-11所示
图3-10用矩形窗口选择所要放大的局部范围
图3-11局部放大的效果
(3)全屏显示
全屏显示是要在绘图环境中刚好显示所有图元。
实际上,它是局部放大的一个特例。
就如图(3-12)所示,把矩形EFGH中的图形元素正好全部显示在ABCD矩形区域中。
所有图元的包围矩形可以通过比较所有图元各自的包围矩形得到。
所有图元包围矩形对角定点的最小横坐标和最小纵坐标可以确定一个点,最大横坐标和最大纵坐标可以确定另一个点,由两点所确定的矩形就是要求的包围矩形。
图3-12显示全图的原理
图3-13原图图3-14全屏显示的结果
六、用户手册
运行系统,会出现一个界面就如下面所示的图---用户界面。
分别有菜单栏、工具栏、状态栏就是显示窗口。
那么这个系统应该如何使用?
首先在执行缩放功能之前,要在窗口中利用四个绘图工具中四个工具按钮任意绘制几个图。
本系统用的是交互式的绘图技术,所以在窗体中用鼠标绘制图形。
而且其他功能都使用的是鼠标事件,所以直接用鼠标点击所需要的工具来执行其功能。
若要使用放大工具,就直接点击工具栏中的放大工具按钮。
并在窗口中点击,就会把已绘制好的图形放大。
缩小工具的使用和放大工具一致。
全屏显示的原理虽然和局部放大原理差不多,但是使用方法和放大、缩小是一样的。
使用局部放大工具,就在用户想要放大的部位拖动鼠标就会出现矩形,第二次单击鼠标就执行它的功能了。
其中矩形里面的部分就是用户所要放大的部分。
七、结束语
经过大概三个月的时间,我的毕业设计终于完成了。
回顾整个设计过程,不论是定义时期还是开发时期都尝到了不少的酸甜苦辣。
在这次设计中明显感觉到自己的实践经验不足,因此很多方面都有不足与不便之处,而且遇到问题总是不能得心应手的解决。
在设计本系统时,因为本人的知识、技术水平有限,在好多地方都有不足和不便之处敬请您多指教。
通过这次设计,我还发现查阅资料的重要性。
由于我是VB的新手,所以应用起来不是很顺当,这样,大量的书籍资料给了我很大的帮助。
而且每一位出书的作者对语言的人士都有各自不同的角度,所以即使是同一水平的书也会有不同的收获。
鉴于此我觉得要学好一门语言,就要做到多查、多看、多练、多用。
取人之长,补己之短。
这样才能少走弯路。
另外,平时就养成良好的学习习惯也是非常重要的。
遇到什么自认为比较有价值的东西就应及时地记下来,以免以后遇到同样的问题挠头。
总之,一次毕业设计,我的受益匪浅。
不论从理论上,技术上还是从经验方法上都使自己有了一定的升华,这在我今后的工作中无不是最宝贵的财富。
八、致谢
在本次毕业设计中,我从指导老师徐善针老师身上学到了很多东西。
徐老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益非浅。
他无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高,这对于我以后的工作和学习都有一种巨大的帮助,感谢
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交互式 CAD 系统 开发 实现 论文