VisualLISP语言在供水工程CAD制图中的应用

来源 :科技信息·中旬刊 | 被引量 : 0次 | 上传用户:bb790858108
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:VisualLISP作为AutoCAD内嵌的计算机语言,是进行AutoCAD二次开发的重要工具,利用VisualLISP编写具有针对性的实用软件,可替代设计人员完成大量重复性工作,达到提高制图效率的目的。在简述AutoCAD各种二次开发接口的基础上,着重介绍了如何利用VisualLISP扩展AutoCAD的功能。
  关键词:VisualLISP;AutoCAD;二次开发
  VisualLISP language applications in water supply engineering CAD drawing
  Su Ya-nan
  (Tianjin Municipal Water-conservancy Survey and Design Institute,Tianjin 300204,China)
  Abstract:VisualLISP as an embedded AutoCAD computer language,is an important tool for AutoCAD second development,VisualLISP prepared by the utility software,can replace designers to complete a large number of repetitive work,to improve drawing efficiency. Based on introduction of AutoCAD secondary development interface,mainly introduces how to use VisualLISP to extend the function of AutoCAD
  Keywords:VisualLISP AutoCAD Secondary development
  AutoCAD是供水工程制图中普遍采用的计算机辅助设计软件,该软件使得工程绘图的速度和质量都的得到了很大的提升。但是供水工程制图中存在大量的重复性工作,例如管线坐标、高程、转点、管材及桩号等信息的标注。AutoCAD对于上述重复性工作来说,自动化程度较低,使得工程勘查设计人员将大量的时间都花费在繁琐的绘图中。针对以上问题,虽然很多软件厂商也开发了相应的专业软件,但由于这些软件要考虑各设计单位的通用性,很难满足工程制图中的一些具体要求,使用具有局限性。因此设计人员如能掌握AutoCAD二次开发软件,编写具有针对性的实用软件,可极大的提高其绘图效率。
  目前AutoCAD系统为用户提供了VisualLISP、AutoCAD Development System(C)、ObjectARX(C++)及 VBA等多種二次开发接口,其中VisualLISP作为默认的代码编辑工具在AutoCAD2000中已经被完整地集成到系统中,开发者可以直接使用AutoCAD中的对象和反应器,进行底层的开发。通过有色代码编辑器和完善的调试工具,使开发人员很容易创建和分析LISP程序的运行情况。本文主要介绍利用VisualLISP对AutoCAD进行二次开发的过程。
  AutoCAD二次开发主要是根据供水工程制图的流程,利用VisualLISP编写AutoCAD绘图命令,自动完成图纸数据的提取、计算及输出,最大程度的实现自动化制图。具体内容如下:
  1、子模块功能规划
  根据供水工程一般设计过程,需首先完成平面布置及初步管材划分,而后根据平面布置成果进行纵断面布置,并进一步细化管材划分,待平面及纵断面布置全部完成后,分别进行相应标注工作。
  其中,平面图中需进行转点坐标、转点桩号、转角角度、整公里桩号及管材标注。纵断图需进行地面高程、管中心线高程、管材分段桩号、管材分段长度、转角编号、转角桩号及闸阀的标注。根据以上制图内容可划分为6个子模块,各模块功能分述如下:
  (1)平面图转点标注模块
  该模块主要完成对平面图中各转点进行编号,同时从图中读取各转点坐标,根据转点坐标完成桩号及转角角度计算,在完成上述工作后,在平面图中自动完成标注工作。
  (2)平面图管材标注模块
  该模块主要根据管材变化情况自动完成起点、终点桩号的计算和标注,同时根据选定的线型完成管线及接口的绘制。
  (3)平面图整桩号标注模块
  该模块主要根据管道布置自动完成整桩号点的坐标计算,并进行桩号标注。
  (4)纵断面图管材标注模块
  该模块根据平面图的管材信息自动完成纵断面图管材的划分,并进行划分点的地面高程、管中心线高程、桩号及划分段长度的计算与标注。
  (5)纵断面图转点标注模块
  该模块根据平面图的转点信息,自动完成纵断面图的转点编号及桩号的标注。
  (6)纵断面图闸阀标注模块
  该模块根据用户确定的闸阀位置,自动在纵断面图中完成闸阀的绘制,并完成闸阀的编号及桩号标注。
  2、子模块功能实现
  在实现模块功能之前,应首先完成各个模块的程序流程图,现以整桩号标注模块为例说明功能实现的过程。该模块的流程见图1,主程序部分源代码及注释如下:
  首先通过setq语句对本模块涉及的输出精度、字号及输出位置等参数进行初始化。
  而后通过命令行文本提示用户在平面图中选取多段线,并输入起始桩号及终止桩号。通过entget语句得到相应多段线图元;通过length语句得到该图元所包含的折点数。
  (setq pt_lst(mapcar 'cdr(vl-remove-if-not '(lambda(x)(=(car x)10))(entget en))));   (setq number(length pt_lst));
  判断终止桩号是否在线路范围内,如超出则通过fix语句将线路末端的整数桩号做为终止桩号。
  (while(> pd_number 1)
  (setq now_cd(sqrt(+(expt x_cd 2)(expt y_cd 2))))
  (setq q_zh(+ q_zh now_cd))
  (setq pd_number(1- pd_number))
  (setq pd_lst(cdr pd_lst)))
  (if(> end_zh q_zh)(setq end_zh(*(fix(/ q_zh 500))500)));
  计算各折点距离,找到首个整数桩号位置,并进行相应标注。
  ;如果当前折点的累积长度小于整数桩号则继续寻找下一个折点
  (if(< q_zh begin_zh)
  (progn(setq now_cd(sqrt(+(expt x_cd 2)(expt y_cd 2))))
  (setq q_zh(+ q_zh now_cd)))
  ;如果当前折点的累积长度大于整数桩号则计算整数桩号点坐标,并对输出结果进行格式化后,通过command语句调用AutoCAD命令进行标注。在进行标注前需使用setvar命令设置AutoCAD系统变量值来关闭绘图捕捉。
  ;计算坐标
  (progn(setq xl(atan(- point_y point_old_y)(- point_x point_old_x)))
  (setq biaodian_x(+ point_x(*(cos xl)(- begin_zh q_zh))))
  (setq biaodian_y(+ point_y(*(sin xl)(- begin_zh q_zh))))
  (if(= weizhi 1)(setq line_xl(- xl 1.5708))(setq line_xl(+ xl 1.5708))) (下转第页)
  (上接第页)
  ;格式化输出结果
  (setq zh_int(fix(/ begin_zh 1000)))
  (setq zh_float(- begin_zh(* zh_int 1000)))
  (if(>= zh_float 100)(setq fh "+"))
  (if(and(< zh_float 100)(>= zh_float 10))(setq fh "+0"))
  (if(and(< zh_float 10)(>= zh_float 0))(setq fh "+00"))
  ;關闭绘图捕捉后调用CAD命令进行标注
  (setvar "osmode"(logior(getvar "osmode")16384));
  (command "line" line1 line2 "")
  (command "text" text_zb heg jd out_zh)
  将源代码保存为LSP文件后,在AutoCAD环境中调入上述文件即可根据设计人员确定的管线布置,完成特定区间的整桩号标注。由于篇幅所限,对其他模块流程不再介绍。
  3工程实例
  在南水北调中线天津市内配套宁汉供水工程中设计人员使用本套VisualLISP工程制图插件进行辅助制图。该工程管线长度约50km,采用双排管道输水。共需绘制管道平面布置图及管道纵断面图约100张,图纸中涉及大量数据标注工作。在使用过程中根据设计人员的反馈意见,对部分功能进行了补充及调整。主要包括以下几点:
  (1)为便于对图纸内容进行管理,通过调用AutoCAD中layer命令,将各插件的输出成果分别绘制在不同的图层内。
  (2)由于平面图中的线路及纵断面图中的地面线与管中心线均为多段线,设计人员在工程布置过程中需经常对上述多段线进行分断及合并,由此造成多段线方向与线路方向不一致的问题,为此另外编写了可对多段线方向进行调整的程序。
  (3)在设计过程中,经常需要测量线路中特定点的桩号及特定桩号的位置,为此分别编写了平面图及纵断面图单点标注程序,以满足需要。
  通过使用本套制图插件,极大提高了设计人员的制图效率。由于本套插件可实现数据自动采集、计算及输出,因此基本避免了图纸中出现计算及量测错误的可能性。由于本套插件编写时间较仓促,故未进行图形化交互设计,且与AutoCAD结合程度较低,在今后可进一步优化人机交互界面,使程序应用更加便捷。
  4、结语
  利用VisualLISP语言,设计人员可根据自身需要开发出有针对性的插件,如本次编写过程中除上述主功能模块外,还根据实际情况编写了多段线方向调整、平面图单点标注及纵断面单点标注等辅助性模块,进一步提高了制图效率。同时,VisualLISP语言还可形成图形化界面,使用户得到更友好的人机交互。
  由于VisualLISP是一种嵌于AutoCAD内部的计算机语言,具备与其他高级语言基本相同的结构与功能。同时,通过利用与AutoCAD之间良好的通讯能力,使其具有其他高级语言所没有的制图能力。应用VisualLISP对AutoCAD进行二次开发,可大大提高绘图的效率,是值得设计人员深入学习和掌握的一种计算机语言。   摘要:VisualLISP作为AutoCAD内嵌的计算机语言,是进行AutoCAD二次开发的重要工具,利用VisualLISP编写具有针对性的实用软件,可替代设计人员完成大量重复性工作,达到提高制图效率的目的。在简述AutoCAD各种二次开发接口的基础上,着重介绍了如何利用VisualLISP扩展AutoCAD的功能。
  关键词:VisualLISP;AutoCAD;二次开发
  VisualLISP language applications in water supply engineering CAD drawing
  Su Ya-nan
  (Tianjin Municipal Water-conservancy Survey and Design Institute,Tianjin 300204,China)
  Abstract:VisualLISP as an embedded AutoCAD computer language,is an important tool for AutoCAD second development,VisualLISP prepared by the utility software,can replace designers to complete a large number of repetitive work,to improve drawing efficiency. Based on introduction of AutoCAD secondary development interface,mainly introduces how to use VisualLISP to extend the function of AutoCAD
  Keywords:VisualLISP AutoCAD Secondary development
  AutoCAD是供水工程制图中普遍采用的计算机辅助设计软件,该软件使得工程绘图的速度和质量都的得到了很大的提升。但是供水工程制图中存在大量的重复性工作,例如管线坐标、高程、转点、管材及桩号等信息的标注。AutoCAD对于上述重复性工作来说,自动化程度较低,使得工程勘查设计人员将大量的时间都花费在繁琐的绘图中。针对以上问题,虽然很多软件厂商也开发了相应的专业软件,但由于这些软件要考虑各设计单位的通用性,很难满足工程制图中的一些具体要求,使用具有局限性。因此设计人员如能掌握AutoCAD二次开发软件,编写具有针对性的实用软件,可极大的提高其绘图效率。
  目前AutoCAD系统为用户提供了VisualLISP、AutoCAD Development System(C)、ObjectARX(C++)及 VBA等多種二次开发接口,其中VisualLISP作为默认的代码编辑工具在AutoCAD2000中已经被完整地集成到系统中,开发者可以直接使用AutoCAD中的对象和反应器,进行底层的开发。通过有色代码编辑器和完善的调试工具,使开发人员很容易创建和分析LISP程序的运行情况。本文主要介绍利用VisualLISP对AutoCAD进行二次开发的过程。
  AutoCAD二次开发主要是根据供水工程制图的流程,利用VisualLISP编写AutoCAD绘图命令,自动完成图纸数据的提取、计算及输出,最大程度的实现自动化制图。具体内容如下:
  1、子模块功能规划
  根据供水工程一般设计过程,需首先完成平面布置及初步管材划分,而后根据平面布置成果进行纵断面布置,并进一步细化管材划分,待平面及纵断面布置全部完成后,分别进行相应标注工作。
  其中,平面图中需进行转点坐标、转点桩号、转角角度、整公里桩号及管材标注。纵断图需进行地面高程、管中心线高程、管材分段桩号、管材分段长度、转角编号、转角桩号及闸阀的标注。根据以上制图内容可划分为6个子模块,各模块功能分述如下:
  (1)平面图转点标注模块
  该模块主要完成对平面图中各转点进行编号,同时从图中读取各转点坐标,根据转点坐标完成桩号及转角角度计算,在完成上述工作后,在平面图中自动完成标注工作。
  (2)平面图管材标注模块
  该模块主要根据管材变化情况自动完成起点、终点桩号的计算和标注,同时根据选定的线型完成管线及接口的绘制。
  (3)平面图整桩号标注模块
  该模块主要根据管道布置自动完成整桩号点的坐标计算,并进行桩号标注。
  (4)纵断面图管材标注模块
  该模块根据平面图的管材信息自动完成纵断面图管材的划分,并进行划分点的地面高程、管中心线高程、桩号及划分段长度的计算与标注。
  (5)纵断面图转点标注模块
  该模块根据平面图的转点信息,自动完成纵断面图的转点编号及桩号的标注。
  (6)纵断面图闸阀标注模块
  该模块根据用户确定的闸阀位置,自动在纵断面图中完成闸阀的绘制,并完成闸阀的编号及桩号标注。
  2、子模块功能实现
  在实现模块功能之前,应首先完成各个模块的程序流程图,现以整桩号标注模块为例说明功能实现的过程。该模块的流程见图1,主程序部分源代码及注释如下:
  首先通过setq语句对本模块涉及的输出精度、字号及输出位置等参数进行初始化。
  而后通过命令行文本提示用户在平面图中选取多段线,并输入起始桩号及终止桩号。通过entget语句得到相应多段线图元;通过length语句得到该图元所包含的折点数。
  (setq pt_lst(mapcar 'cdr(vl-remove-if-not '(lambda(x)(=(car x)10))(entget en))));
其他文献
摘要:伴随经济的飞速发展与科学技术的不断进步,房地产事业处于蓬勃的发展趋势中,并应获得房屋建筑人员的高度重视,在房屋建筑质量获得保障的情况下,建筑行业才能获得合理性的发展,使人民的生命健康获得良好性的保障。为了提高施工过程的质量、提高其在建筑市场中的地位,企业可以通过提高施工过程的管理水平来对施工质量进行提高。所以现在房屋建筑施工质量已经成为所有人共同关注的话题,本文对房屋建筑工程管理与施工质量控
期刊
摘要:随着汽车行业的高速发展,其电气控制系统的发展也在逐渐加快,各种控制系统的更新换代促进了我国汽车行业的发展。在该文中介绍的是CAN总线为基础的汽车电气控制系统,通过该系统的应用能够将企业的控制信号转变为信息流,然后通过分布式的控制模式来对汽车的电气控制系统进行更加高效的控制,这种控制模式打破了传统的汽车电气控制系统单一线束限制,保证了汽车电气控制系统在使用的过程中具有更高的利用率。  关键词:
期刊
摘要:随着我国经济的快速发展,建筑行业也出现了空前的繁荣景象,人们对建筑工程质量的要求也越来越高,这就需要建筑行业不断完善自身管理能力,从而更好的保障工程质量。同时,随着建筑工程企业的不断增加,市场竞争愈发激烈,如果建筑企业想在这种市场情况下站稳脚跟,就必须提高建筑产品质量,并且提高对建筑工程管理各个项目的重视程度,通过实现项目管理法,能够更好的保证建筑工程项目的管理得到完善,也是保证建筑质量,提
期刊
随着公路管理体制改革深入推进,公路部门部分职工价值观念因环境变化出现多样化的局面。在新时代下,广西壮族自治区公路管理局不断深化党政建设,特别是机关单位改变传统的、常规的思想政治工作,开拓创新,但仍然面临着一些问题需要改进。本文从机关单位思想政治工作切入,分析新时代机关单位思想政治工作面临的问题,并提出改进对策。  一、新形势下机关单位思想政治工作面临的问题  (一)局机关职工思想建设有待加强。20
期刊
摘要:随着采油时间和采油次数的不断增加,由于石油是不可再生资源,因此在不断的开采下油层的存储量也在不断地下降,加上后期的原油粘度增加,使得石油的开采效率不断的下降。为了开发更多的石油区域,将地下的石油大规模的开采起来,不少的石油企业开发了采油注水技术,在开发油层中注水,从而达到油层间压力增加,降低原油的粘稠度,增加石油的开采效率。本文主要是对当前的采油注水技术进行分析研究,其目的在于提高技术的开采
期刊
摘要:为了保证港口工程在其建造中能有良好的安全性,應认识到风险辨识技术对于港口建造的重要性,并能结合港口工程建造规划以及风险辨识技术应用特点,制定科学的港口工程风险辨识技术应用方案。本文就港口工程建造当中的风险辨识技术应用进行了分析。  关键词:风险辨识;港口工程;建设;应用;安全管理  由于港口工程建设环境较为特殊、施工环节要求较多,因此导致港口工程在其建设中带有一定的危险性。需要港口工程建设单
期刊
摘要:燃气管道的规划设计是城市建设中一个重要环节,也是一个十分重要又造福千家万户的大工程。我们在规划设计阶段必须结合管道的实际运行情况,施工现场条件等多方面的因素综合考虑。本文从城市燃气规划设计的角度出发,为了既满足安全稳定供气,又平衡各地区用厂的正常运行工况,并满足各类事故工况。对城市燃气管道规划设计,特别是燃气管道暗埋中存在的问题进行了相关的分析。  关键词:燃气工程;气源;供气方式  随着沿
期刊
摘要:岩气作为一种重要的非常规能源,具有低孔、低渗特征。通过与美国页岩气成藏地质条件的对比研究后发现,我国页岩气资源丰富,前景广阔,但尚处于起步阶段。因此,应借鉴北美地区页岩气储层特点和开发技术,加快技术研发和应用力度,尽快形成和配套适应我国页岩气压裂技术应用的基础理论与技术系列。  针对低孔隙度、低渗透-特低渗透储层的缝网压裂技术,完善了缝网压裂的概念。分析了不同类型的储层形成缝网的力学条件,研
期刊
摘要:底盘是汽车的重要组成部分,了解汽车底盘的构造是做好汽车做好汽车底盘维修以及汽车保养的重要手段。汽车底盘在部件组成上主要分为传动系、行驶系、转向系和制动系。这几个系统对汽车的正常行驶以及安全性都产生了重要的影响。鉴于汽车底盘的重要性,我们应当对汽车底盘的构造有深入的了解,并以此为基剑,做好汽车底盘的维修和保养,保证汽车底盘的维修能够取得积极效果。  关键词:汽车底盘;维修;技术分析  1导言 
期刊
摘要:随着科学技术的不断发展,油田开采的领域也在不断的扩大,从一点的陆地到还要,再到现在的低渗透油田的开采区域。在这不断的发展之中,油田的开采技术也在不断的开发和研究,油田的低滲透油田注水工艺作为油田开采的主要技术之一,它有利于解决在油田开采过程中遇到的相关问题,低渗透油田注水工艺有效的解决了是有开采中的难题,给石油的开采带来了石油企业带来了经济效益。本文主要介绍低渗透油田注水工艺在油田开采中的实
期刊