摘 要 :利用VBA在CAD中建立自动编号程序,在CAD图纸中对各种岩土工程领域的桩位、钻孔、钎探点、物探点、测量点等进行编号,在编号的同时可列出所以点位的坐标,并形成全站仪仪器格式的文件,可直接传入仪器中使用,提高了点位编号、坐标捕捉等工作的速度及准确度,应用范围较广.
关 键 词 :桩位自动编号 AutoCAD VBA 桩位坐标 岩土工程
前言
在岩土工程勘察、桩基设计、地基处理、物探工作布置、工程测量中,常常需要对各种点号进行顺序编号.使用的制图软件为AutoCAD,一般情况下,编号均采用人工编号,在点位不多的情况下尚可.但在点位较多的情况下,例如大型建筑物地基处理中搅拌桩、砂石桩等,往往点位成百上千,人工编号速度较慢,浪费了设计人员较多时间,且出错率较高.
作者在长期的地基处理、工程测量工作中发现,一般的点位在CAD图纸中均使用圆形图元表示,根据这一特点,利用AutoCAD程序集成的二次开发软件Visual Basic for Applications(VBA),实现对点位的自动编号及点位相应坐标数据的采集,减少了工程技术人员在CAD制图中相关方面的重复性及机械性的工作,提高了数据的准确性.
有关论文范文主题研究: | 关于岩土工程的论文范文资料 | 大学生适用: | 学士学位论文、研究生毕业论文 |
---|---|---|---|
相关参考文献下载数量: | 52 | 写作解决问题: | 如何写 |
毕业论文开题报告: | 标准论文格式、论文总结 | 职称论文适用: | 期刊发表、职称评副高 |
所属大学生专业类别: | 如何写 | 论文题目推荐度: | 优秀选题 |
1.程序功能实现
(1)程序的启动:在启动AutoCAD程序后,将程序文件“桩位自动编号程序V4.0.dvb”拖入AutoCAD工作窗口,点击“工具”→“宏”→“宏”,运行,即可启动程序,启动后的程序界面见附图(程序可在autoCAD r14及其后的各种版本中使用).
(2)程序功能简述
①选择编号范围,可对整个CAD图形空间内所有点位或选择局部桩位进行编号.
②可针对不同桩径进行编号,并预设10%的容差,采用调整容差的方法可设置对一定桩径范围内的桩桩径指圆的直径.
③选择编号的字体、颜色、大小、位置(如桩位内、或上、或下、或左、或右)、顺序(如先行后列、先列后行,X轴Y轴按升序降序排列等).
④可选择起始编号.
⑤可选择编号的间隔,如1,2,3,等,n,1,3,5,等2n-1,1,4,7,等3n-2.
⑥可添加前缀、后缀等,如ZK1,C1,1a、1b,ZK1a等.
⑦默认选项功能:此项主要针对直径为600mm,比例尺为1:100的搅拌桩布置图而专设,字体的大小及位置默认为桩位中心,起始编号为1,编号间隔为1,前缀及后缀为空,无需改动任何参数即可直接进行编号,
⑧开始编号,设置好各项参数后,单击后即可进行编号,生成编号图形(如图1)
⑨生成坐标功能:可生成所有编号点的平面坐标,并同时分为仪器格式文件及文本格式文件两种,前者供全站仪直接传输,后者供测量人员查阅(如图2).
将程序所提供的各项子功能综合设置使用,不但可满足岩土工程日常编号的基本需要,还可满足大部份特殊编号要求,诸如以跳跃方式编号,将桩位分区编号,将长短桩分类编号,将不同类型的桩位冠以前缀后缀编号.
2.编程思路及代码简介
(1)编程思路:在CAD图形中,基于AutoCAD程序集成的二次开发软件Visual Basic for Applications(VBA),打开需要编号的图纸后,在thisdrawing.modelspace中遍历所有符合用户设计定的ACADcircle图元,在其circle.center坐标上按用户要求输入相应编号数据,并控制其字体大小、位置等,并将其坐标数据存入数组中,形成文本文件及仪器文件.
(2)代码简介:程序采用可视化编程技术,故按钮触发条件,各控件属性等代码较长,鉴于篇幅,在此仅介绍核心功能代码如下:
`定义及初始化变量
Dim PileNumber As String
Dim textObj As AcadText
等
`错误处理
On Error GoTo Err_control
`新建图层,选择桩位的范围,遍历所有符合条件的桩位,将桩位的中心坐标存入二组数组XX
Set lay0 等于 ThisDrawing.Layers.Add("桩位编号")
If OptionButton1.Value 等于 True Then '整个图形范围
For Each myEntity In ThisDrawing.ModelSpace
If myEntity.ObjectName 等于 bb Then
If myEntity.Radius < TextBox6.Text / 2 + TextBox6.Text / 10 And myEntity.Radius > TextBox6.Text / 2 - TextBox6.Text / 10 Then '提高容错能力
sum 等于 sum + 1
centerpoint 等于 myEntity.Center
XX(0, I) 等于 centerpoint(0)
XX(1, I) 等于 centerpoint(1)
I 等于 I + 1
End If
End If
Next myEntity
End If
‘ 使用快速排序法将数组XX内存有的桩位中心坐标按用户的要求进行排序
If OptionButton3.Value 等于 True Then '先行后列,采用快速排序法
For I 等于 0 To sum - 2
K 等于 I
For J 等于 I + 1 To sum - 1
If OptionButton7.Value 等于 True Then
If XX(1, J) < XX(1, K) Then K = J
End If
If OptionButton8.Value 等于 True Then
If XX(1, J) > XX(1, K) Then K 等于 J
End If
If XX(1, J) 等于 XX(1, K) Then
If OptionButton5.Value 等于 True Then
If XX(0, J) < XX(0, K) Then K = J
If XX(0, J) > XX(0, K) Then K 等于 K
End If
If OptionButton6.Value 等于 True Then
If XX(0, J) > XX(0, K) Then K 等于 J
If XX(0, J) < XX(0, K) Then K = K
End If
End If
Next J
If K <> I Then
TempX 等于 XX(0, I)
TempY 等于 XX(1, I)
XX(0, I) 等于 XX(0, K)
XX(1, I) 等于 XX(1, K)
XX(0, K) 等于 TempX
XX(1, K) 等于 TempY
End If
Next I
End If
`利用数组XX统计并显示桩数,按顺序从数组XX中取出桩位中心坐标数据,根据位置修正参数对坐标数据进行修正,加入前缀后缀,使用写入命令将桩位编号数据按用户定义的大小写入桩位坐标位置,并将坐标数据输出为文本文件及仪器格式文件
MsgBox "在该图纸空间检测到 " & sum & "个桩位,准备对其进行编号"
Open "d:\桩位坐标(文本).txt" For Output As #1
Open "d:\桩位坐标(仪器).txt" For Output As #2
Dim hey_autoadd As AcadText
For I 等于 0 To sum - 1
p(0) 等于 XX(0, I) + X_Excursion
p(1) 等于 XX(1, I) + Y_Excursion
p(2) 等于 0
PileNumber 等于 I * Step + StartNumber
PileNumber 等于 PreFix + PileNumber + PostFix
Write #1, "点号", PileNumber, "N坐标", Round(XX(1, I), 3), "E坐标", Round(XX(0, I), 3), "Z坐标", p(2)
Write #2, PileNumber, , Round(XX(1, I), 3), Round(XX(0, I), 3), p(2)
Call ThisDrawing.ModelSpace.AddText(PileNumber, p, FontSize)
Next I
Close #1
Close #2
其余辅助性功能代码略.
3.程序在工程实际中的应用
(1)工程勘察方面:可对钻孔进行编号,并采集相应的坐标,生成全站仪仪器格式的文件,直接传入仪器内存中以备施放钻孔中调用,可对钎探点进行编号.
(2)桩基施工方面:可对各种灌注桩、圆形预制桩等对行编号.
(3)地基处理方面:可对强夯点、砂石桩、CFG桩、夯实水泥土桩、水泥土搅拌桩、注浆点、挤密桩、石灰桩等桩(点)位进行编号.
(4)物探方面:可对各种物探点进行编号.
(5)工程测量方面:可对各类测量点进行编号,并一次性采集所有编号点在CAD图形空间中的平面坐标,同时形成仪器格式文件及文本文件,前者可根据不同的仪器数据格式生成相应的仪器格式文件传入全站仪中调用,后者打印出后则可以在放样时供测量人员查阅.
根据我单位在钻孔编号,水泥土搅拌桩编号,CFG桩位编号、钎探点编号等方面大量的使用实践,程序在很大程度上减了重复性的编号工作,不论桩位多少、桩径大小,在何位置,排列有无规律,编号工作均可在数分钟内完成,且不存在诸如漏编、重编等现象,编号的准确率可达100%.
4.结语
该方法实现了桩位的自动编号及坐标数据采集,速度快,准确率高,采用AutoCAD的界面风格,可视化操作,用户界面友好,对于岩土工程领域内的圆形图形点位均可进行编号,结合作者在设计及测量过程遇到的专业性问题进行有针对性的处理,可处理大部分的需要.