基于ObjectARX和SQL Server的AutoCAD图形数据存储

2016-07-06 05:54辽宁建筑职业学院辽宁辽阳111000
电子测试 2016年12期
关键词:存储数据库

王 蕊(辽宁建筑职业学院,辽宁辽阳,111000)



基于ObjectARX和SQL Server的AutoCAD图形数据存储

王 蕊
(辽宁建筑职业学院,辽宁辽阳,111000)

摘要:本文介绍了基于ObjectARX和SQL Server进行AutoCAD图形数据存储设计和实现的过程,将数据库技术与AutoCAD软件技术进行了有效的集成,为AutoCAD的二次开发提供了一个全新的视角。

关键词:ObjectARX;SQL Server;AutoCAD;数据库;存储

0 引言

随着AutoCAD软件在各个领域应用的不断深入,对其进行二次开发,开发出适用实际工作需要的软件,提升AutoCAD基础软件的功能是非常必要的。

1 基于SQL Server数据库的AutoCAD图形数据存储的优势

1.1 提升工程预算中统计、汇总的计算能力

将AutoCAD中的图形数据文件转换成SQL Server 的数据库文件,利用SQL Server数据库强大的统计和汇总功能来提升AutoCAD在统计、汇总等工程预算中的计算能力。

1.2 缩短二次开发的周期

将转换后的AutoCAD图形数据文件作为模块,其具有应用广泛、通用性强、可移植性等特点,降低了二次开发难度,缩短了开发周期,节省了开发成本。

1.3 可以对图形数据进行批量修改

在AutoCAD绘制图形过程中,需要对图层、线性、块等属性进行修改,将AutoCAD中的图形数据文件转换成的数据库文件后,可以修改数据库文件中字段属性值从而对AutoCAD图形进行快速、精准、批量的修改。

1.4 保证数据的一致性,实现图纸的批量化管理

AutoCAD图纸中,如平面图、立面图、剖面图之间数据相互交叉、参照,可以利用SQL Server 提供的事假回滚、索引查找、用户验证等机制来确保数据的一致性,并实现图纸的批量管理。

2 系统开发工具

基于AutoCAD体系结构的开放性,采用ObjectARX[1]作为系统的开发工具,使用VC++平台建立AutoCAD图形数据库和SQL Server 数据库之间的关联,利用SQL Server 数据库的在数据处理方面的优势协助管理AutoCAD的图形数据。

2.1 ObjectARX

ObjectARX是AutoDesk公司针对AutoCAD平台上的二次开发而推出的一个开发软件包,提供了以C++为基础的面向对象的开发环境和应用程序接口。ObjectARX目前最新的版本是ObjectARX2015,其是目前最为高效的开发AutoCAD的工具。ObjectARX具有直接快速访问AutoCAD图形数据库、建立与AutoCAD编辑器的交互、使用MFC创建标准的图形用户界面,在其基类的基础上自定义类、可以和其他编程环境进行交互等强大功能。

2.2 开发环境

运用ObjectARX进行AutoCAD二次开发,必须首先设置好ObjectARX的开发环境。目前常用的开发环境是Microsoft Visual C++ 6.0 、Microsoft visual studio 2005、Microsoft visual studio 2008、Microsoft visual studio 2010。同时,还需要安装ObjectARX SDK。

3 AutoCAD 图形数据库

在利用ObjectARX进行AutoCAD二次开发前,必须要对图形数据库进行深入的了解,才能实现和SQL Server数据库之间的相互连接。

AutoCAD本质上是一个图形数据库管理程序,程序中记载着图形中所有对象的信息,包括图形对象和非图形对象。图形对象,如直线、矩形、椭圆等;非图形对象,如图层、标注、线性等;每个对象都有自己的属性、方法,每一个AutoCAD图就是这些对象的集合。

4 数据存储系统的设计

4.1 系统的功能性描述

1)系统进入前需要在弹出的登录窗口内输入数据库名、用户名、密码,输入正确才能连接用户建立的数据库,进入AutoCAD软件,进行图形绘制。

2)根据需要选择需要存储的图形,将该图形中的对象存储到其相应的SQL Server数据库表中。

3)根据需要从SQL Server数据库表中提取图形数据,重新绘制AutoCAD图形。

4)用户可以查询、修改、编辑、删除图形数据,系统要保证AutoCAD图形数据和SQL Server数据的一致性。

4.2 系统功能模块的划分及系统框架

根据系统的功能性分析,将系统划分成四个功能模块:系统登录模块、数据选取模块、存储转化模块、图形绘制模块。系统框架如图1所示。

图1 系统基本结构

4.3 SQL Server数据库结构的设计

4.3.1 概念模型的设计

