利用AutoCAD VBA编写自动标高标注程序

2019-11-07 07:48昌志敏陈晓峰
治淮 2019年10期
关键词:子程序标高代码

易 宁 昌志敏 陈晓峰

AutoCAD 作为工程设计人员必不可少的设计工具之一,在工程制图中发挥了重要的作用。除具有强大的制图功能外,它还提供了供二次开发者使用的AutoLisp、VBA 等更为灵活方便的二次开发工具。本文编写了一个在AutoCAD 的VBA 开发环境中运行的自动标高标注程序,通过合理设置文字高度、精度等必要的参数,根据图中建筑物需要标注的不同位置自动生成正确的标高数值,可有效提高工程的制图速度、减少工程图纸出错的机率。

一、实现方法

该程序由一个主程序和两个子程序的方式来实现自动标注功能。使用子程序一是可以使程序结构合理,各模块功能清晰,易于维护。

1.EleTxtLen 子过程

根据用户选择要标注的位置放置要标注的标高文字,同时计算出文字在图形中的长度传给CreateElevation子程序,以便能够准确的画出标高水平线的长度,不至于让标高水平线过长或过短影响图纸的美观和效果。实现代码如下:

上段子过程的代码需要4 个参数,分别为标高符号插入点、高程值、文字高度和文字相对于插入点所在的方向。

根据传递过来的4 个参数,先在坐标(0,0)处生成标高文字,测量出长度然后删除文字。再根据用户要标注的方向(Case1~Case4)在适当位置创建文字。测量出来的文字长度同时传递给画标高符号的子程序使用。

2.CreateElevation 子程序

跟据计算出的文字长度画出适当的标高符号。根据用户第二点的选择位置确定文字在哪个位置,从而翻转或旋转标高符号。实现代码如下:

3.自动标高的主程序

主程序定义程序运行的各个变量,提示用户输入1m 长度在图形中的数值、文字高度、标高插入点以及第一个参考标高的数值。根据用户给定的参数调用子程序完成标高的自动标注。该程序可连续选点标注,直到用户按ESE 或鼠标右键退出。实现代码如下:

二、运行方式

在AutoCAD 中选择“工具(T)”—“宏(A)”—“Visual Basic 编辑器(B)”(也可以快速按Alt+F11 两次),在出现在窗口中双击左侧的“Thisdrawing”,将以上的代码写入其中,然后可以关闭该窗口。接着选择“工具”—“宏”—“宏(M)”(或快速按Alt+F8 两次),在弹出的窗口中选择运行就可以执行该程序。

三、结语

AutoCAD VBA 作为其内置的面向对象的开发工具,和Visual Basic 一样都具有强大的开发功能。其区别就是VBA 相当于VB 的简化版,不能作为一个独立程序来运行,必须在AutoCAD 环境下使用,但其开发功能并不弱,VBA 程序作为AutoCAD 的一个过程来运行,程序的执行速度非常快,且对话框结构设计易于对程序的代码维护和纠错,节省编程的时间。会编程的初学者也可以在很短的时间内掌握并发挥其强大的功能■

猜你喜欢
子程序标高代码
多级节能工厂化养殖池塘建设的标高设计初探
Revit中自动生成标高线的开发技术
BIM 参数化建模探讨
创世代码
创世代码
创世代码
创世代码
浅谈子程序在数控车编程中的应用
子程序在数控车加工槽中的应用探索
高层建筑的标高控制技术