久久久久久性生活|欧美二区亚洲一区|欧美婷婷丁香97|五月丁香婷婷精品|一本无码AAAA|亚洲中文免费在线播放|青青草原在线伊人|青草草在线视频永久免费|色婷婷久久色丁香色|黄色三级在线观看

首頁> 資源> 論文>正文

基于ACAD平臺的給排水制圖程序

論文類型 基礎(chǔ)研究 發(fā)表日期 2000-12-01
來源 《工業(yè)用水與廢水》2000年第6期
作者 張顯如,毋建軍,楊莼
關(guān)鍵詞 計(jì)算機(jī) 計(jì)算機(jī)繪圖 程序 給排水設(shè)計(jì)
摘要 目前,專業(yè)給排水設(shè)計(jì)軟件包很多,但在具體使用過程中,會遇到設(shè)計(jì)習(xí)慣不同、使用煩瑣等問題。筆者在AUTOCAD平臺上,用LISP語言編寫了一系列程序,大大簡化了設(shè)計(jì)、制圖,并且提高了出圖效率和設(shè)計(jì)的準(zhǔn)確性。

張顯如1,毋建軍2,楊 莼3
?1.安徽省工業(yè)工程設(shè)計(jì)院,安徽 合肥 230001;2.安徽省華安工程招標(biāo)中心,安徽 合肥 230001;
3.安徽省華安工程招標(biāo)中心,安徽 合肥 230001

  摘要:目前,專業(yè)給排水設(shè)計(jì)軟件包很多,但在具體使用過程中,會遇到設(shè)計(jì)習(xí)慣不同、使用煩瑣等問題。筆者在AUTOCAD平臺上,用LISP語言編寫了一系列程序,大大簡化了設(shè)計(jì)、制圖,并且提高了出圖效率和設(shè)計(jì)的準(zhǔn)確性。
  關(guān)鍵詞:計(jì)算機(jī);計(jì)算機(jī)繪圖;程序;給排水設(shè)計(jì)
  中圖分類號:TU998.1
  文獻(xiàn)標(biāo)識碼:B
  文章編號:1009-2455(2000)06-0056-03

  目前,幾乎所有的設(shè)計(jì)院都配備了給排水設(shè)計(jì)軟件包,但是設(shè)計(jì)人員在使用軟件過程中,常常會遇到諸多不便之處。如建筑外框不認(rèn),初始化數(shù)據(jù)輸入不直觀,數(shù)據(jù)輸入不當(dāng)時出錯,修改不便等等。設(shè)計(jì)人員或是用鼠標(biāo)代筆,或是用AutoCAD“硬畫”。這種方式出圖效率很低,而且圖面質(zhì)量難以保證。

1 程序設(shè)計(jì)目的

  針對上述軟件包使用不便或適應(yīng)性不強(qiáng)等問題,筆者幾年來在這一方面做了一些探索,用AutoLisp成功地開發(fā)一套比較完善且易學(xué)實(shí)用的系列化小程序。此程序的特點(diǎn)在于遵循傳統(tǒng)繪圖習(xí)慣,進(jìn)行平面化設(shè)計(jì)的思路,按照傳統(tǒng)繪圖方式,靈活運(yùn)用各個程序段,加強(qiáng)人機(jī)對話,力求機(jī)器的自動生成。

2 主要程序介紹

  本程序組中包含程序段40余條,分為工具類與專業(yè)類,其中主要程序段有:
  TK·LSP&TK·DCL:圖庫管理程序。
  XX·LSP:由平面圖生成系統(tǒng)圖程序(原圖)。
  GG·LSP:標(biāo)注給水管道管徑并進(jìn)行分層處理程序。
  PG.LSP:標(biāo)注排水管道管徑并進(jìn)行分層處理程序。
  GB·LSP:對給水管管徑及管段長度計(jì)算統(tǒng)計(jì)程序。
  PB·LSP:對排水管管徑及管段長度計(jì)算統(tǒng)計(jì)程序。
  ZT·LSP:對總體排水管道管徑及管段長度進(jìn)行計(jì)算并標(biāo)注程序。
  GDPM·LSP:自動生成排水管道剖面并同時標(biāo)注程序。
  GCL·LSP:對給排水工程量對照定額進(jìn)行工程概算程序。
  DE·LSP:調(diào)出事先輸入的定額程序。
  LB·LSP:對給排水管管徑及管段長度并進(jìn)行列表處理程序。

