APP下载

基于数据库模式的图形开发与应用

2011-06-30李荣川

江苏船舶 2011年3期
关键词:明细表运算图形

陈 宁,李荣川,2

(1.江苏科技大学船舶与海洋工程学院,江苏 镇江 212003;2.92538部队,辽宁 大连 116041)

0 引言

在以AutoCAD为平台的工程制图过程中,图形的引用与图形信息统计是一项繁琐的工作。尽管其为此提供了块的解决图形引用的问题,但其操作不够简单快捷,而且不能实现将图形块保存到统一的图形数据库中,以方便其他工程人员的引用。而对于图形信息的统计,作为AutoCAD本身更是无法做到。可见,如何做到方便快速的生成图形、插入图形、统计图形信息成为提高绘图效率的关键所在。二次开发能够提高工作效率和减轻工作量,其开放式结构能满足不同专业的需要,来实现设计中的应用,达到改进和加强 AutoCAD功能的目的[1]。因此,在建立统一的图形数据库的基础上对AutoCAD进行二次开发成为了提高绘图效率的有效途径。通过VBA(Visual Basic For Application)可以用ActiveX技术对AutoCAD进行二次开发,且其与其他二次开发工具相比,VBA具有突出的优点:①应用程序运行速度快;②其编程语言和开发环境简单;③与Windows交互性好[2]。利用VBA与数据库相结合的模式对AutoCAD进行二次开发,不但可以方便地将具有属性的图形保存到统一的图形数据库下,而且可以实现方便快速地插入数据库中的图形,并且还能够将图形的操作记录及属性保存到记录数据库中。通过读取处理记录数据库中的信息,不仅可以达到实现对图形统计的目的,还能够结合一定的程序自动生成明细表。

1 系统结构设计

系统针对的是在AutoCAD平台下如何实现图形数据库的创建、图形的插入与记录及图框和明细表的自动生成3个功能。采用VBA与通用性较好的Microsoft Access工具进行联合开发,并在实物关系模型基础上建立数据库,并以相关关系运算为指导,采用ADO技术实现VBA与Microsoft Access数据库之间的通信,最终分别以3个VBA工程来实现要达到的3个功能,从而实现程序设计的要求。系统结构设计图如图1所示。

2 数据库关系模型建立与相关关系运算

基于集合理论,数据库系统的关系模型要以严格的数学概念为基础,具有严格的数学定义和完整的数学结构,还要能够进行查寻、插入、修改等工作。在实际的数据库操作过程中,常要用到关系代数运算,任何一种运算都是将一定的运算符作用到一定的运算对象上,得到预期的运算结果[3]。因此,要求AutoCAD图形数据库和绘图记录数据库关模型均在严格的数学概念的基础之上进行建立和在关系代数的指导下进行操作。

2.1 关系模型的建立

实物的关系结构是建立关系模型的依据基础。由于图形文件占用存储空间比较大,如果直接以二进制格式存放在数据库字段中,那么在频繁查询数据库表时,则必然会大大增加服务器内存的负担[4]。因此将图形文件的路径存入数据库可以有效降低数据库的占用空间,并提升数据库查寻数据的效率,所以图形数据库的实际关系结构为:

(名称,重量,材料,路径,备注)⊂图形块⊂图形文件⊂图形库 (1)

为了在程序中属性的提取和操作方便,将属性与图形分别存放,以属性中的路径来指定图形文件的位置。则属性数据库与图形库关系分为:

图1 系统结构设计图

由于路径与图形文件具有映射关系,则:

从属性数据库关系结构可以推导属性数据库的关系模式:属性数据库(名称,重量,材料,路径,备注),其中属性数据库为关系名,括号中的项目为属性,见表1。

表1 图形数据库的关系模型

同理,图形记录数据库的关系模型为:图形记录数据库(编号,名称,插入点X,插入点Y,插入点Z,旋转角,放大X,放大Y,放大Z,图层,材料,重量,备注),见表 2。

表2 图形记录数据库关系模型

2.2 数据库关系模型的关系运算

关系运算的方式包括传统的集合运算和专门的关系运算。在本系统中,对数据库中数据的操作集中于数据的读写与查找,因此,关系运算集中于专门的关系运算中的选择运算。在关系R中选择满足给定条件的元组,可以表示为σF(R),其中F表示选择条件,它是一个逻辑表达式,取逻辑值“真”或“假”[5]。如在表1中查名称为法兰的模型,则表达式为:

在系统设计过程中对表中的数据选择时应用此原理。

3 程序功能的实现及关键技术

在程序中,整个所应用的关键技术主要可以分为两个方面,一方面是如何实现VBA对AutoCAD的操作,另一方面如何实现VBA对Microsoft Access的操作。对于这两个方面的关键技术,在下面将结合VBA工程实现来进行阐述。

3.1 图形数据库创建工程的实现

从整个程序的设计图中可以看出,该工程的主要任务有两个,一是如何将图形块保存到图形库中,二是如何将属性值写入到属性数据库中。

图形数据库创建是利用VBA与AutoCAD和Microsoft Access的接口来实现的,其逻辑图如图2所示。

