基于矢量图形的工程图学教学课件制作系统

时间:2022-10-11 09:28:02

基于矢量图形的工程图学教学课件制作系统

摘要:利用AutoCAD为平台,开发了基于矢量图形的工程图学教学课件制作系统。与目前常用的制作软件相比较,具有图形显示精度高、制作容易等特点。系统采用可视化生成技术,使用该系统制作工程图学教学课件,只需利用系统提供的几个简单命令,以人机交互方式即可将DWG格式图形转化成矢量动画文件。

Abstract: Taking AutoCAD as an instrument, the paper developed a system for courseware of engineering graphics based on vectorgraph. Compared with others produce software in wide use, it has characteristics of high precision, easy to manufacture and so on. The system adopts a technique of videotext to develop courseware of engineering graphics. Only to make use of several simple orders, can the DWG be converted to vector cartoon.

关键词:工程图学;辅助教学;AutoCAD

Key words: engineering graphics;auxiliary teaching;AutoCAD

中图分类号:TP315 文献标识码:A 文章编号:1006-4311(2012)11-0150-02

0 引言

目前工程图学课件基本上采用较为普及的Powerpoint为开发环境。由于受其开发环境的限制,最终没能摆脱所开发的工程图学教学课件图形显示精度低、制作复杂等弊病。

通过对AutoCAD系统的研究,开发出了能够直接在AutoCAD环境下对矢量图形进行动态演示的图学课件开发系统。用AutoCAD开发矢量动画系统需要解决如下问题:①DWG图形信息的可视化提取。②动态绘制信息与图形数据的的处理与存储。③矢量图形的动态演示。

矢量动画包含:①动态画线(直线、圆、圆弧、文字)。②动态编辑(删除、复制、移动、旋转)。③动态显示(窗口缩放)。

1 矢量图形数据的可视化提取

在AutoCAD环境下实现动态演示矢量图形,包括动态画线(直线、圆弧)、动态移动实体、动态旋转实体、动态写文字等,需要将矢量图形的数据提取与动态演示方式保存在数据文件中。动态演示程序根据矢量图形数据及演示方式决定来对数据进行不同方式的处理。

AutoCAD中内嵌的AutoLISP语言可实现对DWG图形实体数据进行访问。主要由两个函数:(entsel)与(ssget),其中(entsel)用于选取单个实体,(ssget)用于选取多个实体。

1.1 动态画线数据提取 动态画线主要是以动画方式绘制直线、圆、圆弧及写文字。

使用下式:(setq ss(entget(car(entsel))))。

可以交互方式获取选择实体数据.其中组代码0对应的组值为实体类型,组代码8对应的组值为实体所在图层名,组代码10和组代码11对应的组值为直线实体的起点和终点坐标。对直线实体我们只要得到这些组代码值即可确定该直线。

对于圆、圆弧、文本实体的处理与直线类似。

通过上面得到的实体数据,只能确定实体的大小及位置,还需要进行矢量化处理,以便按指定方向动态画线。

对得到的实体数据矢量化处理后还需进行精简(减少无用的组),存储为数据文件。数据以表的形式保存在数据文件中。

直线数据的组代码10和11对应的组值是由交互方式绘制直线时的顺序确定的,需要将其转化为规定的矢量方向。约定:直线表示成矢量数据表为((10 x1 y1)(11x2 y2))。子表(10x1 y1)的x1 y1为直线起始点坐标。子表(11 x2 y2)的x2 y2为直线终止点坐标。在人机交互方式选择直线时,以选择靶区靠近的直线端点为起始点端。