3 使用方法

  本程序是依托建筑或其他專業(yè)提供的平面圖,按傳統(tǒng)手工制圖的方法與步驟進(jìn)行平面設(shè)計(jì)。筆者把給排水的圖元分為直線,多義線,圖塊(帶屬性),文字等等。
  設(shè)計(jì)人員在繪制給水平面圖時。用PLINE線繪制水平管,繪制給水立管時插入一個帶有立管高度屬性的圖塊 。排水平面圖的繪制方法與給水相同。繪制其它給排水附件如衛(wèi)生設(shè)備、閥門、消火栓、水嘴等附件均采用不同圖塊表達(dá),這種作圖方式直觀、簡捷、明快。在各層圖面線條完成后,應(yīng)用GG·LSP、PG·LSP程序標(biāo)注其管徑。在標(biāo)注管徑的時候,程序?qū)Υ诉M(jìn)行分層分類管理。配合CAD將各層平面設(shè)計(jì)完成并確認(rèn)無誤后,把各層另存為相應(yīng)各層系統(tǒng)圖圖名,此時設(shè)計(jì)人員可將用圖塊表達(dá)的系統(tǒng)圖圖元如:水嘴、存水彎、消火栓、甚至標(biāo)準(zhǔn)化的系統(tǒng)圖元等插入圖中,并將各管段安裝高度給出。確認(rèn)無誤后,用XX·LSP程序?qū)⒋藞D進(jìn)行圖形處理。使之成為具有透視效果的系統(tǒng)透視圖,再用JL·LSP程序?qū)⒆髌矫鎴D時輸入的立管高度屬性取出,并繪制成給水立管,將此圖適當(dāng)處理后,最后把各層系統(tǒng)圖組合起來便成為給水透視圖。
  繪制排水系統(tǒng)圖時,先用LG·LSP程序生成排水立管,在各排水點(diǎn)插入各種存水彎、排水栓等,再用XX·LSP程序?qū)⑵矫鎴D進(jìn)行圖形處理,使之成為具有透視效果的系統(tǒng)透視圖,最后把各層支管與立管聯(lián)接好,排水系統(tǒng)圖就形成了。
  最后,再用CSD命令對圖面進(jìn)行美化,由于采用程序繪制的圖元是由PLINE,BLOCK等組成,且是分層,分類放置的。據(jù)此,可用LB·LSP程序中有關(guān)命令,取出圖中的類、層、塊、點(diǎn)、線等特性,進(jìn)行歸類、計(jì)算、列表并生成一個主要材料表,自動列于圖中。如果調(diào)出事先輸入的定額,給出工程特征參數(shù),就可用KS·LSP程序中有關(guān)命令,計(jì)算出一個概算表。材料表、概算表都能自動生成。至于給水總圖的繪制,給水圖可類似繪出。排水總圖繪制水比較復(fù)雜。ZT·LSP程序中包含了各管段的計(jì)算、繪制及標(biāo)注等工具,并可自動生成管道剖面。其程序可節(jié)省繪圖時間50%。本系列程序如果加載于其他成功軟件包之上,功效更加明顯。

