论文部分内容阅读
嘉兴市规划设计研究院有限公司 【摘要】如今建设项目的规划指标核实都要求对机动车位个数进行测量,测量内容包括车位边线和编号。随着车位数量不断增长,实现车位编号的自动化是提高编号效率的有效方法。
【关键词】车位测量;编号;VBA
【中图分类号】TU244 【文章标识码】B 【文章编号】1326-3587(2013)04-0167-01
一、引言
如今建设项目的规划指标核实要求对机动车位个数进行测量,测量内容包括车位边界线和编号。随着车位数量不断增长,实现车位编号的自动化是提高编号效率的有效方法。
二、实现自动编号的方法
编号一般都在cad环境中完成,利用cad支持的VBA语言来完成自动编号,使得编号速度得到很大提高。
使用cad命令“VBAIDE”打开程序编写窗口
首先声明通用变量:
Dim textposition(0 To 2) As Double ‘’ 定义编号位置
Dim varRet As Variant ‘’定义拾取点坐标
Dim n As Integer ‘’定义起始编号
Dim s As String ‘’定义编号内容
Sub 普通车位编号() ‘’ 开始编写函数
On error goto err ‘’发生错误时候转到err语句
Dim Message, Title, Default ‘’定义初始编号输入对话框
Message = "请输入您想开始的车位编号(必须是正整数),例:如果你想从50开始,请输入50"
Title = "初始编号赋值"
Default = "1"
n = InputBox(Message, Title, Default) ‘’赋值初始编号
Do While n < 10 ’’ 当编号小于10时的编号位置
n = n + 1
varRet = ThisDrawing.Utility.GetPoint(, "Start point of path: ")
textposition(0) = varRet(0) + 1
textposition(1) = varRet(1) - 1.3
textposition(2) = varRet(2)
s = n - 1
ThisDrawing.ModelSpace.AddText s,textposition,0.7
‘’在图上显示编号内容,位置,大小
Loop
Do While n < 100 And n > 9 ‘’ 当编号大于9小于100时的编号位置
n = n + 1
varRet = ThisDrawing.Utility.GetPoint(, "Start point of path: ")
textposition(0) = varRet(0) + 0.7
textposition(1) = varRet(1) - 1.3
textposition(2) = varRet(2)
s = n - 1
ThisDrawing.ModelSpace.AddText s, textposition, 0.7
Loop
Do While n < 1000 And n > 99 ‘’当编号大于99小于1000时的位置
n = n + 1
varRet = ThisDrawing.Utility.GetPoint(, "Start point of path: ")
textposition(0) = varRet(0) + 0.3
textposition(1) = varRet(1) - 1.3
textposition(2) = varRet(2)
s = n - 1
ThisDrawing.ModelSpace.AddText s, textposition, 0.7
Loop
Do While n > 999 ‘’当编号大于999时的位置
n = n + 1
varRet = ThisDrawing.Utility.GetPoint(, "Start point of path: ")
textposition(0) = varRet(0) + 0.2
textposition(1) = varRet(1) - 1.3
textposition(2) = varRet(2)
s = n - 1
ThisDrawing.ModelSpace.AddText s, textposition, 0.7
Loop
Err:
Exit sub
End Sub ‘’函数结束
以上是普通车位编号的程序内容,实现车位编号从初始编号开始不断递增,利用鼠标拾取的方式使得编号自动居中对齐(仅适用于尺寸为5.5*2.5米的车位,其它尺寸车位需适当平移)。在此程序基础上,做适当修改还可以实现编号中带字母的车位自动编号。
三、结束语
利用VBA语言来实现编号的自动化,使车位编号过程简化了许多,提高了工作效率。不仅在cad中,office软件中也可以使用类似的方法来简化重复的操作。在工作中使用计算机语言来实现重复过程的自动化,可以事半功倍。
【参考文献】
1、(美)考汀汉姆.Mastering AutoCad VBA,北京:电子工业出版社 2001.11
【关键词】车位测量;编号;VBA
【中图分类号】TU244 【文章标识码】B 【文章编号】1326-3587(2013)04-0167-01
一、引言
如今建设项目的规划指标核实要求对机动车位个数进行测量,测量内容包括车位边界线和编号。随着车位数量不断增长,实现车位编号的自动化是提高编号效率的有效方法。
二、实现自动编号的方法
编号一般都在cad环境中完成,利用cad支持的VBA语言来完成自动编号,使得编号速度得到很大提高。
使用cad命令“VBAIDE”打开程序编写窗口
首先声明通用变量:
Dim textposition(0 To 2) As Double ‘’ 定义编号位置
Dim varRet As Variant ‘’定义拾取点坐标
Dim n As Integer ‘’定义起始编号
Dim s As String ‘’定义编号内容
Sub 普通车位编号() ‘’ 开始编写函数
On error goto err ‘’发生错误时候转到err语句
Dim Message, Title, Default ‘’定义初始编号输入对话框
Message = "请输入您想开始的车位编号(必须是正整数),例:如果你想从50开始,请输入50"
Title = "初始编号赋值"
Default = "1"
n = InputBox(Message, Title, Default) ‘’赋值初始编号
Do While n < 10 ’’ 当编号小于10时的编号位置
n = n + 1
varRet = ThisDrawing.Utility.GetPoint(, "Start point of path: ")
textposition(0) = varRet(0) + 1
textposition(1) = varRet(1) - 1.3
textposition(2) = varRet(2)
s = n - 1
ThisDrawing.ModelSpace.AddText s,textposition,0.7
‘’在图上显示编号内容,位置,大小
Loop
Do While n < 100 And n > 9 ‘’ 当编号大于9小于100时的编号位置
n = n + 1
varRet = ThisDrawing.Utility.GetPoint(, "Start point of path: ")
textposition(0) = varRet(0) + 0.7
textposition(1) = varRet(1) - 1.3
textposition(2) = varRet(2)
s = n - 1
ThisDrawing.ModelSpace.AddText s, textposition, 0.7
Loop
Do While n < 1000 And n > 99 ‘’当编号大于99小于1000时的位置
n = n + 1
varRet = ThisDrawing.Utility.GetPoint(, "Start point of path: ")
textposition(0) = varRet(0) + 0.3
textposition(1) = varRet(1) - 1.3
textposition(2) = varRet(2)
s = n - 1
ThisDrawing.ModelSpace.AddText s, textposition, 0.7
Loop
Do While n > 999 ‘’当编号大于999时的位置
n = n + 1
varRet = ThisDrawing.Utility.GetPoint(, "Start point of path: ")
textposition(0) = varRet(0) + 0.2
textposition(1) = varRet(1) - 1.3
textposition(2) = varRet(2)
s = n - 1
ThisDrawing.ModelSpace.AddText s, textposition, 0.7
Loop
Err:
Exit sub
End Sub ‘’函数结束
以上是普通车位编号的程序内容,实现车位编号从初始编号开始不断递增,利用鼠标拾取的方式使得编号自动居中对齐(仅适用于尺寸为5.5*2.5米的车位,其它尺寸车位需适当平移)。在此程序基础上,做适当修改还可以实现编号中带字母的车位自动编号。
三、结束语
利用VBA语言来实现编号的自动化,使车位编号过程简化了许多,提高了工作效率。不仅在cad中,office软件中也可以使用类似的方法来简化重复的操作。在工作中使用计算机语言来实现重复过程的自动化,可以事半功倍。
【参考文献】
1、(美)考汀汉姆.Mastering AutoCad VBA,北京:电子工业出版社 2001.11