用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心编程技巧计算机应用

基于ACAD平台的给排水制图程序

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-01-10 11:52:27
【本文由PB创新网为您整理】

摘要:目前,专业给排水设计软件包很多,但在具体使用过程中,会遇到设计习惯不同、使用烦琐等问题。笔者在AUTOCAD平台上,用LISP语言编写了一系列程序,大大简化了设计、制图,并且提高了出图效率和设计的准确性。

关键词:计算机绘图 程序 给排水设计

  目前,几乎所有的设计院都配备了给排水设计包,但是设计人员在使用过程中,常常会遇到诸多不便之处。如建筑外框不认,初始化数据输入不直观,数据输入不当时出错,修改不便等等。设计人员或是用鼠标代笔,或是用AutoCAD“硬画”。这种方式出图效率很低,而且图面质量难以保证。

1 程序设计目的

  针对上述包使用不便或适应性不强等问题,笔者几年来在这一方面做了一些探索,用AutoLisp成功地开发一套比较完善且易学实用的系列化小程序。此程序的特点在于遵循传统绘图习惯,进行平面化设计的思路,按照传统绘图方式,灵活运用各个程序段,加强人机对话,力求机器的自动生成。

2 主要程序介绍

  本程序组中包含程序段40余条,分为工具类与专业类,其中主要程序段有:
  TK·LSP&TK·DCL:图库管理程序。
  XX·LSP:由平面图生成系统图程序(原图)。
  GG·LSP:标注道管径并进行分层处理程序。
  PG.LSP:标注排水管道管径并进行分层处理程序。
  GB·LSP:对管径及管段长度计算统计程序。
  PB·LSP:对排水管管径及管段长度计算统计程序。
  ZT·LSP:对总体排水管道管径及管段长度进行计算并标注程序。
  GDPM·LSP:自动生成排水管道剖面并同时标注程序。
  GCL·LSP:对给排水工程量对照定额进行工程概算程序。
  DE·LSP:调出事先输入的定额程序。
  LB·LSP:对给排水管管径及管段长度并进行列表处理程序。

3 使用方法

  本程序是依托建筑或其他专业提供的平面图,按传统手工制图的方法与步骤进行平面设计。笔者把给排水的图元分为直线,多义线,(带属性),文字等等。
  设计人员在绘制给水平面图时。用PLINE线绘制水平管,绘制给水立管时插入一个带有立管高度属性的 。排水平面图的绘制方法与给水相同。绘制其它给排水附件如卫生设备、阀门、消火栓、水嘴等附件均采用不同表达,这种作图方式直观、简捷、明快。在各层图面线条完成后,应用GG·LSP、PG·LSP程序标注其管径。在标注管径的时候,程序对此进行分层分类管理。配合CAD将各层平面设计完成并确认无误后,把各层另存为相应各层系统图图名,此时设计人员可将用表达的系统图图元如:水嘴、存水弯、消火栓、甚至标准化的系统图元等插入图中,并将各管段安装高度给出。确认无误后,用XX·LSP程序将此图进行图形处理。使之成为具有透视效果的系统透视图,再用JL·LSP程序将作平面图时输入的立管高度属性取出,并绘制成给水立管,将此图适当处理后,最后把各层系统图组合起来便成为给水透视图。
  绘制排水系统图时,先用LG·LSP程序生成排水立管,在各排水点插入各种存水弯、排水栓等,再用XX·LSP程序将平面图进行图形处理,使之成为具有透视效果的系统透视图,最后把各层支管与立管联接好,排水系统图就形成了。
  最后,再用CSD命令对图面进行美化,由于采用程序绘制的图元是由PLINE,BLOCK等组成,且是分层,分类放置的。据此,可用LB·LSP程序中有关命令,取出图中的类、层、块、点、线等特性,进行归类、计算、列表并生成一个主要材料表,自动列于图中。如果调出事先输入的定额,给出工程特征参数,就可用KS·LSP程序中有关命令,计算出一个概算表。材料表、概算表都能自动生成。至于给水总图的绘制,给水图可类似绘出。排水总图绘制水比较复杂。ZT·LSP程序中包含了各管段的计算、绘制及标注等工具,并可自动生成管道剖面。其程序可节省绘图时间50%。本系列程序如果加载于其他成功 包之上,功效更加明显。

4 程序举例

   限于篇幅,这里仅列其中之一以供同行们参考。
   ;本程序对PLKINE,BLOCK,TEXT等图元分别进
   ;行旋转与平移处理,达到平面图形的透视效
   ;果。程序对LINE,DIM,SOLID等图元进行删
   ;除。
   (defun c:xx(/xxy k1 k2 k3 stn)
   (setq ss(ssget)ang(/pi4);选择需要进行旋转与平移处理的对象(实体)
   (setqy (cadr(nth1 (entsel″////n 选择水平线″))))
   ;Y用户选择的旋转基准线
   (setq e(ssnamess 0)n0)
   (setq k1(list″a″)k2(list″b″)k3(list″c″))
   ;初始化k1k2k3放置实
   ;体名的列表,并设“a”“b”“c”为结束标记
   (while e
   ;while 语句开始,对所选项实体进行旋分类处理
   (setq st(cdr(assoc 0(entget e))))
   (if (=st″LWPOL YLINE″)(setq k2 (cons e k2))
  ;if 语句开始
       (if (or(=st″CILCLE″)(=ST″insert/")(=st/"TEXT);if 语句开始
(setq k1(cons e k1))
  (entdele)
     ); if 语句结束
   )   ;if 语句结束
(setq n( =1n))
(setqe

[1] [2]  下一页

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:20,593.75000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号