AutoCAD的二次开发在钢筋统计工作中的应用

2015-03-17 01:14:28梁凯旋韩首都
西北水电 2015年5期
关键词:数据类型统计表二次开发

梁凯旋,韩首都

(新疆水利水电勘测设计研究院,乌鲁木齐 830000)

文章编号:1006—2610(2015)05—0079—04

AutoCAD的二次开发在钢筋统计工作中的应用

梁凯旋,韩首都

(新疆水利水电勘测设计研究院,乌鲁木齐 830000)

利用内嵌于AutoCAD软件平台的VBA技术对钢筋统计程序进行二次开发,介绍如何给对象添加自定义扩展数据以及如何提取对象的扩展数据;从而通过使用扩展数据,实现CAD本身无法实现的特定功能,应用于实际工作中可进一步提高工作效率,减少出错的概率和繁琐的绘图统计工作。

CAD;二次开发;钢筋统计;扩展数据;VBA;插件

0 前 言

AutoCAD是目前使用广泛的通用交互式计算机辅助绘图与设计软件包,其特点是通用性强,具有多种工业标准和开放的体系结构,具有强大的二次开发功能。VBA(Visual Basic for Application)是AutoCAD内嵌的一种程序语言,它基于Visual Basic语言的,有着与VB几乎相同的开发环境和语法。在实际工程项目中,钢筋统计是一项繁琐而又要求严谨的工作。本文利用内嵌于AutoCAD软件平台的VBA技术进行二次开发编写钢筋统计程序(见图1),通过程序将钢筋编号、直径、长度、根数等自定义属性数据添加给对象,使之具有扩展属性,可以形象的称之为数据尾巴,即不论图形如何拷贝,钢筋数据始终都会像尾巴一样跟随图形,随时可提取对象的扩展属性,进行相应的修改、统计操作,并自动绘出钢筋统计表和钢筋材料表,提高工作效率。

1 程序介绍

1.1 程序主界面预览

程序主要功能包括:拾取并判断钢筋形式、读取分段长度、钢筋编号、修改钢筋属性、图中寻找钢筋、生成钢筋统计表和材料统计表等,见图1。

图1 钢筋统计窗口图

1.2 报表生成

程序自动生成的钢筋统计表和钢筋材料表见图2和3。

图2 钢筋统计表

图3 钢筋材料统计表

2 开发中的关键技术

2.1 钢筋自定义数据结构

首先自定义一个钢筋数据结构,再定义一个用来存储钢筋数据的动态数组,这样做的好处,可以对钢筋数组进行批量操作,比如排序,删除等。

Public Type zdygangjin '创建自定义钢筋类型,包含钢筋的各种属性

buweimingcheng As String '钢筋部位名称

bianhao As String '钢筋编号

bianma As String '钢筋编码

l1 As String '输入格式为:1987,1987-2014

l2 As String

l3 As String

l4 As String

l5 As String

xinghao As String '钢筋型号

zhijing As Integer '钢筋直径

genshu As Integer '钢筋根数

zushu As Integer '钢筋组数

shifoutongji As Boolean '布尔型 ,是否参与统计数组

wangoubeishu As Double '定义弯钩倍数

objid As Double '定义对象ID号

gangjinjianju As Integer '定义钢筋的间距,单位为mm

End Type

'定义一个动态数组,为全局变量,存储钢筋的自定义扩展属性

Public gangjintongji() As zdygangjin

2.2 添加扩展数据

扩展数据中常用的组码说明如下:

1001 应用程序名称,数据类型为string

1000 数据类型为string

1003 表示图层,类型为string

1040 数据类型为 double

1041 表示距离值,数据类型为Single

1042 表示缩放比,数据类型为Single

1070 表示16 位有符号整数

1071 表示 32 位有符号长整数

向对象添加扩展数据的方法是使用对象的SetXData方法,下面给出定义钢筋扩展数据结构,并添加给对象的部分代码:

Dim xdatatype(0 To 1) As Integer

Dim xdata(0 To 1) As Variant

atatype(0) = 1001: xdata(0) = “bianhao”

datatype(1) = 1000: xdata(1) = gangjintongji(i).bianhao

gangjinObj.SetXData xdatatype, xdata '向对象添加一个扩展数据组

atatype(0) = 1001: xdata(0) =“genshu”

datatype(1) = 1070: xdata(1) = gangjintongji(i).genshu

gangjinObj.SetXData xdatatype, xdata '向对象添加一个扩展数据组

……

扩展数据是以组码“1001”开始后面紧跟若干个扩展组码构成的一个单独的编组,给对象添加扩展数据就是将这样的一个或多个编组赋给对象的,添加完之后,不管是移动复制还是粘贴,扩展数据都始终跟随对象,就像吸铁石一样紧紧地附着于对象之上。

2.3 提取扩展数据

提取对象扩展数据的方法是使用对象的GetXData方法,下面给出提取钢筋扩展属性的部分代码:

Dim xtypeout As Variant

Dim xdataout As Variant

gangjinObj.getxdata “bianhao”, xtypeout, xdataout '应用程序名称:钢筋编号

gangjintongji(i).bianhao = xdataout(1) '提取编号数据

