當前位置:工程項目OA系統(tǒng) > 建筑OA系統(tǒng) > 工程管理軟件
擴展實體數(shù)據(jù)在給排水工程CAD中的應用
「摘要」本文從擴展數(shù)據(jù)在實體中的存貯方式、擴展實體數(shù)據(jù)的插入和查詢以及應用擴展實體數(shù)據(jù)實現(xiàn)管配件的插入、圖形的刪除及修改等方面,介紹了應用擴展實體數(shù)據(jù)庫進行給排水工程CAD繪制的方法和技巧,并給出幾個通過實際工程驗證的實用小程序,提出工程設計人員在工程圖繪制過程中,自行編寫小程序可以擴充商業(yè)軟件的功能,提高繪圖效率的結論。
1概述
在計算機迅速普及的今天,CAD已不再是新鮮名詞。尤其是在工程設計領域,手工畫圖已逐漸被CAD軟件所代替。在我國應用最廣泛、最普及的CAD工具是AutoCAD軟件包,該軟件包以其界面友好、使用方便、功能強大的特點,被廣大工程設計人員所接受。在給水排水工程領域,由于各設計單位的設計標準和設計方法的不同,造成各軟件公司所開發(fā)的CAD軟件不能被設計單位所廣泛接受。尤其是軟件公司的軟件開發(fā)人員,在我國大多是計算機應用比較熟練的非專業(yè)人員或實際工作經驗很少的專業(yè)技術人員,由于他們專業(yè)知識和工作經歷的限制,造成所開發(fā)的專業(yè)軟件存在這樣或那樣的不足,從而限制了專業(yè)軟件的實用性。因此,盡管市場上的商業(yè)專用軟件很多,但能夠切實滿足工程設計需要的軟件并不多,甚至許多單位購置的軟件根本就不能發(fā)揮其應有的作用。通過多年的CAD軟件開發(fā)經驗,作者認為,工程設計人員掌握一定的CAD技術處理技巧,可以在直接應用AutoCAD軟件或其它商業(yè)軟件進行工程設計的同時,自行編寫一些實用的小程序,不但可以提高工程設計效率,而且還可以通過日積月累,使所編寫的小程序在本單位內應用。
在給水排水工程領域,最常處理的圖形就是管線。管線是連接水源到水廠、水廠到用戶、各構筑物間的有向圖,一根管線的變動,必然引起其它設施的改變。同樣,各構筑物采用平、立、剖三視圖進行工程圖的表達,一個視圖的改變,也引起其它視圖相應的改變。以前我們都是通過單個圖形分別修改的方法來實現(xiàn),不但效率低,而且容易產生錯誤。本人通過在WDOC軟件開發(fā)中的應用,認為擴展實體數(shù)據(jù)庫的應用,可以有效地解決這些問題,并且能夠提高繪圖效率。
2擴展實體數(shù)據(jù)的插入與查詢
2.1擴展數(shù)據(jù)在實體中的存貯方式
假設一條管線,起點號是8,坐標是(5.05.00.0),終點號是18,坐標是(10.010.00.0),管段號是1,這條管線的圖形數(shù)據(jù)庫為:
?。ǎ?1<Entityname:1f92f48>)(0″LINE″)(5.″519″)(100.″AcDbEntity″)(67.0)(8.″0″)(100.″AcDbLine″)(105.05.00.0)(1110.010.00.0)(2100.00.01.0)(-3(″PIPE1″(1002.″{″)(1000.″8,18″)(1002.″}″)))
其中擴展數(shù)據(jù)為:(-3(″PIPEI″(1002.″{″)(1000.″8,18″)(1002.″}″))),″PIPEI″表示以PIPE為前導的管線,管線號為1;″8,18″表示管線的起點號為8,終點號為18.
擴展實體數(shù)據(jù)內容在實體數(shù)據(jù)庫中是以-3碼為前導的一個表項。在一個實體中可以加入擴展實體數(shù)據(jù)的大小為16383字節(jié)。用于描述非圖形數(shù)據(jù)的擴展實體數(shù)據(jù)庫有關組碼為:
組碼意義1000 1001 1002 1003 1004 1005 1010 1011 1012 1013 1040 1041 1042 1070 1071ASCII碼字串,長度小于255個字符位已登記的應用名,長度小于31個字符位控制字串層名長字節(jié),長度小于127字符實體索引名點位3D地坪空間位置3D地坪空間位移3D地坪空間方向浮點數(shù)距離值比例系數(shù);
16位整數(shù)32位整數(shù)
2.2擴展實體數(shù)據(jù)的插入
使用擴展實體數(shù)據(jù),必須用AutoLISP程序實施對實體數(shù)據(jù)庫的訪問和修改。首先要自行定義擴展實體數(shù)據(jù)庫信息表,然后再加入到指定的實體中。此處只是給出擴展實體數(shù)據(jù)庫插入的AutoLISP程序主要內容,有興趣的讀者可以自行加入所需要的信息表,以把這一程序的功能進行擴展。
對最后畫的一個實體加入擴展的實體數(shù)據(jù)表的AutoLISP程序為:
?。╠efunexadd(nametyp/sselnel);name:擴展實體數(shù)據(jù)登記名,typ:擴展實體數(shù)據(jù)內容。
(setqss(cons-3(list(consname(cons(cons1002″{″)(cons(cons1000typ)(list(cons1002″}″)))))));定義擴展實體數(shù)據(jù)庫el(entget(entlast));提取最近畫的一個實體的圖形數(shù)據(jù)庫
nel(consssel);把擴展實體數(shù)據(jù)信息加入到實體數(shù)據(jù)庫中)(regappname)(entmodnel))
如果對上述函數(shù)修改一下,可適用于對任意所選擇實體加入擴展實體數(shù)據(jù)信息:
?。╠efunexaddl(nametyped/sselnel);ed:所選擇實體,把上述程序的el(entget(entlast))改為el(entgeted)即可。)
利用上述二個小程序,就可以實現(xiàn)對所畫的最后一個實體或任一所選擇的圖形實體加入擴展實體數(shù)據(jù),其特點是比用屬性建立非圖形信息的速度更快、更靈活、更小的數(shù)據(jù)體積,而且可以進行圖形索引。
2.3擴展實體數(shù)據(jù)的查詢
在對圖形實體插入擴展實體數(shù)據(jù)后,還要對所插入數(shù)據(jù)信息進行查詢、修改和應用。此處只給出擴展實體數(shù)據(jù)查詢和數(shù)據(jù)提取的AutoLISP程序。
查找擴展數(shù)據(jù)登記名的程序:(defunexname(ed/cxl)(setqcxl(cdr(assoc-3(entgeted`(″*″)))))(ifcxl(car(nth0cxl))))
本程序應用,就可以對任何一個所選擇的實體,找出它的擴展實體數(shù)據(jù)登記名。如管段號、節(jié)點號等。
對任意選擇實體,提取擴展實體數(shù)據(jù)的程序:
(defunexsub(edname/sstypnamecxlcncalctcbl)(setqtyp(cons1"不是所選擇實體");如果選擇實體與所指定的擴展數(shù)據(jù)名不一致,則提示錯誤。
name(strcasename)cxl(cdr(assoc-3(entgeted`(″*″)))))(ifcxl(progn(setqcn0)(while(setqcal(nthcncxl))
(if(=name(carcal))
?。╬rogn(setqct0cal(cdrcal))
(while(setqcbl(nthctcal))
?。╥f(=(carcbl)1000)(setqtypcblct10000cn10000))
(setqct(+ct1)))))(setqcn(+cn1)))))(cdrtyp))
上述兩個程序的應用,就可以實現(xiàn)對所繪實體的擴展數(shù)據(jù)信息進行提取。
我們知道,AutoLISP是嵌入AutoCAD中的功能擴展程序,如同使用AutoCAD函數(shù)一樣,易學易用。應用AutoCAD進行工程設計的技術人員,應該學會用AutoLISP編寫簡單的程序,以方便工程圖形的繪制。從上述的程序中也可以看出AutoLISP編寫的完成某一功能的程序,小到一至二句,多到十幾句,即可實現(xiàn)所要完成的工作。
3擴展實體數(shù)據(jù)在給排水CAD中的應用
3.1管配件插入:
例如一條已經畫好的管線,管徑為DN100,使插入的管配件也具有DN100的特性。假設管配件是閥門,為已經做好的圖塊。我們可以在插入的過程中不需要關心管徑是多少,直接插入閥門信息,從而提高繪圖效率。應用擴展實體數(shù)據(jù)庫的程序為:
?。╠efunc:inval(/sspededanametypp1p2ang)
setqss(entsel)p(car(cdrss))ed(carss)eda(entgeted)
name(exnameed);提取擴展實體數(shù)據(jù)的名稱
typ(exsubedname);提取擴展實體數(shù)據(jù)信息,即管徑信息
p1(cdr(assoc10eda);管線的起點坐標
p2(cdr(assoc11eda);管線的終點坐標
ang(anglep1p2);管線角度
)
?。╟ommand″break″p″F″(polarpangBL)(polarp(+piang)BL);斷開線的距離
″insert″″閥門″p(*2BL)″″ang);插入閥門(exaddnametyp);對插入的閥門加入擴展實體數(shù)據(jù),即管徑。
?。?/p>
這一小程序在加載以后,如同AutoCAD函數(shù)一樣,只要在命令狀態(tài)下運行inval,系統(tǒng)提示選擇實體時,在插入閥門的位置上點取管線,就會自動把管線先斷開,再插入閥門,并且所插入的閥門具有DN100的特牲。
3.2管線刪除
對于上面所插入閥門的管線,由于閥門的插入而變?yōu)槎l線,三個實體(二條線加一個閥門),如果由于各種原因需要刪除,按照AutoCAD命令,則需要分別對這三個實體加以刪除。對于工程圖,由于圖形復雜,經常會產生誤操作或漏操作的問題,給工程設計人員帶來許多困難。而擴展實體數(shù)據(jù)庫的應用,可以為工程圖的繪制帶來許多方便。
?。╠efunc:deled()
(setqss(entsel)ed(carss)s(ssget“x”)n0name(exnameed)typ(exsubedname))
?。╳hile(setqes(ssnamens))(setqname1(exnamees))
(if(=namename1)(progn(setqtyp1
?。╡xsubesname))(if(=typ1typ)(entdeles))))
?。╯etqn(+n1))))
這一小程序在加載后,運行deled,按照提示選擇要刪除的實體,即可刪除與這一實體具有相同擴展數(shù)據(jù)的所有實體,快速而準確。
3.3擴展實體數(shù)據(jù)修改
給水管網(wǎng)圖是由管線、節(jié)點、水泵、水塔、閥門等組成,所有設施之間并不是相互獨立,而是有機的聯(lián)系在一起。某一設施的修改,必然帶動其它與之有關聯(lián)的設施和變動。例如,對于給水管網(wǎng)水力計算成果圖,當節(jié)點號修改時,要影響與之相連的所有管線的起止節(jié)點號的變動、管線上水流方向擴展實體數(shù)據(jù)的變動以及節(jié)點標注信息的變動。一般情況下,一個節(jié)點號的變化,要引起幾個甚至幾十個圖形實體的變化。采用擴展實體數(shù)據(jù)繪圖,這一變化可以通過程序方便地實現(xiàn)。此處只給出修改一個擴展實體數(shù)據(jù)的小程序,讀者可以擴充這一小程序,以通過遍歷整個圖形數(shù)據(jù)庫的方式,分別查找要修改的實體,并加以修改。
?。╠efunchent(edstyp/sbcxlss);
?。╯etqsb(entgeteds′(″*″))cxl(cdr(assoc-3sb))
ss(cons(cons1002″{″)(cons(cons1000typ)(list(cons1002“}”))))
ss(list(cons(exnameeds)ss)))(netmod(subst(cons-3ss))
(cons-0cxl)sb))(entupdeds))
從上述介紹可以看出,應用擴展實體數(shù)據(jù),可以彌補僅以AutoCAD繪圖函數(shù)繪圖的不足,從而使所繪的工程圖有速度更快、更準確的特點。
4結論
以上僅是作者在給水管網(wǎng)優(yōu)化設計計算與非穩(wěn)定狀態(tài)水力模擬軟件-WDOC開發(fā)過程中采用的幾個小技巧,在應用中發(fā)現(xiàn)有極大的實用價值,不僅提高了繪圖的速度,而且還可使互不相關的實體之間建立相互聯(lián)系。在繪圖過程中,可以實現(xiàn)對一個實體的繪制及修改,自動實現(xiàn)與之相關的其它實體的繪制及修改。工程設計人員如果是有心人,可以在完成實際工程的過程中,對一些圖形復雜、關聯(lián)性強的實體,自行通過編寫幾句或十幾句AutoLISP程序來加以實現(xiàn),日積月累,把編寫的小程序集成起來,不但可以解決商業(yè)軟件與工程實用化相脫節(jié)的矛盾,而且還可以提高制圖效率。
作者在給水排水工程CAD軟件的開發(fā)和使用中,通過多年的積累,也編寫了一些小程序,相當實用。有興趣的讀者可以與作者聯(lián)系,相互交流,擴大實用小程序的應用范圍。
課程推薦
- 優(yōu)惠不斷,施工技能課程五折
- 【超值預售】施工前期準備技能匯總
- 施工現(xiàn)場總平面布置要點詳解
- 1一級建造師市政知識點:城市給水排水管道工程施工(6)
- 2四車道高速公路實施性施工組織設計(含橋涵)
- 3[浙江]高速公路瀝青路面標準化施工工藝控制和質量管理
- 42015招標師教材解讀《法律法規(guī)》:法律法規(guī)與政策的主要規(guī)定
- 52009年一級建造師考試《水利水電》經典習題(12)
- 6合同管理與索賠
- 72015年造價員考試安裝工程輔導:熱力安裝專業(yè)知識(7)
- 8淺談項目建設過程中環(huán)境影響評價與水土保持方案的編報
- 9臨沂市蘭山區(qū)灌區(qū)水管工程的現(xiàn)狀與對策分析
- 10建設工程安全施工措施備案流程(天津)
- 112014年一級建造師《法規(guī)及相關知識》每日一練(7.18)
- 12項目施工的節(jié)約問題及解決途徑
- 13工程索賠的策略技巧分析
- 14海鷗式中承鋼箱拱橋施工技術
- 15如何實現(xiàn)高績效的全面預算管理
- 16體育場工程施工組織設計(三)
- 172015年一級建造師考試《法規(guī)及相關》:安全生產法
- 18路面結構的排水分析及防治措施
- 19宿州2015年注冊咨詢工程師考試報名時間為1月5日至14日
- 20[舟山市]2006年注冊咨詢工程師(投資)執(zhí)業(yè)資格考試考務工作的通知
- 212015年注冊消防工程師案例分析思考題模擬測試及答案(12)
- 222015一級建造師《法規(guī)及相關》:違約責任的相關規(guī)定
- 23公路詳細工程地質勘察的任務
- 24如何提高項目部勞務分包管理水平
- 252015年安全工程師《安全生產法及相關法律知識》每日一練(7.22)
- 26天津商業(yè)大學新建體育館工程
- 272014年中國建筑業(yè)發(fā)展現(xiàn)狀及行業(yè)總產值分析(圖)
- 282015年招標師考試《項目管理》疑難問題解答三
- 29淺析混凝土軌枕裂縫的影響及預防措施
- 30某鐵路工程施工架子隊人員崗位職責
成都公司:成都市成華區(qū)建設南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務大廈18樓