摘 要:本文主要介绍在城市照明工程设计时,利用AutoCAD VBA二次开发工具,找出一条利用自编程序编号的捷径,在设计中快速对城市照明设施进行编号的应用方法。
关键词 AutoCAD 工程文件 编号程序
目前城市照明的计算机设计一般采用AutoCAD软件,在设计过程中,技术人员会对所设计的城市照明设施进行编号,以便确定造价、编制施工预算、购置材料等。但设施的编号比较繁琐,需要一一对应,逐一编号,或者采取复制的办法,确定一个模板,再逐一修改编号数值。如果遇到设计修改、工程变更,最后的编号工作更显繁冗。针对这一问题,结合照明设计的特点,本人利用AutoCAD VBA二次开发工具,找出了一条利用自编程序编号的捷径,在设计中快速对城市照明设施进行编号。具体介绍如下:
一、建立AutoCAD VBA工程文件
选择【工具/宏/Visual Basic编辑器】进入
AutoCAD VBA的集成开发环境,如下图:
然后选择【文件/保存】,出现【另存为】对话框,如下图:
将工程文件命名为“路灯编号程序v1.0.dvb”。
二、编写AutoCAD VBA代码
在【工程资源管理器】窗口中双击“ThisDraw-ing”,系统会直接弹出代码编辑窗口,在此窗口中输入如下代码:
Dim Nums As Integer、Sub Cir( )、Nums=1。
TextHeight=ThisDrawing.Utility.GetString(0,vbCrLf & “请输入编号文字高度[2500]:”)
If TextHeight=“”Then TextHeight =2500
Dim HeadText As String
HeadText=ThisDrawing.Utility.GetString(0, vbCrLf &“请输入编号起始符号[T]:”)
If HeadText=“”Then HeadText=“T”
RETRY:
Dim PPck As Variant
Dim textobject(0) As AcadObject
Dim ppt(0 To 2) As Double: Dim Numbersl As String
On Error Resume Next
Numbersl=ThisDrawing.Utility.GetString(0,vbCrLf & “请输入编号数字(上一编号为“& Nums - 1&”)“&”[“& Nums &”]:)‘截取输入编号”
PPck=ThisDrawing.Utility.GetPoint(,“请指定路灯编号位置:”)
If Err<> 0 Then
Err.Clear
ThisDrawing.Utility.Prompt“没有指定编号位置,退出”
Exit Sub
End If
ppt(0)=PPck(0):ppt(1)=ppck(1):ppt(2)=ppck(2)’指定插入点的X、Y、Z轴坐标
If Numbersl=""Then Numbers1=Nums
Set textobject(0)=ThisDrawing.Mode1Space.AddText(HeadText&Numbersl,ppt,TextHeight)’指定文字内容、插入点、高度
Nums=Numbersl'使提示与上一编号关联
Nums=Nums+1
GoTo RETRY
End Sub
选择[文件/保存],然后退出。
三、应用实例
1.运行一个道路照明设计文件,选择[工具/加载应用程序],如下图:
2.选择“路灯编号程序v1.0.dvb”,选[加载],在[启动组]选项中选择[内容/添加],将此程序添加到启动组中,方便今后每次启动都自动加载此程序。
3.点[关闭]返回设计图,按“Alt+F8”出现[宏]对话框,点[运行]
4.命令行出现“请输入编号文字高度[2500]:”输入一个具体数值,默认空格,则高度为2500。(2500所代表的具体高度可根据实际由设计人员自行确定)
5.“请输入编号起始符号[T]:”输入“D”,也可以按照规范及各地方实际,输入“L”、“LD”等等编号代码,以后编号的起始符号就是所输字母,默认为“T”。
6.“请输入编号数字(上一编号为0)[1]:”常规编号从“1”开始,则打空格,默认编号为“1”,系统会自动保存本次编号的数值,下一个编号默认值为上一编号值加1。
7.“请指定路灯编号位置:”设计人员在首个设施布点旁,单击左键,则该布点旁自动显示编号“D1”;若在步骤5输入的是“LD”,则输出“LD1”。
8.重复6、7两步,设计人员可按照设计意图或编号顺序依次给各布点添加编号,编号会自动累加。
9.编号自动累加过程中,设计人员也可任意变更任意位置布点的编号。例:若编号累加至“D16”,而设计人员主观意图想要在D16位置处,变更为“D23”,则只需在第6步输入“23”即可,下一个编号从24开始,连按两次“Esc”退出程序。
通过该程序能够任意指定编号文字高度、起始字母、数值及位置。该程序在我处设计室实践运用以来,效果较好,设计人员避免了大量重复而繁琐的编号操作。
如今,AutoCAD软件应用已经在照明设计单位普及,作为一名照明设计人员如能在设计中结合本专业要求开发或应用一些简单实用的AutoCAD VBA程序,则可以有效减轻劳动强度,大大提高工作效率。