当前位置:首页 期刊杂志

基于SQL Server和AutoCAD的日照分析模型管理系统

时间:2024-07-28

崔孝伟,张九宴

(青岛市勘察测绘研究院,山东 青岛 266000)

基于SQL Server和AutoCAD的日照分析模型管理系统

崔孝伟*,张九宴

(青岛市勘察测绘研究院,山东 青岛 266000)

日照分析是城市勘测工作中的一项重要业务,从实际工作需要出发,分析了日照分析工程的特点,根据众智日照分析软件的数据结构要求,研究了统筹管理日照分析模型数据的方法。利用SQL Server作为数据的载体,在AutoCAD平台下通过ObjectARX开发数据管理系统,实现了日照分析软件与数据库的有机结合,使用过程中能够避免重复测绘,实现数据的动态更新。

日照分析;AutoCAD;ObjectARX;SQL

1 引 言

随着现代城市高层建筑的快速开发建设,日照分析受到了越来越多的关注,住建部于2014年发布了《建筑日照计算参数标准》,各地方政府也对日照分析工作高度重视。日照分析工程数据量大,精度较高,既有建筑物的三维空间数据,还有窗户数据;受设计方案变更影响,处于规划阶段的建筑物需要多次建模;受多个规划方案影响的已有建筑,可能会要多次利用。因此为了保证模型数据的现势性与一致性,需要设计一套科学、高效的模型数据管理系统,既可以随时调用最新的数据,又可以通过协同作业对数据进行动态更新和备份。

2 开发环境分析

Microsoft SQL Server是基于服务器端的中型数据库,可以适合大容量数据的应用,在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大,并且数据库大小无限制,客户端访问数也无限制,因此从网络服务的稳定性以及数据量方面考虑,选用SQL Server作为数据的网络服务器载体。

众智SUN日照分析软件是建立在AutoCAD基础上,通过二次开发形成的一套软件。它全面解决了全国各地任何时段的日照分析问题,计算科学准确,使用简单方便,是规划管理、规划设计、建筑设计、房地产开发等领域强有力的日照分析工具,有着较高的知名度,全国拥有80%以上规划局用户,适用范围广。

分析众智SUN日照分析软件内的数据组织方式,三维模型数据是利用多线段的厚度属性以及多边形角点的XYZ坐标进行组织,窗户数据是通过AutoCAD中的块链接扩展数据的方式进行识别,因此系统要打通AutoCAD与SQL Server之间的通道,使两者能够自由的转换,并能够为众智日照分析软件识别。

ObjectARX是AutoDesk公司针对AutoCAD平台上的二次开发而推出的一个开发软件包,它提供了以C++为基础的面向对象的开发环境及应用系统接口,能真正快速的访问AutoCAD图形数据库。ObjectARX应用系统是一个DLL(动态链接库),共享AutoCAD的地址空间,对AutoCAD进行直接函数调用,所以,使用ARX编程的函数的执行速度得以大大提高。ARX 类库采用了标准的C++类库的封装形式,这也大大提高了系统员编程的可靠度和效率,它是最为高效的AutoCAD开发工具。因此从系统的执行效率方面考虑,采用ObjectARX方式进行开发。

3 数据库设计

为了存储模型和窗户数据,设计三个关系表,ent_tab,detail_tab,win_tab,其中前两个表通过实体编号形成依赖关系,可以实现三维模型的组织,win_tab表设计用来存储窗户的相关数据。

为了更好地实现对用户的权限管理,还设计一个user_tab表,存储用户的各种信息,例如用户名,密码,权限值等,控制用户对数据库的浏览及修改权限。

3.1 ent_tab表

ent_tab表存储了模型的基本属性,其中ENTTYPE用来标识实体的类型,建筑轮廓或者屋顶,因为众智SUN日照分析软件中建筑轮廓和屋顶都是用多线段来表示,但是建筑轮廓的高度来源于多线段的厚度属性,而屋顶数据来源于每个顶点的3D坐标;ENTSTA用来标志实体的状态,如果为当前有效数据则设为奇数,如果为历史数据则设为偶数;ENTSRC存储了数据的来源,以便追溯。

ent_tab表结构 表1

3.2 detail_tab表

detail_tab表结构 表2

detail_tab表存储了各实体的几何数据,即各顶点的坐标数据,通过实体编号与ent_tab表形成依赖关系,即可实现每个三维模型的数据存储。

3.3 win_tab表

win_tab表结构 表3

win_tab表存储了窗户的各项数据,可以将这些数据附加在众智SUN日照分析软件中的窗户块中作为扩展数据存储,即可被其识别,用来分析;WINSTA用来标志窗户的状态,如果为当前有效数据则设为奇数,如果为历史数据则设为偶数。

4 AutoCad模板设计

为了系统基础与众智SUN日照分析软件保持一直,为系统运行提供模板支持,设计一模板文件(*.dwt),预先将日照分析所用到的特殊层进行设置,例如ZZ_RZ_LK(模型轮廓层),ZZ_RZ_WD(屋顶层),ZZ_RZ_WINGRP(窗户层)等。

窗户块(zzwinm)预先存储在模板文件中,以便被系统调用,添加扩展数据后,插入到dwg文件中,通过以上的模板设计,在使用过程中将实体按照规则创建于特定的层中,便可被众智SUN日照分析软件识别。