圆弧表示成矢量数据表为((10 x y)(40 r)(50 ang1)(51 ang2))。子表(10 x y)的x y 为圆弧圆心坐标,子表(40 r)的r 为圆弧半径(>0为顺时针画圆弧,

圆表示成矢量数据表为((10 x y)((40 r)。子表(10 x y)的x y 为圆的圆心坐标,子表(40 r)的r 为圆半径(>0为顺时针画圆,

(entget(ssname(ssget)i))

可获得选择实体数据,其中i等于1-n,n为选择实体的总数量。动态编辑数据中,每一个实体数据占一行。其组成内容与动态画线实体数据相同。

2 数据矢量化处理与存储

获得的每一实体数据需要与演示类型代码保存在同一数据表中。数据表的格式为:()。

其中分题目代码与解答代码,题目代码为“TM”。在打开一题目时,同时显示该题目实体。解答代码由执行类型代码与执行方式代码组合而成,其中执行代码包括:”Q”静态画线、“D”动态画线、“E”删除、”C”动态复制、“M”动态移动、“R”动态旋转、“O”改变颜色、“P”动态移屏、“Z”动态窗口缩放。执行方式码包括:“S”暂停运行,“L”连续运行。例如:“DL”表示动态连续画线。

;为“LINE”、“CIRCLE”、“ARC”、“TEXT”、“PLINE”、“SOLID”、“LWPOLYLINE”等。

;实体所在图层。

;由不同实体类型所需要的最少参数表组成。

例如:直线实体表(“DS”(0. “LINE”) (8. “d1”) (10 79.5498 238.535 0.0)(11 266.752 238.535 0.0)中“DS”表示动态暂停画线,组代码0组值为实体类型直线,组代码8组值为图层名,组代码10组值为为直线起始点,组代码11组值为为直线终点。

圆实体表为(“DL” (0. “CIRCLE”) (8. “d2”) (3 3.14159)(10 141.794 92.6079 0.0)(40-43.0299)),组代码3组值为画圆起始点角度(弧度),组代码10组值为圆心坐标。组代码40组值为圆半径(>0逆时针画,

圆弧实体表(“DL” (0. “ARC”) (8. “d1”)(10 150.406 116.849 0.0)(40 80.7708)(50 0.730058) (51 2.50131),组代码10组值为图弧圆心坐标,组代码40组值为圆弧半径(>0逆时针画,

3 矢量图形的动态演示

动态演示包括:1动态画线,2动态编辑。

3.1 动态画线 AutoCAD是以“静态”方式绘制矢量图的,即当执行画直线线命令结束时,在屏幕上立即显示出整个直线实体。本研究结果是通过将直线段P1 P2分成n段(n由线长度确定),首先画出第一段实体P1 Pi(i=1),用循环函数(while)逐步更改(entmod)直线实体端点数据Pi(i=2…n),并用函数(redraw)逐步刷新的方法来实现“动态”画线。对同一台机器而言,n的大小与“动态”生成实体的精度及所用的时间有关,n越大显示精度越高,但生成的时间越长。

系统目前只能对直线、圆、圆弧、零宽度复线、文字实体实现动态绘制。

3.2 动态编辑 实体编辑包括:动态(静态)移动、动态(静态)复制、动态(静态)旋转、删除、改变颜色。实体编辑对象可以是单个实体或多个实体,在一个实体或多个实体数据表前由确定编辑类型;编辑类型代码由运行状态码与运行方式码确定,状态码“Q”为静态编辑,状态码“D”为动态编辑。运行方式码“L”为连续运行,“S”为暂停运行。

生成动画数据文件后,可以在编辑界面中选择“演示当前图形”命令,演示当前图形的动画。

4 结论

矢量图形的一个优点是容易实现对图形对象的移动、缩放等变化而且不损失精度。而且占用空间小。因此最适和制作平面几何、画法几何、工程制图等内容的课件。已用其制作了多门相关课程的教学课件。实际运行效果较好。

参考文献:

[1]康博创作室.AutoCAD 2000 Visual LISP实用教程 [M].北京:人民邮电出版社,1999.39-65.

[2]SONGZHENHui(宋振会).AutoCAD高级教程. [M].北京:清华大学出版社,2002.340-350.

[3]蓝小民.Seen Empolder Flat Roof of Vector Move Based DWG (基于DWG文件的可视化矢量动画开发平台)[J].Journal of FUSHUN petroleum Institute(抚顺石油学院学报)2002.4 66~68.

上一篇:关于互不相关两动点相对加速度问题的探讨 下一篇:对话式教育在信息检索教育中的运用