CAD二次开发在工程检测中的应用
2014-04-29刘晓光
刘晓光
摘 要 现代城市建设突飞猛进,大量城市建筑建成投入使用,然而城市建筑在使用过程中经常出现不同程度的裂缝问题。面对城市建筑裂缝,是放弃使用还是重新建造成为人们关注的焦点,这就需要专业机构对裂缝进行检测及鉴定。而通过CAD二次开发程序进行工程检测能够有效提高工作效率,提供参考数据,从而为工程决策提供依据。本文就CAD二次开发在工程检测中的应用进行探究。
关键词 CAD软件 二次开发 工程检测 裂缝检测
中图分类号:TP391.7 文献标识码:A
1 AutoCAD二次开发
AutoCAD软件是由Autodesk公司推出的一款功能强大的供用户从事设计和绘制图形的专业软件,其能够为用户提供诸多可供二次开发的平台,其二次开发主要内容包括:
(1)编写各种Lisp文件从而实现某些具有特殊用户需要的命令,同时编写dcl配梁文件,通过对话框形式完成交互式使用所编写命令;
(2)定制针对不同项目的系统菜单,通过编写MNU文件,完成对不同工作项目的不同操作界面设置,并且可以运用交互式的输入方式调用CAD系统原有菜单,以此建立符合自身需求的工作空间;
(3)修改系统原有Lisp文件,也可通过交互式方法在系统对话框中修改某些系统设置路径,这样再次启动CAD时,即可在原有CAD功能基础上加入新的初始化设置;
(4)根据用户自身需要编写相关程序与CAD进行对接,实现CAD二次开发任务。
2 AutoCAD二次开发工具
AutoCAD二次开发工具包括Visual-Lisp,VBA,ObjectARX,.NETAPI等很多,以上开发工具各具特点,具体使用时可结合需求情况灵活应用不同开发工具进行二次开发,本文选择VBA和VisualLisp两种开发工具进行CAD二次开发。
2.1 VisualLisp开发工具
VisualLisp是完整的集成开发环境,其是为加速AutoLisp程序开发而设计的软件开发工具,该环境下能够快捷、高效地实现CAD二次开发,编译开发后程序,能够得到运行效率高、代码紧凑的应用程序,并且能够同时良好保护源代码。VisualLisp既能够兼容AutoLisp程序,又能够扩充许多新功能,通过这些功能能够各种实现工程计算分析、定义新命令、驱动对话框、自动绘制复杂图像,并且为CAD扩充更多的智能化、参数化功能。
2.2 VBA(VisualBasicforApplications)开发工具
CAD中集成了VBA的编辑器,能够为开发人员提供一种CAD二次开发的选择,并且能够为用户访问CAD中丰富的技术框架开辟了新的路径,VBA与AuotCAD通过强大的ActiveX实现结合,既能够控制CAD数据库,又能够促使CAD与Word,Excel等外部程序实现数据交换功能,完成CAD二次开发工作。
3 AutoCAD二次开发技术
以某单位建设结构检测部为例,其裂缝检测及报告生成过程是:首先通过DJCK-2裂缝测宽仪,现场对裂缝的宽度进行读数并标出,同时根据房屋的建筑施工图图纸,在现场记录表上确定该裂缝所在轴线位置,绘制出裂缝走势和在关键位置标出裂缝位置,现场检测完成以后,利用计算机CAD软件将现场手绘图片再绘制一遍,该绘制过程通常需大量精力,通常一个项目有几百户人家,会有大量现场检测的纸质原始记录,而这些记录检测结束后需要大量时间进行整理和电脑输入,此过程相当于重新做一次整个工程,特别是因温度变化等引发的表面裂缝较大,其裂缝走势与位置并非像多数结构裂缝那样拥有大致形式和固定位置,而是千变万化,因此绘制检测报告时异常繁琐复杂,后期数据处理和报告生成工作量极大,工作效率极低。加之数据量巨大,极易产生输入错误,因此检测报告完成以后,仍需进行认真复核报告,工作难度较大。
4 AutoCAD二次开发在工程检测中的应用
4.1 AutoCAD二次开发特点
该软件基于AutoCAD平台,通过Win8操作系统提供的触摸功能,运用该软件将不再使用过去现场纸质记录的手段,如此既能够节省大量整理工作,又能够在检测数据记录与处理时避免人为因素干扰,降低生成检告过程中可能产生的错误,有效提高生产效率。该软件特点包括以下几点:
(1)样板化特点。该软件提供有检测现场能够直接使用CAD图形样板,采用该样板能够节省检测现场对初始化CAD后对图层、文字样式、标注样式等内容设置操作,现场检测人员可以直接进行现场记录绘制。
(2)参数化特点。使用该软件绘制检测报告中的裂缝示意图时,针对使用到的常用构件可进行面向对象的参数化绘制,如此能够极大缩短绘制时间,简化现场绘制过程,提高检测过程效率。
(3)可视化特点。针对常用构件选择,该软件采用可视化方法,通过幻灯片形式把技术人员现场绘制时所用的构件类型直观形象地展示在用户面前,让用户一目了然可以选择到自己所需要的构件,加快绘图速度,提高绘图准确率。
(4)模块化特点。该软件按照现场检测过程,把软件界面进行友好界面设计,从而实现软件使用更加方便人机交互过程,且优化了CAD常用快捷键,使用时可根据自身需要实现快速绘制。同时对检测步骤进行了模块化分类与整理,且进行了标准化管理,使得原始数据能够有效而快速地生成最终检测报告,而每次使用到的新增模块都能够有效地进行记录,从而在使用过程中不断扩充用到的构件库,为原始数据的积累提供基础和保证。
4.2 工程检测实例分析
(1)定制工作空间。使用VBA菜单定制语言,针对裂缝检测现场工作流程需要,重新定制AutoCAD2014的工作空间,其中菜单新增了:初始化、构件、配件、零件、裂缝等菜单选项,在工具按钮中添加了“工作环境初始化”“绘制裂缝”“标注裂缝”三个按钮,使得工程检测人员能够在现场快速绘制所需要的裂缝图像。
(2)使用AutoLisp和dcl配梁语言编制“标注裂缝”命令。AutoCAD2014允许用户自己定制一个dcl配梁对话框,该操作是目前最为流行的人机交互,能够为使用者提供可视化环境,让操作更加快捷。本工程中,在标注裂缝时,需要人机交互输入裂缝宽度并且标注在指定位置上。具体编制代码如下:
f:dialog{label="裂缝参数";edit_box{label="裂缝宽度";key="kd";edit_width=20;ok_cancel}
然而,使用dcl配梁语言编写的对话框只是简单的界面描述,用户并不能单独依靠它完成显示和指令。必须利用AutoLisp程序驱动才能实现用户希望它达到的功能。AutoLisp采用了与CommonLisp相近的语法及习惯约定,并吸收了Lisp语言的主要函数,同时增加了针对AutoCAD特点的许多功能,因此Lisp语言编程能够十分灵活的在AutoCAD的平台上很好的运用。AutoLisp是以*lsp为扩展名的文本文件,源程序的编辑过程是:首先运行AutoCAD然后加载已编辑好的Lisp程序最后调用程序并运行函数。在本工程中,实现标注裂缝的Lisp程序代码如下:
defunc:lf(/dcl_idpt1pt2pt3kd)
(setqdcl_id(load_dialog"lf.dcl"))
(if(not(new_dialog"lf"dcl_id))(exit))
(if(=kdnil)(setqkd(rtos0.0222)))
(set_tile"kd""0.02")
(action_tile"kd""(setqkd(atofvalue))")
(action_tile"accept""(done_dialog)")
(action_tile"cancel""(exit)(done_dialog)")
(start_dialog)
(unload_dialogdcl_id)
(setqpt1(getpoint"选择标注起点:"))
(setqpt2(getpoint"选择标注终点:"))
(command"line"pt1pt2"")
(setqpt3(getpoint"选择标注位置:"))
(setqkd(rtoskd22))
(command"text"pt3350""kd)
5结语
总之,面对城市建筑裂缝,是放弃使用还是重新建造成为人们关注的焦点,这就需要专业机构对裂缝进行检测及鉴定。而通过CAD二次开发程序进行工程检测能够有效提高工作效率,提供参考数据,从而为工程决策提供依据。本文对CAD的二次开发插件主要运用在建筑物表面裂缝的现场检测时的原始记录采集与绘制工作,利用该软件能够让工程技术人员在房屋安全监测鉴定现场,通过平面电脑快速记录与绘制检测的原始数据,能够让过去需要大量时间进行二次输入的过程实现现场直接操作完成,快速生成检测报告,全面提高工作效率。
参考文献
[1] 郑军红.AutoCAD二次开发语言及开发工具应用分析[J].软件导刊,2006.05.
[2] 葛丽玮.AutoCAD二次开发技术在堤防设计中的应用[D].哈尔滨理工大学,2007.
[3] 吴成军.简述AutoCAD 2004二次开发工具[J].科技信息,2009.31.
[4] 李艳丽.用Autolisp对AutoCAD进行实用性二次开发[J].福建电脑,2008.09.
[5] 吕家平,张新梅,李响,王拴虎.AutoCAD五种二次开发工具及其优缺点[J].兵工自动化,2000.04.
[6] 陈中治,王敏.应用C~#进行AutoCAD二次开发[A].中国公路学会计算机应用分会2004年年会学术论文集[C],2004.
[7] 周建康,王辉.AutoCAD二次开发方式的比较分析与研究[A].河南省土木建筑学会2010年学术大会论文集[C],2010.
[8] 徐文凯,王学武,孙岳.AutoCAD二次开发在地基处理中的应用[J].山西建筑,2008.34.
[9] 贾淑萍,谢安俊.面向中小企业的化工工艺流程及仪表CAD软件的开发[J].科技信息(科学教研),2008.19.
[10] 孙慧翔,虞世鸣,汪雯雍.基于AutoCAD平台的参数化设计的研究[J].现代机械,2005.03.