- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
分类房屋面积自动统计的程序实现
分类房屋面积自动统计的程序实现
摘要:在新城建设或者旧城改造中,决策者往往想先了解征地拆迁工作量及成本,这样一来,房屋的建筑面积统计工作变得尤为重要,传统的手工计算既费时费力,又难以保证其准确性,文章应用VBA编制程序,实现了房屋分类面积的自动统计计算,使繁重的工作变得简单高效,并且能保证其准确与可靠性。
中国论文网 /8/view-7218603.htm
关键词:房屋面积;分类统计;程序计算;VBA
1引言
随着社会经济的发展,人们对居住环境要求越来越高,新城建设和旧城改造项目进行的如火入茶;然而在项目的前期,决策者往往想先了解项目的征地拆迁工作量及成本,这样一来,房屋的建筑面积统计便成了该项工作的重中之重。传统的计算方法是逐间房屋分类手工计算,然后再汇总手工计算,这样既费时费力,也难以保证其准确性,笔者通过思考并结合实际项目,应用VB语言编制程序,实现了分类房屋面积的批量自动统计。
2传统手工统计方法
传统的手工处理方法一般是借助excel办公软件,将房屋预先编号,逐间房屋分类输入电子表格,然后计算,分类统计,这样一来,如果需要统计的房屋较多,工作量巨大,全部手工输入很难保证其正确性,对于大范围的城区改造,该种方法显然不可行。
3计算机程序自动统计
3.1开发工具介绍
VBA是基于ActiveX技术的AutoCAD二次开发工具,可以通过ActiveX与AutoCAD进行通信,并操纵AutoCAD的许多功能。它基于Visual Basic版本,是面向对象体系结构的一种编程语言,有着与VB几乎相同的开发环境和语法。VBA依附于主应用程序AutoCAD,它与主程序的通信简单而高效,由于共享内存空间,使它有更快的执行速度,且其语法结构简洁,深受广大工程技术人员喜爱。
3.2程序思路
第一步,房屋分类归入不同图层,楼层数放入房屋中以备后续程序读取。
第二步,程序对CAD图进行预处理,如删除房屋的多余节点,判断房屋内楼层数的唯一性,如果楼层数不等于1(有两个以上或者一个都没有),程序终止,将房屋换颜色显示,回手工处理阶段。
第三步,程序按图层读取房屋面积及楼层数,按顺序将读取的房屋编号,将编号、面积、楼层数输出至EXCEL表格,将编号及面积写入相应房屋中心位置己备查询。
第四步,程序自动统计所有房屋的总面积输出至EXCEL表格的汇总行,然后结束程序。
3.3程序界面
程序界面如图l所示。
3.4部分源代码
创造房屋选择集部分
On Error Resume Next
Call ThisDrawing.SelectionSets(”MyssFw”).Delete
On Error Resume Next
Set MySelectFw=ThisDrawing.SelectionSets.Add(”MyssFw”)
If Err Then
Err.Clear
Set MySelect Fw = This Drawing.SeleetionSets(”MyssFw”)
End If
Dim gpCode(0.To 1)As Integer,dataValue(0.To 1)As Variant
gpCode(0)=0:dataValue(0)=“LWPolyline”
gpCode(1)=8:dataValue(1)=layer99
MySelectFw.SelectOnScreen gpCode,dataValue选择JMD房屋
MySelectFw.Select acSelectionSetAll,,,gpCode,dataValue
N=MvSelectFw.Count
MJZn=0
For I=0 To N-1
Set PL=MySelectFw.Item(I)
M=(UBound(PL.Coordinates)+1)/2
ReDim pointsArray(0 To 3*(M-1)+2)AsDouble
ReDim x(0 To M-1)As Double
ReDim y(0 To M-1)As Double
创建文字选择集部分
0n Error Resume Next
Call ThisDrawing.SelectionSets(”MyssTx”).Delete
On Error Resume Next
Set MyselectTx=ThisDrawing.SelectionSets.Add(”MyssTx”)
If Err Then
Err.Clear
文档评论(0)