給排水CAD計算繪圖一體化
目前國內已有十幾家單位相繼推出了在AutoCAD基礎上開發的給排水設計軟件包,但熟悉和掌握作為通用圖形平臺的AutoCAD,仍是每個應用計算機進行設計的人員的基本技能。而且,由于現有的軟件包不一定符合用戶的設計習慣,其計算功能也偏于簡單,以至于不能滿足給排水專業設計的特定要求,致使多數設計人員重新回到 AutoCAD平臺。因此,我們需要開發符合設計習慣的計算繪圖一體化程序。
1 給排CAD的特點
用AutoCAD從事給排水工程設計,在繪圖方面其應用一般是復制條件圖、繪制工藝圖等,本專業重復繪圖相對較少。從計算上看除個別情況外,通常計算簡捷而成熟,手冊眾多、計算無處不有。諸如各種水量、流量計算,給排水管線水力計算,水箱、水池容積計算,管網平差計算等,經驗數據大量用于設計,而專門的計算程序所得結果數據亦難以直接用于繪圖。由此可知在設計中引入CAD,把計算融入繪圖應是給排水專業計算機應用的方向之一。
2 給排CAD計算繪圖一體化程序
計算繪圖一體化的主導思想在于交叉進行計算與繪圖,提高自動化程度,提高計算的精度與速度,避免數據的重復輸入,提高設計效率。在CAD平臺上自動提取計算數據,用戶參與意見將計算結果直接用于繪圖、標注或再計算。若將要解決的某個問題作為一個單元模塊,分步編程、集成應用,可提高程序的實用性、適應性、靈活性。其結構化程序功能及簡要說明見圖1。
![]() |
給排CAD計算繪圖一體化的實現有賴于給排水專業人員和計算機人員的進一步協作,選擇合適的高級語言、采用適當的程序結構、正確的計算方法,運用數據共享和通訊技術,經過長期實踐才能完成。實現圖1所示的計算繪圖一體化功能,應把設計任務模塊從上到下細分,以一個設計任務為單元編程,在特定的語言環境中經編輯、編譯、調試等步驟來完成計算繪圖一體化程序的設計。
3 實現方法
3.1 開發環境
AutoCAD中常用二次開發的AutoLISP應用語言是一種解釋性語言。因圖形處理功能強而備受使用者歡迎,不足之處是當圖形內容多、計算量大時處理速度慢。為提高計算速度與精度宜選擇ADS( AutoCAD Development System)開發系統、ARX(AutoCAD Runtime eXtension)開發環境或與DXF(Drawing eXchange Format)進行交換的其它高級語言。其中ADS是AutoCAD的C語言環境,既能充分利用C語言固有的強大功能,又向開發者提供了豐富的應用程序接口例程,功能完整、接口簡單、效率高、速度快、便于多模塊組合。用ADS開發的應用程序在R11以上的版本運行即可,與AutoCAD 13.0版本以上提供的ARX具有相同的開發環境(使用C語言環境編程)。故ADS程序具有較好的移植性、延續性、通用性。
3.2 ADS程序的組成及工作流程
ADS程序除輸入輸出語句外與C語言程序類似,而圖形處理功能部分與AutoLISP語言相關。由于它并非最低層代碼,必須由AutoLISP解釋器加載,因此一個完整的ADS應用程序除包含用戶為解決某個問題而設計外部函數外,還必須能支持并且使用ADS環境所定義的與AutoLISP的接口程序。這個接口程序要求按一定的次序,使用確定的值來調用確定的ADS庫函數,其工作流程見圖2。
![]() |
由main()函數調用系統提供的ads_init函數初始化ADS和AutoLISP的界面,并通過新建立的通訊鏈用 ads_link通知 AutoLISP準備接受調用請求。當收到函數定義請求碼(RQXLOAD)時,ADS用ads_defun函數定義自己的外部函數;若收到函數調用請求碼(RQSUBR),則執行某個已加載的外部函數。其中RSRSLT表示接收、處理AutoLISP請求;RSERR表示ADS程序出錯。
外部函數是ADS應用程序自己定義的可在命令行執行或被AutoLISP調用的函數,一旦完成應用程序的裝載,執行ADS程序就像執行AutoLISP程序一樣。如把圖1中設計任務模塊細分后定義成一個外部函數,通過外部函數調用設計依據、計算、繪圖等模塊函數來實現多模塊的集成應用。因此外部函數是用戶編程的主要內容,而接口程序是定制ADS應用程序的基本平臺。
4 程序舉例
以建筑給水系統水力計算為例:輸入給水當量即得設計秒流量;選定管材、管徑,便可計算流速、校驗結果。若符合設計要求可按圖形提取管長,計算沿程水頭損失,并將計算結果賦給對應管段,為系統圖的繪制及標注作好準備;然后計算局部水頭損失,最后輸入高差及流出水頭等得系統所需水壓總值。為此編寫的ADS源程序名為SLJS.C(程序略)。由外部函數SLSJ()有序地調用設計依據確定、計算管徑的尋找、計算、繪圖、標注以及管網類型選擇等不同功能的模塊函數,完成實例中計算、繪圖一體化設計,具體如下:
1.編譯:將程序SLJS.C拷貝至AutoCAD環境ADS目錄下,用W90SAMP.BAT編譯產生SLJS.EXP文件或用Borland C編譯產生可執行文件 SLJS.EXE。
2.裝載:與裝載AutoLISP程序一樣,有2種方法。
(1)修改AutoCAD的標準菜單文件ACAD.MNU,使其置于AutoCAD的下拉式菜單或屏幕菜單中執行;也可放入用戶自制的實用菜單內執行,如圖1中建筑給排水生活、生產給水設計的子菜單。
(2)在Command:行,用格式為(XLOAD “SJLS.EXP”)的命令載入。
3.執行及結果:點取菜單或執行SJLS命令,繪制某住宅樓給水系統圖并計算該系統所需壓力值。該住宅樓有8層,共32戶用水,每戶給水當量為4,共4根給水立管。其中設計秒流量公式中的系數α=1.02、k=0.0 045,管長及高差等見圖3。
![]() |
用該程序完成圖3中最不利主干管的繪制與標注(SL-1立管上點①與供水點②之間的管路),同時計算得所需水壓349kPa(34.892m H2O)。支管標記在繪制主干管時作為圖塊插入,其余部分由AutoCAD命令編輯而得,見圖3。
也可用此程序對成圖后的給水系統進行計算或標注。若將計算結果按表格方式輸出即得計算書,對復雜管道系統的水力計算,只需將以前的計算結果作為下次計算的基礎數據便可分步完成全部的計算與繪圖,但應進一步擴充和完善程序。
5 小結
5.1 計算繪圖一體化程序較好地解決了經驗數據的采用多,計算對精度要求不高的作法。克服了專門計算程序的結果數據難以直接用于繪圖和標注的問題。
5.2 在計算繪圖一體化程序中把能用公式表達的手冊內容自然地納入了計算機,節省查閱手冊的時間,提高設計效率。
5.3 ADS應用程序容易移植、修改、擴充,采用模塊化編程方法,便于將解決問題的多個模塊進行組合,具有一定的靈活性,且保密性好。
5.4 此法便于推廣,不斷探索、交流、積累便可定制成給排CAD計算繪圖一體化實用菜單。

使用微信“掃一掃”功能添加“谷騰環保網”