4 程序舉例

   限于篇幅,這里僅列其中之一以供同行們參考。
   ;本程序?qū)LKINE,BLOCK,TEXT等圖元分別進(jìn)
   ;行旋轉(zhuǎn)與平移處理,達(dá)到平面圖形的透視效
   ;果。程序?qū)INE,DIM,SOLID等圖元進(jìn)行刪
   ;除。
   (defun c:xx(/xxy k1 k2 k3 stn)
   (setq ss(ssget)ang(/pi4);選擇需要進(jìn)行旋轉(zhuǎn)與平移處理的對象(實(shí)體)
   (setqy (cadr(nth1 (entsel″ 選擇水平線″))))
   ;Y用戶選擇的旋轉(zhuǎn)基準(zhǔn)線
   (setq e(ssnamess 0)n0)
   (setq k1(list″a″)k2(list″b″)k3(list″c″))
   ;初始化k1k2k3放置實(shí)
   ;體名的列表,并設(shè)“a”“b”“c”為結(jié)束標(biāo)記
   (while e
   ;while 語句開始,對所選項(xiàng)實(shí)體進(jìn)行旋分類處理
   (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 語句結(jié)束
   )   ;if 語句結(jié)束
(setq n( =1n))
(setqe (ssname ss n ))
   ) ;while 語句結(jié)果
   (setq n0)
     (if(/=(ntnk2)″b″)(setq 1(entget(nth n k2))(setq 1 nil))
  (while 1; while 語句開始
   ;對所選項(xiàng)的PLINE線實(shí)體進(jìn)行旋轉(zhuǎn)處理,角度45度
    ?。╥f(/=(cdr(assoc 0 (entget(nth nk2))))"ABC")
   ;if語句開始對復(fù)合弧線不處理
   (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 起點(diǎn)坐標(biāo),p2終點(diǎn)坐標(biāo)
     (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)
   ;修改起點(diǎn)坐標(biāo)信息
       1(subst(cons 10p4)(mth m4)1)1))
   ;修改終點(diǎn)坐標(biāo)信息
     (entmod 1)
   ));if語句結(jié)束
 ?。╯etqn( =1n))
   (if(/=(nthnk2)″b″)(setq1 (entget(nth n k2)))
  (setq 1 nil))
  );while語句結(jié)束
     (setq n0)
     (if(/=(nt n k1)″a″)(setq 1(entget(nthn k1)))
  (setq 1 nil))
     while 1 ;while語句開始,對所選的
             ;TEXT、BLOCK、ATTRIBUTE等實(shí)
             ;體進(jìn)行旋轉(zhuǎn)及平移處理,角度
             ;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 語句結(jié)束,本語句對文字對齊方式的判斷,并提取高度和插入點(diǎn)信息
   );if 語句結(jié)束,本語句對是否為文字的判斷,并提取高度和插入點(diǎn)信息
     (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語名結(jié)束,本語句對文字對齊方式的判斷,并修改高度和插入點(diǎn)信息
   );if 語名結(jié)束,本語句對是否為文字的判斷,并修改高度和插入點(diǎn)信息
     (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語句結(jié)束,修改中屬性的插入點(diǎn)信息
   (setq ang(/(cdr(assoc 501))2))
   (setq1(subst(cons 50 ang)(assoc 501)1))
   (entmod1); 通過修改塊的插入角度信息進(jìn)行旋轉(zhuǎn)
     (setq n(+1n)
   (if(/=(nth nk1)″a″)(setq1(entget(nth n k 1)))(setq 1 nil))
   ) ;while語句結(jié)束
   (setq n 0)
   (while(<n (sslengthss)); while 語句開始,對名為“ZXR-2035”的塊
   ;進(jìn)行高度平移處理
   (setq stl(entget(ssname ss n )))
   (setq pt1(cdr(assoc 10 stl)))
   (if(/=″ZXR-2035″(cdr(assoc 2(entget(ssname ss n))))); if 語句開始
   (progn
   (setq pt1(list(carpt1)(cadrpot1)0))
   (setq stl(subst(cons 10pt1)(assoc 10 st1(st1))
   (entmod st1)));if 語句結(jié)束
   (setqn(+1n))
   ) ;while語句結(jié)束
 ?。╮edraw)
  )   ;defun 結(jié)束

5 實(shí)際運(yùn)用

 本程序通過筆者所在單位這幾年來工程設(shè)計(jì)人員的運(yùn)用,得到了逐步完善與推廣,實(shí)踐證明,該程序易學(xué)好用。故提煉出來與同仁商榷。


作者簡介:
  張顯如,男(1965-),35,工程師,0551-4654529
  毋建軍(1964-),男,36,工程師
  楊 莼(1964-),女,34,工程師

論文搜索

發(fā)表時間

論文投稿

很多時候您的文章總是無緣變成鉛字。研究做到關(guān)鍵時,試驗(yàn)有了起色時,是不是想和同行探討一下,工作中有了心得,您是不是很想與人分享,那么不要只是默默工作了,寫下來吧!投稿時,請以附件形式發(fā)至 paper@h2o-china.com ,請注明論文投稿。一旦采用,我們會為您增加100枚金幣。