概念模型设计主要是在SQL Server中建立与AutoCAD图形数据相对应的、合理表格及字段项、设置关键字、有效性规则、数据完整等。针对AutoCAD图形中每个对象都建立一个表格来存储从AutoCAD数据库中提取出来的数据。例如:分别建立存储圆、椭圆、图层等各个实体的表格,表格中根据实体的属性设置不同的字段。以直线为例,建立一个名为line-table的表格,表格中设置了14个字段,分别为 id、tuzhi_id 、startpoint_ X 、startpoint_Y、startpoint_Z 、endpoint_X、endpoint_ Y、endpoint_Z、color、linetype、linetype_scale 、visibility、layer、line_weight ,通过它们来存储直线的ID号、图纸的编号、直线的起始坐标、终点坐标、颜色、线型、线型比例、可见性、图层名、线宽属性值。同样的方式,设计其他实体所对应的表格。

4.3.2 逻辑模型的设计

逻辑模型设计是将实体以及实体之间的关系反映到数据表之间的关联上,可以用E-R图表现出来。

5 数据存储系统的实现

5.1 基本实体图形数据转化

AutoCAD图形是由若干基本实体图形组成,因此实现AutoCAD图形数据和数据库间的转化,就是基本实体之间的转化。进一步就是基本实体属性和存储实体的数据表中字段之间的转化。设计两类函数,一类是将基本实体的属性写入到数据库表中,另一类是从SQL Server数据库表中读取相关数据,调用ObjectARX中绘制基本实体的方法绘制出AutoCAD基本实体。

5.2 图块实体的转化

在图形的绘制过程中,会生成许多块,如建筑图纸中的窗块、门块,是由若干实体组成。在进行图块的存储时,利用迭代器,遍历AutoCAD图形检索出组成图块的若干实体,然后使用函数Explode()将其分解成若干个基本实体。利用基本实体转化的方法来进行图块实体的转化。

5.3 绘图模块的实现

5.3.1 创建AutoCAD不同的实体

将图形对象和非图形对象分成实体类,如:线型类实体、文本类实体、填充类实体、标注类实体,每一个类都有相应的成员、函数、属性。通过调用每一类自身成员函数从而生成不同类的实体对象,完成图形数据库的相关操作。

5.3.2 创建AutoCAD图形对象步骤如下:

(1)Ac Db Host Application Services()->workingDatabased()->getSymbolTable(,)

创建或打开图形数据库,并获取块表指针

(2)pBlocktable->getAt( , ,)pBlocktable->close()

获取当前块表指针,并关闭块表

(3)调用实体构造函数、其它成员函数完成实体的创建、属性设置和编辑;

(4)将appendAttribute()函数返回的ID号保存到AcDbObjectId类型变量中。

(5)pBlocktableRecord->appendAcDbEntity(,)添加记录。

(6)pBlocktableRecord->colse(),pLine->close()关闭块表记录和实体对象。

非图形对象的创建方法参照图形对象的创建方法。

5.3.3 AutoCAD 图形对象和非图形对象的关联

非图形对象表是对绘图环境进行设置的,要把图形对象和非图形对象进行关联才能最终绘制出需要的AutoCAD 图形。常用的图层表、文本样式、尺寸样式的关联方法不同。图层的关联通过setlayer()来实现的,关联文本样式通过setTextStyle(),通过预先定义好的函数来关联尺寸标注样式。

6 结束语

基于ObjectARX和SQL Server的AutoCAD图形数据库系统,是针对一般的AutoCAD图形数据的存储、管理问题,所以其具有通用性,可以将这一功能定义成一个模块,可以在其他的ObjectARX开发程序中直接调用,摆脱两种数据文件复杂的转化过程,具有实用性。

参考文献

[1]张帆 朱文俊AutoCAD ObjectARX(VC)开发基础与实例教程[M].中国电力出版社,2014.06

[2]董玉德,赵韩.CAD二次开发理论与技术[M].合肥:合肥工业大学出版社,2009.11

Auto CAD graphics data storage based on ObjectARX and Server SQ

Wang Rui
(LIAONING JIANZHU VOCATONAL UNIVERSITY,LiaoNing LiaoYang,111000)

Abstract:This paper introduces based on ObjectARX and SQL server of AutoCAD graphic data storage design and implementation process, the database and AutoCAD software techniques for effective integration, for the secondary development of AutoCAD provides a new perspective.

Keywords:ObjectARX;SQL Server;AutoCAD;database;storage

作者简介

王蕊(1980.9-),女,辽宁省辽阳市人,硕士,讲师,计算机科学与技术专业。

猜你喜欢
存储数据库
数据库
档案管理中电子文件的存储探究
云计算与虚拟化
数据库
数据库
数据库