(1)首先分析图形块的保存。由于VBA与AutoCAD集成在一起,因此通过AutoCAD界面的界面菜单即可进入到Visual Basic编辑器,通过其提供的工具箱建立如图3所示窗口。

图2 图形数据创建逻辑图

图3 创建属性块窗体图

(2)其次分析图形属性与路径如何保存到数据库中。

采用ADO(ActiveX Data Object)技术可以实现VBA与Microsoft Access的通信。ADO同DAO或RDO相比较,在效率上更高,速度更快,并且编写应用程序更加简单,更加方便,比其他的数据访问接口更加全面[6]。但其使用前提条件是必须在VBA环境中引用“Microsoft ActiveX Data Objects 2.5 Library”。

以下是程序VBA与Microsoft Access数据库连接的实现代码。

通过运行以上代码便可以建立起VBA与 Microsoft Access数据库的连接。在此基础上可以通过下面的方法在数据库中增加行,实现数据库的写入操作。

3.2 图形的插入与记录工程的实现

从系统的设计图可以看出,本工程的技术难点在于以下三个方面:一是如何查找数据库中的数据;二是如何将未打开图形中的块插入到当前的工作空间;三是如何得到插入点的信息等属性并将其写入数据库中。首先建立如图4所示窗口。

(1)实现数据库存数据的查找首先要进行数据库的连接。从原理上讲,要实现数据的查找就要依照关系代数中专门的关系运算的选择公式

进行语句设计。例如,在表中1查找法兰的对应的路径,则程序的任务是,在数据表中查找法兰所对应的元组,当找到后,将该组中路径所对应的分量从数据库中读取出来。

在程序的部分关键代码为:

图4 图形块管理界面

以上代码执行条件是建立在VBA与Microsoft Access连接的基础之上的,它的功能是从数据库的第一行开始查找。如果在名称属性下查找到法兰具有相同名称的分量时,则将其路径属性在元组中对应的分量赋给path,然后退出,否则继续在下一个元组中进行查找。

(2)利用ObjectDBX技术可以实现在图形中插入其他已打开的图形中的图块。ObjectDBX包含了一系列动态链接库 (dll),通过它们可以建立包含在AutoCAD图形文件中的自定义对象,也可以使生成的应用程序在AutoCAD环境之外对DWG图形进行处理[7]。使用ObjectDBX技术之前同样要进行引用,其引用项为“AutoCAD/ObjectDBX Common16.0 Type Library”。在引用后便可以进行编程操作了。

(3)在VBA与Microsoft Access已经建立连接的基础上将属性值与插入点的信息写入到记录数据库中要相对容易,在与数据库已连接的基础上,其实现代码为:

其他属性值的写入同理。

3.3 图框与明细表的生成工程的实现

根据程序设计要求,在Visual Basic编辑器中编辑如图5所示窗口。在本工程中,本工程有两个重要的工作,一是在插入图框块后进行的绘制明细表线框添加文字,另一个是数据库中数据的计算,生成明细表。

图5 图框与明细表生成界面

(1)添加文字和线段相对简单,只要利用现有的VBA函数就可以达到,见表3。

表3 直线与文字增加函数

(2)生成明细表首先要读取记录数据库,获得图形所在的位置。为了操作方便可以将图形的名称与插入点信息复制到数组中,其实现关键代码为:

在数据信息被复制到数据库后,便可以通过数组的操作来进行排序、统计,结合属性数据库获得相应属性,再通过绘制线形与添加文字操作,便可生成明细表。其逻辑图如图6所示。程序运行效果如图7所示。

4 结语

(1)介绍了实现创建、引用数据库存方法,并成功应用于自动生成图框与明细表。

(2)实践发现,通过VBA与MicrosoftAccess联合开发AutoCAD可以降低绘制图形所需要的时间,而且在图形统计上准确性高,能够进一步提高工作效率。

图6 明细表生成逻辑图

图7 程序运行效果图

[1]吴业红.应用VBA技术进行AutoCAD二次开发[J].电脑知识与技术,2009,5(28):7950 -7951.

[2]吴海锋.Auto CAD VBA在工程制图中的应用[J].交通科技与经济,2009,(2):36 -38.

[3]郭晔,王浩鸣,张天宇.数据库技术与Access应用[M].北京:人民邮电出版社,2009.

[4]顾金凤,姚寿广,陈宁.产品数据管理中图档管理系统的设计与实现[J].华东船舶工学院学报(自然科学版),2004,18(1):91-94.

[5]王志梅,黄河.关系数据库基础与技术[M].北京:国防工业出版社,2005.

[6]乔美娥.ADO技术在VB系统开发中的高级应用[J].中国科技信息,2008,(24):84 -85.

[7]杨应平,张明文,肖述刚.ObjectDBX技术在桥梁CAD中的简化作用[J].中华建设,2007,(12):67 -68.

猜你喜欢

明细表运算图形
重视运算与推理,解决数列求和题
2019年中国出口石材明细表(三)
2019年中国出口石材明细表(二)
2019年中国出口量值石材明细表(一)
有趣的运算
“整式的乘法与因式分解”知识归纳
拨云去“误”学乘除运算
分图形
找图形
图形变变变