A Fast and Simple Lofting Method to Set-out the Continuously Changing Reinforcement
-
摘要: 讨论了目前连续变化钢筋尺寸翻样的几种方法,介绍了利用Autocad进行翻样的优势,并用lisp语言实现翻样的自动化,最后结合某桥墩实例详细的描述了利用lisp语言实现连续变化钢筋尺寸快速翻样的一般步骤。Abstract: This paper discusses several methods of reinforced lofting at present, and introduces the advantages of using AutoCAD in reinforced lofting. The automatic reinforced lofting can be realized by using lisp language. Finally, combined with an example of a concrete pier, the general steps of using lisp language to realize the rapid change of the dimension of continuously changing steel bar are described in details.
-
前言
在道路桥梁施工中,施工设计图给出不同结构的钢筋下料单。施工现场的工人根据钢筋下料单中给出的各种类型的钢筋的尺寸、形状、数量制作施工所需要的钢筋。但是,施工设计图中某些类型钢筋的形状相似,而具体的尺寸是随着结构的外形变换而逐渐变化的。并且施工设计图中只给出该类型钢筋尺寸变化范围,具体尺寸需要结合结构形状进行计算。在实际施工过程中,计算具体尺寸的方法有以下三种:
(1) 经验值法。经验值法是施工人员根据以往的施工经验,使用经验参数、经验公式,代入结构尺寸数据计算得到所需要的钢筋尺寸数据。
(2) 放大样法。放大样法是将结构按照某比例放出大样,再用钢尺实际量出所需要的不同尺寸。
(3) Autocad翻样法。Autocad翻样法是将结构在Autocad中绘制出,再根据钢筋布局参数翻样出钢筋,然后借助Autocad标注的功能得到需要的尺寸数据。
通过比较三种方法可以发现,第一种方法的计算量大、耗时长,需要施工人员有丰富的施工经验。第二种绘制方法误差较大。第三种方法相对简单、精确。但是这种方法首先要对结构进行绘图,然后进行后续的翻样、标注工作。但是相似结构的重复绘制,大量图元的重复标注和数据抄录是耗时费力的。
Autocad不但绘图功能完善、用户界面良好,而且用户可进行二次开发[1]。利用Autocad自带的lisp编程软件,用户可以构建模型[2],调用模型,输入参数实现绘图、翻样、标注、结果输出的自动化,从而大大减轻施工人员的工作量,提高数据精度。
1. 快速翻样标注的实现
1.1 快速翻样标注的一般流程
该功能实现的一般流程如图 1所示,主要包括:模型选择、参数输入、绘制结构图、翻样、标注、结果输出。
用户首先根据自己的翻样需求选择相对应的模型,如:桥墩、桥台、齿板等。系统会根据用户的选择给出与所选模型对应的参数输入窗口[3],并在窗口上显示预先制作好的,用以提示用户各参数所代表的实际含义的图片,以方便用户从施工图上获取参数的实际值。
在用户输入各参数后,点击确定按钮,计算机就可自动绘制结构图[4],并进行翻样、标注和结果的输出。
1.2 模型绘制及其参数输入
该功能模块主要有两个方面的工作:(1)幻灯片的制作;(2)绘图翻样参数的确定。
不同结构所需要的绘图、翻样参数由具体情况实际确定。在确定所有参数后,给出用户输入窗口,并配以幻灯片说明,让各参数的含义更加明确。对话框采用DCL设计,下面为某桥墩的参数输入对话框设计代码:
//对话框设计
gjfy:dialog{label=“模型参数选择”;
:row {
:boxed_column{label=“模型选择”;
//添加图形控件
:image{width=15;height=6;key=“img”;color=-2;}
//添加模型列表
:popup_list{label=“模型样式”;edit_width=10;list=“带弧桥墩\\n斜线桥墩\\n齿板\\n箱梁中腹板\\n箱梁边腹板”;value=0;key=“pop”;}}
:boxed_column{label=“绘图参数”;
//添加用户输入控件
:edit_box{label=“&a(cm):”;edit_width=10;key=“a”;}
:edit_box{label=“&b(cm):”;edit_width=10;key=“b”;}
:edit_box{label=“&c(cm):”;edit_width=10;key=“c”;}
:edit_box{label=“&r(cm):”;edit_width=10;key=“r”;}}
:boxed_column{label=“翻样参数”;
:edit_box{label=“间隔&d(cm)”;edit_width=10;key=“d”;}
:edit_box{label=“保护层&e(cm)”;edit_width=10;key=“e”;}}}
幻灯片的绘制是在Autocad中绘制好结构模型,在对应的地方标注上参数名称,调用MSLIDE命令,保存在计算机中,供对话框的图片框调用。下面为幻灯片的调用代码:
(start_image img_key)
(slide_image 0 0(dimx_tile img_key)(dimy_tile img_key)img_sld)
(end_image)
1.3 结构的绘制
结构的绘制是根据结构的几何特征,依据所选参数,调用函数,绘制出结构[5]。首先是使用get_tile函数获取用户的参数输入值:(setq e(atof(get_tile“e”)))。然后,结合结构的几何特征绘制图形:
//设置图形界限
(command“limits”“”(list r r))
//计算控制点
(setq p5(list(/r 2)0))
(setq p6(list(/r 2)b))
(setq p1(list(/(-r c)2)0))
(setq p2(list(/(+r c)2)0))
(setq p3(list(/(+r a)2)b))
(setq p4(list(/(-r a)2)b))
(setq s(/(distance p1 p4)2))
(setq ang2(atan(sqrt(-(/(* r r)(* s s))1))))
(setq ang1(angle p1 p4))
(setq p0(polar p1(+ang1 ang2)r))
//调用绘图命令绘制图形
(command“line”p1 p2””)
(command“line”p3 p4””)
(command“arc”“c”p0 p1 p4)
(setq p7(list(-(*(car p5)2)(car p0))(cadr p0)))
(command“arc”“c”p7 p3 p2)
1.4 翻样功能
翻样功能是依据翻样参数算出翻样次数[6],调用循环命令翻样出结果:
//计算修剪控制点
(setq n 0)
(setq cs(fix(/b d)))
(repeat cs
(setq n(+n 1))
(setq pn6(list(car p6)(-(cadr p6)(* 10 n))))
(command“copy”p6””p6 pn6))
//循环实现图形修剪
(setq n 0)
(repeat cs
(setq n(+n 1))
(setq pn3(list(car p3)(-(cadr p3)(* 10 n))))
(setq pn4(list(car p4)(-(cadr p4)(* 10 n))))
(command“trim”p1 p2 p3 p4 pn3””pn3 pn4″”))
1.5 数据标注
数据的标注使用到图元属性[7]。Autocad中所有绘制的图形都有一个属性列表。属性列表中各属性都以点对列表的形式给出,通过对点对列表的操作即可获取想要属性值,或者通过属性列表修改图元。数据标注通过提取出属性列表中的线段长度,线段的起点和端点,调用标注命令,实现尺寸数据的标注:
//获得标注对象
(setq pf1(list(-(car p5)1)(cadr p5)))
(setq pf2(list(+(car p6)1)(cadr p6)))
(setq xzj(ssget“f”(list pf1 pf2)))
//获得长度属性并标注
(setq pd1x(cadr(assoc 10(entget(ssname xzj n)))))
(setq pd1y(caddr(assoc 10(entget(ssname xzj n)))))
(setq pd2x(cadr(assoc 11(entget(ssname xzj n)))))
(setq pd2y(caddr(assoc 11(entget(ssname xzj n)))))
(setq pd1(list pd1x pd1y))
(setq pd2(list pd2x pd2y))
(command“dimaligned”pd1 pd2 pd2)
1.6 结果输出
为了方便用户观看结果,输出的结果有图形结果,和扣除保护层厚度后输出的数值结果,这样也使得用户省去数据抄录的繁琐工作。部分代码为:
(setq file(open“***”“a”))
(write-line“编号长度保护层”file)
(setq data(entget(ssname xzj n)))
(setq tp(cdr(assoc 0 data)))
(if(=tp“DIMENSION”)
(setq cd(cdr(assoc 42 data)))
(write-line(strcat(itoa k)“”(rtos(-cd(* e 2))2 2))file)
(close file)
2. 实例展示
以某市的高架桥的某桥墩的弧线变化部分为例,展示处理流程和结果。
该桥墩的所需绘图尺寸数据如图 2所示,保护层厚度为3cm,翻样间隔为10cm。由于桥墩的弧线设计,该部分的某编号箍筋尺寸会随着弧线逐步变化,现展示如何简单、快速、准确的获得变化的尺寸数据。
选择翻样模型为带弧桥墩,绘图和翻样参数输入窗口[8]如图 3所示,将各个参数对应输入后点击确定就获得了所需的翻样结果。
表 1 输出数值结果(单位cm)编号 长度 保护层 1 380 3 2 370.08 3 3 360.62 3 4 351.6 3 5 343.01 3 6 334.86 3 7 327.11 3 8 319.78 3 9 312.84 3 10 306.29 3 11 300.13 3 12 294.35 3 13 288.94 3 14 283.9 3 15 279.23 3 16 274.91 3 17 270.95 3 18 264.07 3 19 261.15 3 20 258.58 3 21 256.34 3 22 254.45 3 23 252.89 3 24 251.67 3 25 250.78 3 26 250.22 3 27 250 3 从上述过程可以看出,用户除了完成选择模型和输入参数外,其余的工作都是由计算机自动完成,省去了人工绘图、翻样和逐线标注的繁琐工作,并且结果的自动化输出也节省了数据抄录的过程,省时,方便,具有较高的实用性。而且,模板是可以重复使用的,在下一次遇到相似结构时可直接调用。
3. 结束语
使用lisp语言进行Autocad二次开发,使得Autocad软件和工作更加贴合,更有效率[9]。并且该语言语法规则简单,灵活且易学,方便不同用户根据自身工作需求来制作自己的程序来实现工作中重复,繁琐工作的自动化。在该程序示例中,用户还可将工作中遇到的其他不同结构制作成模型添加到程序中[10],以便日后遇到相似模型时调用,减少工作量,提高工作效率。
-
表 1 输出数值结果(单位cm)
编号 长度 保护层 1 380 3 2 370.08 3 3 360.62 3 4 351.6 3 5 343.01 3 6 334.86 3 7 327.11 3 8 319.78 3 9 312.84 3 10 306.29 3 11 300.13 3 12 294.35 3 13 288.94 3 14 283.9 3 15 279.23 3 16 274.91 3 17 270.95 3 18 264.07 3 19 261.15 3 20 258.58 3 21 256.34 3 22 254.45 3 23 252.89 3 24 251.67 3 25 250.78 3 26 250.22 3 27 250 3 -
[1] 屠志炜. 基于Visual Lisp的AUTOCAD的二次开发[D]. 吉林大学, 2008. http://cdmd.cnki.com.cn/Article/CDMD-10183-2009052952.htm [2] 吴凯伟, 石玮荃.基于Visual LISP的地铁轨道综合图辅助设计程序开发[J].铁道标准设计, 2017, 61(5):27-31. http://industry.wanfangdata.com.cn/jt/Magazine?magazineId=... [3] 王晓玲.开发AutoCAD实现参数化绘图[J].吉林化工学院学报, 2016, 33(1):31-34. http://www.wenkuxiazai.com/doc/a6b0886e84868762cbaed5b5.html [4] 江明明.LISP编程语言在CAD绘图中的应用[J].北京测绘, 2016, (1):113-115. http://d.wanfangdata.com.cn/Periodical_bjch201601028.aspx [5] 梁芳, 尹守军.基于Auto LISP的参数化绘图技术与实例分析[J].企业技术开发, 2014, 33(24):93-94. http://www.cnki.com.cn/Article/CJFDTOTAL-QYJK201424046.htm [6] 王国岗, 段庆伟, 孙平.一种基于AutoLisp语言快速等分任意曲线的方法[J].山西建筑, 2016, 42(35):257-25. DOI: 10.3969/j.issn.1009-6825.2016.35.142 [7] 郑岘, 卿谆谆, 蒋胜华, 薛卫星.基于AutoLISP的快速标注统计程序在勘测规划成图中的应用[J].科技广场, 2015, (7):49-53. http://www.cnki.com.cn/Article/CJFDTotal-JZSX201533113.htm [8] 孟建, 刘猛.基于Visual LISP的凸轮参数化设计[J].机械传动, 2012, 36(4):61-63. http://www.cqvip.com/QK/92228A/201204/41562538.html [9] 郭亮. AutoCAD二次开发在混凝土结构施工图绘制中的应用[D]. 合肥工业大学, 2007. http://cdmd.cnki.com.cn/Article/CDMD-10359-2008021298.htm [10] 李少辉, 王志远.AutoCAD二次开发技术在矿山工程设计中的应用[J].中国矿山工程, 2017, 46(1):57-60. http://www.cnki.com.cn/Article/CJFDTOTAL-YSKS201701017.htm