浅谈建筑标高在AutoCAD中自动绘制

2022-09-13

在机械、建筑等领域常使用Auto CAD进行图形绘制, 绘图过程中有很多重复性工作要做, 例如建筑中的门、窗、标高。为此Auto CAD绘图软件为我们提供了图块功能, 把门、窗、标高做成图块, 使用只需要插入或复制即可, 大大降低了劳动强度。但是在绘图过程中有不同开度, 不同尺寸的门, 有标注在平面图上的标高, 有标注在立面图上的标高, 只使用图块还难适应不同场合的需求。这时我们可以使用Auto LISP或动态块功能, 当然我们还可以使用建筑领域的专业绘图软件天正系列、PKPM等。本文以建筑标高为例阐述Auto CAD的动态块和Auto LISP与对话框控制语言DCL的使用。

1 使用动态块实现建筑标高

1.1 动态块简介

Auto CAD从2006版引入动态块功能, 所谓动态块就是按预先设定好的状态进行变化的图块。从动态块的定义可知创建图块是实现动态块的基础, 所以我们要先会创建图块。所谓图块是将多个对象组合起来形成单个对象的对象集合。

1.2 建筑标高

根据《房屋建筑制图标准应用手册》[1], 标高符号以直角等腰三角形表示, 如图1。

其中图 (a) 为个体建筑物的标高符号, 若标注位置不够可使用图 (b) 形式, 图 (c) 为总平面室外地坪标高符号;图 (d) 、 (e) 为带高度引出线的标高。

1.3 实现步骤

为了实现方便将图1中的 (a) 、 (d) 归为一组, (b) 、 (e) 为一组, (c) 单独一组或者将 (c) 整合到前两组中。因为实现方法大概一致, 我选择 (b) 、 (e) 这组表述。具体分6个步骤完成动态块设计[2], 第1步:在创建动态块之前规划动态块的内容。第2步:绘制几何图形。第3步:了解块元素如何共同作用。第4步:添加参数。第5步:添加动作。第6步:定义动态块参照的操作方式。第7步:测试块。

1.3.1 分析使用哪些参数和夹点类型

根据实际需要我们选择线性、翻转、可见性3种参数, 分别对应5个动做。对应关系如图2。

其中, 线性参数3个, 对应3个动作。分别为缩放距离, 成比例改变标高大小;H距离, 改变H方向的引线长度;L距离, 改变L方向的引线长度。翻转参数2个, 分别对应上下翻转和水平翻转。可见性参数1个, 在带高度引出线与不带高度引出线之间切换。

1.3.2 具体实现

依据1.3.1节的分析与操作步骤, 首先在AutoCAD中创建标高图块, 接着使用“块编辑器”对标高图块添加参数和动作, 最后完成并测试。为了在插入动态块的同时输入标高值, 可以在“块编辑器”中为标高图块“定义属性”, 并将属性的字体设置成预先定义好的“标高字体”。

2 应用AutoLisp和DCL实现建筑标高

AutoCAD使用者如有一定的编程基础, 可以使用AutoLISP实现图形的绘制, 使用AutoLISP可实现参数化绘图, 使绘图过程更加随心所欲。

2.1 AutoLisp和DCL简介

AutoLISP是为了扩展和自定义AutoCAD功能而设计的一种编程语言, 它基于起源于五十年代末的LISP语言。LISP之所以被选为AutoCAD最初的应用程序编辑接口, 是因为只有它才适合于工程中的非结构化设计过程[3]。

对话框控制语言 (DCL) 是在AutoLISP程序的基础上加了一个漂亮的外套, 使用AutoLISP程序的可操作性更强, D CL以ASCII文件形式定义对话框。

2.2 具体实现方法

2.2.1 制作DCL对话框 (图3)

制作形如图4的对话框需要2个单选按钮, 1个编辑框, 4个图像按钮, 1个取消按钮,

2.2.2 制作SLD文件

图4中的4个图像按钮中显示的图形是AutoCAD制作的SLD文件。

SLD文件 (幻灯片文件) , 幻灯片是图形的快照, 即将某个特定时刻的AutoCAD图形以图片的形式保留下来, 以供以后查看。但它并不是一个图形文件, 用户既不能将幻灯文件输入到当前图形中, 也不能编辑或打印幻灯片。而只能查看它。

首先在AutoCAD中绘制如图4所示的标高图形, 接着使用MSLIDE命令生成SLD文件, 5个sld文件名称分别为bgao1.sld到bgao5.sld。制作幻灯片时绘图区域只能有一个标高图形出现, 并尽量使图形充满绘图区域。文件名bgao1.sld到bgao5.sld将在AutoLISP代码中出现。

2.2.3 编写AutoLISP程序

最后编写AutoLISP程序控制DCL对话框的显示, 动作的响应, 并绘制标高。将图1中的标高分解成图4所示的p1到p10这些关键点, 通过计算出这些关键点的坐标, 来绘制标高。其中, p1为标高的插入点, p5和p6点为高度引出线, p9和p10点为标高文字的插入点。

程序主要实现4个功能, 第1创建“标高”图层 (如果原图中没有) , 第2创建“标高”文字样式 (如果原图中没有) , 第3按标注全局比例放大标高, 第4保证p7到p8的直线垂直于p1到p7的直线。

(1) 创建“标高”图层。

(2) 创建“标高”文字样式。

(3) 按标注全局比例放大标高。

最后绘制标高文字, 再比例放大标高文字:

(4) 保证p7到p8的直线垂直于p1到p7的直线。

3 结语

动态块和AutoLISP都能提高绘图效率, 实现起来动态块比较容易, 易于掌握而AutoLISP需要一定时间的经过训练才能掌握。但是AutoLISP更灵活, 更能将自己的思想展现出来。

摘要:使用Auto CAD中的动态块和AutoLISP&DCL (Dialogue Control Language) 实现建筑标高的自动绘制。

关键词:标高,动态块,AutoCAD,AutoLISP,DCL

参考文献

[1] 李坚, 梁东平, 张鑫林.房屋建筑制图标准应用手册[M].知识产权出版社.

[2] AutoCAD2010帮助文件.创建动态块快速入门.动态块中的动作和参数概述.为动态块指定夹点.

[3] AutoCAD2000VisualLisp开发人员手册.

[4] 吴永进, 林美樱.AutoLISP&DCL基础篇[M].北京:中国铁道出版社, 2002, 11.

[5] 苗现华, 吴传山.应用AutoLISP和DCL对AutoCAD的二次开发[J].电脑知识与技术, 2007 (24) .

[6] 杜伟.浅谈AutoLisp对AutoCAD的二次开发[J].科技信息, 2008 (31) .

本文来自 99学术网(www.99xueshu.com),转载请保留网址和出处

上一篇:信息技术下初中数学教学实践研究下一篇:浅论如何指导高中学生提高英语阅读理解能力