摘 要 :本文介绍用VB.、SQL server开发cad图库系统.文章重点介绍用VB.进行Autocad的二次开发,主要涉及DWG图中缩略图的提取,从服务器的数据库中下载数据并作为图块插入cad图中.
关 键 词 :VB.;Autocad;SQL server;图库
中图分类号:TP391.省略,SQL Server
Li Guijian
(Liuzhou Architecture Design Institute of Science and Technology,Liuzhou545001,China)
Abstract:This paper describes the development of a cad library system using VB.,SQL server.省略 to the secondary development of Autocad,mainly related to the extraction of the DWG Figure thumbnail to download data from the database server and inserted as a block cad figure.省略,Autocad,SQL server,Gallery
一、前言
长期应用Autocad进行设计工作的设计人员都保存有一些cad模板和一些常用的样图.本系统目的就是把所有设计人员手中的资源和一些常用的标准图整合起来,存放到服务器上,方便设计人员在用cad作图时查阅和将有用的图插入工作图中.
Autocad从2005版本以后增加对VB.省略有良好的开发环境及众多的使用者,本系统利用SQL server存放图样资源,应用VB.省略.
(二)系统工作图
管理员利用图库管理程序,将通过审查的图样上传到数据库并定期维护,设计人员通过嵌入Autocad2006中的扩展应用程序浏览图库,选中合用的图样插入dwg工作图中.
三、数据库表和管理系统设计
(一)数据库设计
数据库采用SQL Server 2005,安装在操作系统为2003的服务哭上,系统数据库包含两个表,一个表是存放图库资源,另一个表是存放管理人员、使用人员的名单和登陆.
1.1图库资源表结构
列名 类型
ID Int
名称 Nvarvhar(16)
大样图 Image
缩略图 Image
上级节点ID Int
1.2用户帐户表结构
列名 类型
用户名 Nvarchar(16)
登录 Nvarchar(16)
权限 Beloon
四、图库管理程序设计
图库管理程序用于图库系统的管理.流程图如下:
程序设计中有两个关键点:从dwg格式的图中提取缩略图并转为bmp格式和将缩略图及dwg格式的图形上传至数据库,详细代码如下:
Private Sub Send_dwg(ByVal filename As String , ByVal name As String)
‘filename为带路径dwg文件名, name为要存放在数据库中的名称
Dim f_stream As FileStream ‘获取dwg图的数据流
f_stream 等于 New FileStream(filename, FileMode.Open, FileAccess.Read)
Dim f_byte(f_stream.Length) As Byte
f_stream.Read(f_byte, 0, f_byte.Length)‘将数据流读入数组f_byte
f_stream.Close()
Dim fs As MemoryStream
fs 等于 dwg_preview(filename) ‘获取缩略图的内存文件流
Dim f_b(fs.Length) As Byte
fs.Position 等于 0
fs.Read(f_b, 0, fs.Length) ‘将内存文件流读入数组
fs.Flush()
fs.Close()
Dim _string As String
Dim cm_text As String
_string 等于 “Data Source等于tk,Initial Catalog等于dwg,Persist Security Info等于True,User_ ID等于sa,Password等于123456” ‘连接数据库的字符串
cm_text 等于 “insert into dwg图库(名称,缩略图,图,类别) values(@wjm,@slt,@tu,’建筑’)”
‘将数据插入数据库的表中的字符串
Dim As New SqlConnection
.ConnectionString 等于 _string
Dim cm As New SqlCommand
cm.Connection 等于
cm.CommandText 等于 cm_text
cm.Parameters.Add(“wjm”, SqlDbType.Char)
cm.Parameters.Add(“slt”, SqlDbType.Image)
cm.Parameters.Add(“tu”, SqlDbType.Image)
.Open()‘打开连接,存入数据
cm.Parameters(0).Value 等于 name
cm.Parameters(1).Value 等于 f_b
cm.Parameters(2).Value 等于 f_byte
.省略作为程序设计语言.
(二)流程图
(三)选择插入dwg图的对话框
(四)程序设计要点
新建“库类”项目,在引用中添加“cadbmgd.dll”和“acmgd.dll”两个文件,这两个文件位于Autocad的安装目录下,在编写代码时还要导入Autodesk.AutoCAD开头的命名空间.
六、安装程序的设计
应用程序扩展(*.dll)设计好后,还要设计一个安装程序.安装程序的作用是把应用程序扩展(*.dll)拷贝到客户机上,并修改注册表使得用户启动AutoCAD时自动加载应用程序扩展(*.dll).这样只要在AutoCAD的命令行中输入一个命令,即可启动图库应用系统.
程序设计的要点是在注册表中添加相关的内容,这就涉及注册表的读写.这里采用.NET框架的Microsoft.省略 编写,利用Autocad作为平台,利用已有的服务器,开发出设计适合我院设计人员使用CAD图库系统.本系统已在本院实施应用,极大的方便广大设计人员,为提高设计人员的画图速度起到较大作用.