




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于ACAD平台的给排水制图程序摘要:目前,专业给排水设计软件包很多,但在具体使用过程中,会遇到设计习惯不同、使用烦琐等问题。笔者在AUTOCAD平台上,用LISP语言编写了一系列程序,大大简化了设计、制图,并且提高了出图效率和设计的准确性。 关键词:计算机绘图 程序 给排水设计 目前,几乎所有的设计院都配备了给排水设计软件包,但是设计人员在使用软件过程中,常常会遇到诸多不便之处。如建筑外框不认,初始化数据输入不直观,数据输入不当时出错,修改不便等等。设计人员或是用鼠标代笔,或是用AutoCAD“硬画”。这种方式出图效率很低,而且图面质量难以保证。 程序设计目的 针对上述软件包使用不便或适应性不强等问题,笔者几年来在这一方面做了一些探索,用AutoLisp成功地开发一套比较完善且易学实用的系列化小程序。此程序的特点在于遵循传统绘图习惯,进行平面化设计的思路,按照传统绘图方式,灵活运用各个程序段,加强人机对话,力求机器的自动生成。 2主要程序介绍 本程序组中包含程序段40余条,分为工具类与专业类,其中主要程序段有: TKLSPTKDCL:图库管理程序。 XXLSP:由平面图生成系统图程序(原图)。 GGLSP:标注给水管道管径并进行分层处理程序。 PG.LSP:标注排水管道管径并进行分层处理程序。 GBLSP:对给水管管径及管段长度计算统计程序。 PBLSP:对排水管管径及管段长度计算统计程序。 ZTLSP:对总体排水管道管径及管段长度进行计算并标注程序。 GDPMLSP:自动生成排水管道剖面并同时标注程序。 GCLLSP:对给排水工程量对照定额进行工程概算程序。 DELSP:调出事先输入的定额程序。 LBLSP:对给排水管管径及管段长度并进行列表处理程序。 3使用方法 本程序是依托建筑或其他专业提供的平面图,按传统手工制图的方法与步骤进行平面设计。笔者把给排水的图元分为直线,多义线,图块(带属性),文字等等。 设计人员在绘制给水平面图时。用PLINE线绘制水平管,绘制给水立管时插入一个带有立管高度属性的图块 。排水平面图的绘制方法与给水相同。绘制其它给排水附件如卫生设备、阀门、消火栓、水嘴等附件均采用不同图块表达,这种作图方式直观、简捷、明快。在各层图面线条完成后,应用GGLSP、PGLSP程序标注其管径。在标注管径的时候,程序对此进行分层分类管理。配合CAD将各层平面设计完成并确认无误后,把各层另存为相应各层系统图图名,此时设计人员可将用图块表达的系统图图元如:水嘴、存水弯、消火栓、甚至标准化的系统图元等插入图中,并将各管段安装高度给出。确认无误后,用XXLSP程序将此图进行图形处理。使之成为具有透视效果的系统透视图,再用JLLSP程序将作平面图时输入的立管高度属性取出,并绘制成给水立管,将此图适当处理后,最后把各层系统图组合起来便成为给水透视图。 绘制排水系统图时,先用程序生成排水立管,在各排水点插入各种存水弯、排水栓等,再用XXLSP程序将平面图进行图形处理,使之成为具有透视效果的系统透视图,最后把各层支管与立管联接好,排水系统图就形成了。 最后,再用CSD命令对图面进行美化,由于采用程序绘制的图元是由PLINE,BLOCK等组成,且是分层,分类放置的。据此,可用LBLSP程序中有关命令,取出图中的类、层、块、点、线等特性,进行归类、计算、列表并生成一个主要材料表,自动列于图中。如果调出事先输入的定额,给出工程特征参数,就可用KSLSP程序中有关命令,计算出一个概算表。材料表、概算表都能自动生成。至于给水总图的绘制,给水图可类似绘出。排水总图绘制水比较复杂。ZTLSP程序中包含了各管段的计算、绘制及标注等工具,并可自动生成管道剖面。其程序可节省绘图时间50。本系列程序如果加载于其他成功软件包之上,功效更加明显。 4 程序举例 限于篇幅,这里仅列其中之一以供同行们参考。 ;本程序对PLKINE,BLOCK,TEXT等图元分别进 ;行旋转与平移处理,达到平面图形的透视效 ;果。程序对LINE,DIM,SOLID等图元进行删 ;除。 (defun c:xx(/xxy k1 k2 k3 stn) (setq ss(ssget)ang(/pi4);选择需要进行旋转与平移处理的对象(实体) (setqy (cadr(nth1 (entseln 选择水平线) ;Y用户选择的旋转基准线 (setq e(ssnamess 0)n0) (setq k1(lista)k2(listb)k3(listc) ;初始化k1k2k3放置实 ;体名的列表,并设“a”“b”“c”为结束标记 (while e ;while 语句开始,对所选项实体进行旋分类处理 (setq st(cdr(assoc 0(entget e) (if (=stLWPOL YLINE)(setq k2 (cons e k2);if 语句开始 (if (or(=stCILCLE)(=STinsert)(=stTEXT);if 语句开始(setq k1(cons e k1) (entdele) ); if 语句结束 ) ;if 语句结束(setq n( =1n)(setqe (ssname ss n ) ;while 语句结果 (setq n0) (if(/=(ntnk2)b)(setq 1(entget(nth n k2)(setq 1 nil)(while 1; while 语句开始 ;对所选项的PLINE线实体进行旋转处理,角度45度(if(/=(cdr(assoc 0 (entget(nth nk2)ABC) ;if语句开始对复合弧线不处理 (progn(setq z(cdr(assoc381) p1(assoc 10 1)la (cdr(assoc 8 1) m(-(length 1)(length(member p11) p2(cdr(nth(+m4)1)p1(cdrp1);p1 起点坐标,p2终点坐标 (setqx1(carp1)x2(car p2)y1(cadrp1) y2(cadr p2)dy1(-y1y)dy2(-y2y) (setq p3 (list(+x1(*(cos ang )dy1)(+y1z(*(-(sin ang)1)dy1) p4(list(+x2(*(cos ang)dy2)(=y2z(*(-(sin ang)1)dy2) (setq 1(subst(cons 380.0)(assoc 381)1) ;修改高度信息 1(subst(cons 10p3)(nth m 1)1) ;修改起点坐标信息 1(subst(cons 10p4)(mth m4)1)1) ;修改终点坐标信息 (entmod 1) );if语句结束(setqn( =1n) (if(/=(nthnk2)b)(setq1 (entget(nth n k2)(setq 1 nil);while语句结束 (setq n0) (if(/=(nt n k1)a)(setq 1(entget(nthn k1)(setq 1 nil) while 1 ;while语句开始,对所选的 ;TEXT、BLOCK、ATTRIBUTE等实 ;体进行旋转及平移处理,角度 ;45度 if(=nil(assoc 111)(setq p1(cdr(assoc 101 ) ;if 语句开始 (if(=0.0(nth 1(assoc 1 1 1)(setq p1(cdr(assoc 101);if 语句开始 (setq p1(cdr(assoc111) );if 语句结束,本语句对文字对齐方式的判断,并提取高度和插入点信息 );if 语句结束,本语句对是否为文字的判断,并提取高度和插入点信息 (setq x1(carp1)y1(cadrp1)z(nth 2p1) (setq dy 1(-y1y) (setq p3(list(=x1(*( cos ang)dy1)(=y1z(*(-(sin ang)1) (if (=nil(assoc 111);if 语句开始 (progn(setq 1(subst(cons 10 p3)(assoc 101)1) (entmod 1)(if(=0.0(nth1(assoc 111);if 语句开始(progn(setq 1(subst(cons 10p3)(assoc 101)1)(entmod 1) );end of PROGN(progn(setq1(subst(cons11p3)(assoc111)1)(entmod 1) );end of PROGN );if语名结束,本语句对文字对齐方式的判断,并修改高度和插入点信息 );if 语名结束,本语句对是否为文字的判断,并修改高度和插入点信息 (setq name(cdr(assoc 01) (if(=(cdr(assoc661)1) ;if 语句开始,是否为带属性的块 (progn(setq11(entget(entnext(cdr(assoc-11) (setq p1(cdr(assoc1111) (setqx1(car p1)y1(cadr p1) (setq p3(list(+x1(*(cos ang)dy1)(+y1z(*(-(sin ang)1)dy1) (setq 11(subst(cons11p3)(assoc11 11)11) (entmod11) ) ;if语句结束,修改中属性的插入点信息 (setq ang(/(cdr(assoc 501)2) (setq1(subst(cons 50 ang)(assoc 501)1) (entmod1); 通过修改块的插入角度信息进行旋转 (setq n(+1n) (if(/=(nth nk1)a)(setq1(entget(nth n k 1)(setq 1 nil) ) ;while语句结束 (setq n 0) (while(n (sslengthss); while 语句开始,对名为“ZXR-2035”的块 ;进行高度平移处理 (setq stl(entget(ssname ss n ) (setq pt1(cdr(assoc 10 stl) (if(/=ZXR-2035(cdr(assoc 2(entget(ssname ss n); i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 骨科危重护理
- 硬盘陈列知识培训总结课件
- 焊工考试题模拟题及答案
- 植被火险评估-洞察与解读
- 血管内导管相关性血流感染预防与诊治指南2025年
- 海南近年会考试卷及答案
- 海口历年中考试题及答案
- 2025年康复医学治疗技术主任医师试题及答案
- 2025年行政强制法知识竞赛抢答题库(附答案)
- 2025年度凯里市继续教育公需科目考试题(含答案)
- 2024年山东济南轨道交通集团有限公司招聘笔试参考题库含答案解析
- 仿生机器鱼行业规模分析
- DZ-T 0270-2014地下水监测井建设规范
- 中英文员工评估表
- β内酰胺类抗菌药物皮肤试验指导原则(2021版)
- 小学语文论文:浅谈小学六年级语文有效教学
- 学生资助政策宣传主题班会PPT
- 大一统专题复习-高中历史教学资料
- YS/T 1018-2015铼粒
- 【高等数学练习题】沈阳大学专升本自考真题汇总(附答案解析)
- 合作项目管理办法
评论
0/150
提交评论