5 系统设计

利用ObjectARX新建一个项目,注册自定义命令,目的在于用户输入此命令后,弹出登录窗口,作为整个系统的入口,用户完成登录后,即可进入主界面,进行调用或更新模型数据操作。

用户需要在CAD中绘制一多边形来确定范围,选择“调用模型数据”,系统将会获取范围线顶点坐标,遍历detail_tab表与win_tab表中的坐标记录,判断是否在范围线内,如果在范围线内,并且为有效数据,则获取实体的编号及其他顶点坐标,再根据实体编号查询ent_tab表获取其他属性,根据以上数据,在CAD中创建模型。

如果用户选择“更新模型数据”,则选择需要更新的范围线,系统便会搜寻数据库,将在范围线内的记录设为历史数据,并将CAD中范围线内的模型和窗户数据写入数据库相应的表中。

实现以上处理过程,系统主要涉及5个模块:数据库连接模块,用户登录模块,读取数据库模块,创建实体模块和更新数据库模块。

图1 流程图

5.1 数据库连接模块

ADO模式简单易用,执行效率高,并且可以免去配置数据源的麻烦,使系统获得较好的可移植性,因此采用ADO模式连接SQL服务器。

5.2 用户登录模块

设计使用模态对话框,用于用户的登录操作。用户点击登录按钮,系统在user_tab表中做搜索匹配,根据用户名搜索并匹配密码字段,判断其合法性,并根据权限字段决定其权限。如果登录成功,则弹出主操作界面。5.3 读取数据库模块

获取用户选择的多边形各顶点坐标,遍历detail_tab表及win_tab表,获取表中每条记录的坐标XY,判断是否在范围内,如果在则获取实体编号、各顶点信息及ent_tab表中实体的其他信息,尤其是实体的类型(建筑轮廓、屋顶、窗户)。

判断数据库中记录的点坐标是否在多边形内采用射线法,见下图,过给定点引一条射线,计算出该射线与多边形交点的个数。若与多边形各边交点为偶数个,则在多边形外,否则就在多边形内。

图2 射线法

5.4 创建实体模块

根据5.3的读取判断结果,提取范围内的数据,根据实体的类型等相关数据,在CAD中创建实体。

(1)创建建筑轮廓

众智SUN日照分析软件中建筑轮廓为闭合多线段,系统中利用“AcDbPolyline”类来创建新的实体;建筑的高度为多线段的厚度属性,在系统中设置“thickness”的值为相应的Z坐标值,并将其设为ZZ_RZ_LK层,即可完成建筑轮廓的创建。

(2)创建屋顶

屋顶在CAD中的类型也为闭合多线段,但是并不需要设置厚度属性,直接设置其3D坐标AcGePoint3dArray,并将其设为ZZ_RZ_WD层,完成屋顶的创建。

(3)创建窗户块

经过分析,窗户块在众智SUN日照分析软件中的扩展数据注册为"ZZ_SUNWIN ",其中字符串类型的扩展数据记录了窗户的层数、层高、起始高程等信息,并以“|”分割。

根据上述格式,将win_tab表中符合条件的窗户数据进行整理,然后作为窗户块的扩展数据写入,这样创建的窗户即可被众智SUN软件所识别。

5.5 更新数据库模块

具有更新权限的用户,选择需要更新的范围及范围内的建筑轮廓、屋顶及窗户块,进行更新操作。系统遍历detail_tab表及win_tab表进行冲突检测,判断是否有点在需要更新的范围内,如果有,则将数据库内的数据设为历史数据标志,然后将范围内的待更新模型数据写入数据库,完成更新。

6 结 语

通过以上的设计,实现了日照分析模型数据库的动态更新管理。作业人员使用此系统利于协同作业,避免了重复测绘引起的矛盾;日照分析数据翔实、精度较高,是宝贵的城市3D基础数据,此系统数据结构简单,同样有利于在其他智慧城市平台中扩展使用。

[1] 萨维奇. C++系统设计(第8版)[M]. 北京:清华大学出版社,2012.

[2] GB/T 50947-2014. 建筑日照计算参数标准[S].

[3] AutoDesk. ObjectARX Developer’s Guide[EB/OL].

[4] AutoDesk. AutoCAD 2008帮助[R]. AutoDesk公司,2008.

[5] 众智软件有限公司. SUN软件帮助[R]. 众智软件有限公司,2008.

Model Management System for Sunlight Based on SQL Server and AutoCAD

Cui Xiaowei,Zhang Jiuyan

(Qingdao Geotechnical Investigation and Surveying Institute,Qingdao 266000,China)

Sunlight analysis is an important work in urban surveying, combined with practical work, analysed the characteristics of sunlight analysis, According to requirements of SUN organizational structure, researched the method of managing the sunlight analysis data model. Using SQL server as a data carrier, developping the model management system in AutoCAD by ObjectARX, to realize the organic combination of sunshine analysis software and database, to avoid rework and update the data dynamically.

sunlight;AutoCAD;ObjectARX;SQL

1672-8262(2016)06-41-03

P208.2

B

2016—01—19

崔孝伟(1985—),男,工程师,主要从事Microstation、AutoCAD以及EPS二次开发工作。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!