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