gangjinObj.getxdata “zhijing”, xtypeout, xdataout '应用程序名称:钢筋直径

gangjintongji(i).zhijing = xdataout(1) '提取直径数据

……

可以批量提取对象的扩展数据,并存入到自定义的钢筋数组gangjintongji()中,这样就可以方便地对数组进行操作,比如合并、删除、排序等操作,也为以后再次进行钢筋统计提供方便。

2.4 应用扩展数据

根据提取的扩展数据,利用VBA的选择过滤器的功能可以轻松的选取同一类型的钢筋,然后进行批量的修改,比如直径、根数的修改等等,在修改的同时,钢筋标注也同步更新,这样就会省去很多修改的麻烦。

3 某工程中的应用

以某水库工程的导流兼泄洪洞工作闸井为例,说明如何生成钢筋统计表和材料表。

(1) 根据结构图绘制钢筋对象,保证线钢筋为多段线(pline线),点钢筋为圆(circle)。

(2) 打开程序主界面,点击“单选钢筋”按钮,在cad模型空间中拾取前面绘制好的钢筋对象后,

程序自动判断钢筋型式,并将钢筋对象的各个分段值按照比例换算成实际值填入到对应的文本框中,以便进行修改,接着在主界面中再填入其他的属性(部位名称、直径、根数等),最后点击“钢筋编号”按钮进行钢筋编号,每进行一次编号,钢筋列表区内都会增加一行数据(见图4),同时模型空间中也会自动添加钢筋编号文本,如此步骤再进行其他钢筋的编号,最后整理的效果见图5。

图4 程序界面中显示的钢筋列表图

图5 钢筋编号成果图——工作闸井纵剖面钢筋图(1∶100) 单位:mm

(3) 在编号的过程中,如果想让某一个钢筋的编号提前,比如把10号钢筋提前到6号,可以在钢筋列表区中选中10号钢筋,然后点击“上移”按钮,程序就会将10号钢筋提到6号,其他钢筋编号会自动顺延,同时模型空间中的钢筋编号文本也会自动更改,不需要手动去改。

(4) 所有钢筋编号完成之后,就可以出钢筋统计表和钢筋材料表了。首先点击“钢筋统计表输出”按钮后,程序会自动将钢筋列表区内的数据按照预先设定好的钢筋表格式插入到模型空间中,然后再点击“钢筋材料表输出”按钮,在模型空间中框选前面生成的钢筋统计表,程序会自动计算材料用量并生成钢筋材料表(见图6)。

(5) 此外在模型空间中双击钢筋统计表中的编号文本时,程序会自动寻找该编号对应的钢筋对象,并以橡皮线指示,方便用户的查看(见图7)。

图6 生成的钢筋统计表和材料表

图7 双击编号文本自动寻找钢筋位置图 单位:mm

4 结 语

利用VBA对AutoCAD程序进行二次开发,借助于扩展数据向钢筋对象添加自定义属性,从而实现程序自动统计、自动绘制钢筋表的功能,最终提高工作效率,减少出错概率。

另外还可以借助扩展数据,将具有关联性的若干个对象赋予同一组扩展数据,这样就能在对象之间传递信息,进而实现对象的关联性操作,使得图形对象便于管理和统计。

[1] 张帆,郑立楷,王华杰.AutoCAD VBA开发精彩实例教程[M].北京:清华大学出版社,2004.

[2] 张帆,郑立楷,卢择临,王成煌.AutoCAD VBA二次开发教程[M].北京:清华大学出版社,2006.

[3] 曾洪飞,张帆,卢择临.AutoCAD VBA&VB.NET开发基础与实例教程[M].北京:中国电力出版社,2008.

Application of Re-developed AutoCAD in Reinforcement Statistics

LIANG Kai-xuan, HAN Shou-du

(Xinjiang Water Resources and Hydropower Investigation Design and Research Institute, Urumqi 830000,China)

The reinforcement statistic program is re-developed by application of VBA technology which is built in AutoCAD. Furthermore, how to add the self-defined extended data to object and how to abstract the extended data from object are introduced. The special functions which cannot be realized by CAD itself can be utilized by application of the extended data. In practice, their application can help with improvement of work efficiency, reduction of mistaking probability and simplification of complicated statistics. Key words:CAD; re-developed; reinforcement statistics; extended data; VBA; plug-in

2015-03-12

梁凯旋(1987- ),男,河南省许昌市鄢陵县人,助理工程师,从事水利工程设计工作.

TP391.7

A

10.3969/j.issn.1006-2610.2015.05.023

猜你喜欢
数据类型统计表二次开发
2020年部分在晋提前批招生院校录取统计表
详谈Java中的基本数据类型与引用数据类型
2019年提前批部分院校在晋招生录取统计表
如何理解数据结构中的抽象数据类型
数码世界(2020年5期)2020-06-23 00:14:36
浅谈基于Revit平台的二次开发
甘肃科技(2020年20期)2020-04-13 00:30:02
浅谈Mastercam后处理器的二次开发
模具制造(2019年3期)2019-06-06 02:11:02
神奇的统计表
西门子Easy Screen对倒棱机床界面二次开发
上榜派出所统计表
基于Pro/E二次开发的推土铲参数化模块开发