APP下载

基于VC++及SQL 的机械产品管理系统的研发

2013-09-13马希青刘丹丹

机电产品开发与创新 2013年4期
关键词:预览控件图纸

马希青,刘丹丹,李 扬

(河北工程大学 机电工程学院,河北 邯郸 056038)

0 引言

机械产品有着不计其数的工程图纸和三维实体模型,涵盖的信息量非常庞大。因此,机械产品三维模型与图纸的管理成为信息管理系统中的难点和瓶颈。机械产品管理系统的设计完成解决了大量三维模型及图纸的统计、存储、继承等管理工作,且提供了一种智能查询的环境,让用户能快速查找到所需要的相关机械产品的技术资料。

ActiveX 控件是基于COM 技术提出的在网络环境中进行交互的技术集。机械产品管理系统的程序开发过程引用了主流绘图软件中的部分ActiveX 控件,使得本管理系统在未安装任何绘图软件的情况下即可实现对产品图档文件的预览。

1 系统总体设计

1.1 系统的总体结构设计

在系统的开发初期,经过对机械设计人员的软件需求调查分析,确定了系统要实现的基本功能,和系统的基本结构,设置了用户安全认证和权限管理功能模块。因此本系统包含用户登陆子系统、2D 图纸信息子系统、3D模型信息子系统,查询子系统等,其总体结构如图1所示。

图1 机械产品管理系统总体结构Figs 1 The general structure of the management system for mechanical product

1.2 系统的数据结构设计

本系统以Microsoft SQL Server 2005为数据库平台,建立了一名为sheji的关系型数据库,并且以此为本机械产品管理系统的服务器。作为服务器,本管理系统的动态数据会实时的更新到sheji的数据库中。为了帮助用户登陆系统,在该数据库中建有Login 数据表,利用username、 pwd(password)、 power 等属性来判断用户的使用权限及其合法性。另外还建有chanpin2D、chanpin3D等数据表,以记录产品模型及其图纸的基本信息,涵盖了模型(图纸)编号、模型(图纸)名称、模型(图纸)设计者、录入人员、录入日期、存储路径、模型(图纸)描述等关键的数据属性,并且把模型(图纸)名称设置为每张数据表的主键值。

2 数据存储机理

对于数据库中图纸及模型文件的存储,在SQL Server 图像存储机制中,对于小于8000 字节的图像数据可以用二进制表示。而机械产品图形一般都会大于8000字节,所以SQL Server 提供了另一种机制,能存储每行达到2GB的二进制对象(BLOB),可包括image、text 和ntext 三种数据类型。 在SQLServer 系统中,BLOB 数据的存储方法与普通的数据存储不同,它需要系统开辟新的存储页面,在数据字段中仅存放一个指针,使该指针指向存有该记录的BLOB 页面即可。VC++6.0的ADO Field 对象提供了GetChunk方法和AppendChunk 方法来存取BLOB 数据。其中, GetChunk 方法用于检索部分或全部数据,将返回的数据赋给 “变量”。 如果字段为空,则返回Null;如果 Size 大于剩余的数据,则返回剩余的数据而无需用空白填充 “变量”;而每个后续的 GetChunk 调用将从前一次 的停止处开始检索数据。在它从一个字段检索数据时,只有在它离开该字段所在的记录时,ADO 即认为检索数据有效;如果在上述字段上再次使用GetChunk 方法,ADO 将把它解释为新的 GetChunk 操作,并从记录的起始处开始读取。调用AppendChunk 方法是将数据写入,覆盖现有的数据,随后用 AppendChunk 方法则将写入数据添加到现有数据里。由于系统内存可利用率有限,因而一次读(存)取大量数据会引起服务器、客户机不运转或是服务器的性能大大下降,因此本文只对文件路径进行存储,通过相关函数对数据库中路径字符串的截取、串并及比对等运算实现对数据文件的存储及读取。这样将大大节省了系统资源,同时也避免了存取图像时容易出现的未知错误。

3 系统的程序设计

3.1 用户登录界面设计

为了保护系统及其内部数据的安全性,必须对登陆用户的合法身份进行认证。因此,在系统运行伊始,需要为用户提供登录界面,由用户输入用户名及密码,经系统通过验证后才能打开系统的主界面。实现此功能的代码(略)。

3.2 系统的功能设计

根据登陆界面中的用户名及密码决定了该用户的使用权限。在本系统中,设计了管理员和普通用户两个权限等级。其中,管理员依据自己的管理权限,不仅可对三维模型、二维图纸等数据进行查询和浏览,还可以对上述信息进行添加、删除、修改、数据库的还原与备份等各种操作;而普通用户根据自己的管理权限只能对上述信息进行浏览和查询、不能从事其他操作。

在如图2所示的界面中,可直接利用标签对数据库的资料进行浏览及产品查询,也可在菜单栏中打开查询目录分别对2D 图纸、3D模型进行分项查询。

图2 系统2D 图纸产品浏览界面Figs.2 The browsing interface of 2D drawing product

图3 2D 图纸产品查询界面Fig.3 The query interface of 2D drawing product

在图3所示的查询界面中,选择要查询的项目和查询条件,输入要查询资料的信息进行查询,结果将显现在下图的列表框中。选中列表框中的任意结果点击预览按钮,将能够查看选中的图像文件。

4 数据库连接的实现

在系统框架与数据库初步建立之后,还需要将其连接起来才能对数据库中的数据进行处理。在VC++中,数据库的连接方式有多种,如ADO、ODBC 等。ODBC主要应用于文档视图类程序,不适合对话框类的使用,且使用前须在数据源中进行注册;而ADO 不需要注册数据源即可直接供VC++6.0 使用。本文采用了后者实现了与数据库的连接。因为ADO 仅用三个主要对象Connection、Command、Recordset 和几个辅助对象便可轻松实现对数据库的便捷操作;与ODBC 相比,ADO 方法可以对某Connection 数据源下的多个Recordset 实例进行批量处理和更新,大大减轻网络负担和提高数据库处理效率。本系统中关于数据库连接的功能代码(略)。

5 图纸预览的实现

为了提高数据查询的准确性,本管理系统中采用了AutoCAD 中ActiveX 控件实现了对数据查询结果的快速预览功能。应用控件进行预览可使编写应用程序更加方便简洁;与编写代码相比,封装后的控件是准确的、通用的。

(1)注册控件。在开发管理系统之前,如果计算机中已安装了CAD 软件,则无需注册控件,VC++6.0 可直接把控件中引入应用到系统中;否则,就必须进行注册以VC++6.0 使用。其注册方法是:复制DWGThumbnail.ocx到C:盘的系统文件夹下,打开开始程序选择运行,在文本框中输入regsvr32 DWGThumbnail.ocx,点击确定即注册成功。这样,即使在未安装AutoCAD 程序的情况下也可预览dwg 格式的图形文件。

(2)添加控件。打开VC++6.0的工具箱中右击,然后选择 “选择项目......”,切换到 “COM组件” 选项卡, 浏览选择DWGThumbnail.ocx。至此,控件会出现在程序的工具栏中供设计程序使用。

6 结论

机械产品管理系统运用数据库及ActiveX 技术,实现了对机电产品三维模型及二维图纸的计算机辅助管理,这将进一步加强企事业单位对于产品模型及图档资料的科学化管理,提高工程技术资料的管理效率、避免不必要的信息丢失或泄露,提高了数据管理的安全性和保密性,因此具有重要的实际意义。

[1]续爱民,等.船舶企业电子图档管理系统研究[J].上海造船,2010,4.

[2]裴良东,张建毅.南阳站图纸档案信息网络管理系统设计[J].电力系统通信,2010,211.

猜你喜欢

预览控件图纸
新品预览
浅谈汽车线束产品图纸管理
看图纸
关于.net控件数组的探讨
11月在拍电视剧预览表
ASP.NET服务器端验证控件的使用
bauma China 2014展前预览
酒店室内装修图纸深化设计浅析
基于嵌入式MINIGUI控件子类化技术的深入研究与应用
Spreadsheet控件在Delphi数据库系统中的编程与应用