国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于ObjectArx的鐵路用地設(shè)計方法

2014-05-07 06:04冀幼平
鐵道勘察 2014年3期
關(guān)鍵詞:征地用地實(shí)體

冀幼平

(中鐵國際集團(tuán)有限公司,北京 100039)

鐵路建設(shè)必然要占用土地資源,改變原有土地的使用功能,并對沿線范圍內(nèi)的經(jīng)濟(jì)、環(huán)境和居民生活產(chǎn)生重要影響。合理用地可充分利用土地資源,使沿線土地升值,使未被利用土地充分發(fā)揮其功能,帶動沿線經(jīng)濟(jì)發(fā)展,改善周邊居民生活環(huán)境,否則,將導(dǎo)致土地資源浪費(fèi),破壞生態(tài)環(huán)境,甚至影響沿線居民基本生活和經(jīng)濟(jì)產(chǎn)業(yè)布局[1]。

在規(guī)劃階段,用地設(shè)計主要是使公路盡量繞避不良地質(zhì)地段,以減少工程造價;遠(yuǎn)離環(huán)境保護(hù)區(qū)域,以實(shí)現(xiàn)人與環(huán)境的和諧發(fā)展;靠近重要經(jīng)濟(jì)據(jù)點(diǎn),以促進(jìn)沿線經(jīng)濟(jì)發(fā)展;并盡可能的少侵入居民聚集地,以避免大量的居民拆遷。在設(shè)計階段,用地設(shè)計的主要任務(wù)是檢查設(shè)計用地是否完全滿足規(guī)劃階段的要求,根據(jù)實(shí)際需要對用地進(jìn)行適當(dāng)調(diào)整,盡可能精確地計算征地數(shù)量和費(fèi)用[2-3]。

傳統(tǒng)的用地設(shè)計主要是依靠人工在地形圖上進(jìn)行分析計算。該方法效率低、工作量大、易出錯,用地面積和費(fèi)用計算精度低。對此,提出一種基于Object-ARX自定義實(shí)體的鐵路用地輔助設(shè)計方法。首先定制鐵路用地區(qū)域和各類既有地理區(qū)域(包括:既有建筑物、經(jīng)濟(jì)作物區(qū)、環(huán)境保護(hù)區(qū)等)的自定義實(shí)體,用戶可像操作AutoCAD自有的直線、圓等實(shí)體一樣,方便地對這些自定義實(shí)體進(jìn)行編輯、修改、拖動;然后設(shè)計了任意多邊形之間的重疊面積算法,并在此基礎(chǔ)上實(shí)現(xiàn)了征地、拆遷面積和費(fèi)用的自動統(tǒng)計。該方法能輔助設(shè)計人員進(jìn)行用地分析,顯著降低設(shè)計人員的工作強(qiáng)度,提高設(shè)計效率。

1 用地區(qū)域自定義實(shí)體

用地區(qū)域是由鐵路路基地段左右側(cè)用地樁所構(gòu)成的封閉多邊形。將左右側(cè)的相鄰用地樁分別連接起來,并在橋隧頭尾處封閉起來,即可形成用地區(qū)域。因而,可采用用地樁數(shù)組來表示用地區(qū)域。

在進(jìn)行用地設(shè)計的過程中,設(shè)計人員通常習(xí)慣給定各樁號里程Mi及樁號左右側(cè)用地寬WLi和WRi的方式來表示用地樁?;谶@種設(shè)計習(xí)慣,考慮到繪圖和計算中都需要反復(fù)使用到該樁號處的線路中線坐標(biāo)和用地樁坐標(biāo),本文設(shè)計的用地樁數(shù)據(jù)結(jié)構(gòu)如下:

typedef struct

{

double Millage;//用地樁里程Mi

double Cen_N,Cen_E;//線路中線經(jīng)度距坐標(biāo)Ni,Ei

double Alfa;//該樁號的坐標(biāo)方位角αi

double Left_Wide,Right_Wide;//左、右側(cè)用地寬 WLi,WRi

double Left_N,Left_E;//左、右側(cè)用地樁的經(jīng)度距坐標(biāo) NLi,ELi

double Right_N,Right_E;//右側(cè)用地樁的經(jīng)度距坐標(biāo) NRi,ERi

}LandStation//用地樁Si

根據(jù)平面交點(diǎn)坐標(biāo)、曲線半徑、緩和曲線長等設(shè)計參數(shù),可以快速計算出Mi里程處的線路中線坐標(biāo)(Ni,Ei)和方位角 αi[4-5]。計算出這 3 個參數(shù)后,左、右側(cè)用地樁坐標(biāo)可按公式(1)計算

AutoCAD是當(dāng)前計算機(jī)輔助設(shè)計中廣泛使用的一個平臺[6]。因此,本鐵路用地設(shè)計系統(tǒng)選擇在該平臺上進(jìn)行開發(fā)。ObjectARX作為AutoCAD的二次開發(fā)工具,不僅提供了AutoCAD自有的直線、圓、多段線等圖形實(shí)體,還允許用戶對其擴(kuò)展,根據(jù)需要定制自定義圖形實(shí)體,用戶可像操作直線、圓等圖形實(shí)體一樣方便地對自定義實(shí)體進(jìn)行數(shù)據(jù)編輯、對象捕捉、夾點(diǎn)拖動等操作[7,8]。

1.1 自定義實(shí)體創(chuàng)建

①從實(shí)體基類AcDbEntity派生出用地區(qū)域自定義實(shí)體類Land

class Land:public AcDbEntity;

②在Land類的頭文件中定義類聲明宏

ACRX_DECLARE_MEMBERS(Land);

③在Land類的源文件中定義類執(zhí)行宏

ACRX_DXF_DEFINE_MEMBERS(Land,AcDbEntity;

AcDb::kDHL_CURRENT,AcDb::kMReleaseCurrent,0,Land,“RailDesign”);

④在ARX程序初始化時進(jìn)行用地區(qū)域類的初始化

Land::rxInit();

acrxBuildClassHierarchy();

⑤在ARX程序卸載時清除自定義用地區(qū)域類

deleteAcRxClass(Land::desc())。

1.2 自定義實(shí)體顯示

自定義實(shí)體在AutoCAD中的顯示由以下3個函數(shù)完成:

Adesk::Boolean worldDraw(AcGiWorldDraw*pWd);與視圖無關(guān)的實(shí)體圖形繪制

void viewportDraw(AcGiViewportDraw*PVd);與視圖相關(guān)的實(shí)體圖形繪制

Adesk::Uint32 setAttributes(AcGiDrawableTraits*pDt);初始化實(shí)體顏色、層和線型等屬性

在自定義實(shí)體類中重載這些函數(shù),便可實(shí)現(xiàn)圖形的繪制。上述3個函數(shù)中worldDraw()函數(shù)必須在自定義實(shí)體類中重載,其余2個可根據(jù)需要選擇。

1.3 自定義實(shí)體編檔

用地區(qū)域自定義實(shí)體需要具備保存、復(fù)制等操作功能,必須對該自定義實(shí)體進(jìn)行編檔。在用地區(qū)域?qū)嶓w類中重載dwgOut()和dxfOut()的兩個函數(shù),可分別實(shí)現(xiàn)DWG、DXF文件中實(shí)體的編出;dwgIn()和dxfIn()則實(shí)現(xiàn)實(shí)體的編入。編出、編入函數(shù)的實(shí)現(xiàn)首先調(diào)用assertWriteEnabled()和 assertReadEnabled(),然后調(diào)用readItem()和writeItem(),按預(yù)定順序讀、寫該實(shí)體的屬性數(shù)據(jù)。

1.4 自定義實(shí)體夾點(diǎn)操作

為使用地區(qū)域?qū)嶓w的修改操作更加方便,為其定義了夾點(diǎn)和夾點(diǎn)拖動操作,如圖1所示。當(dāng)該實(shí)體被選中后,用地樁將突出顯示,并且可以實(shí)時拖動這些用地樁,由計算機(jī)自動刷新用地數(shù)據(jù)。

圖1 用地樁夾點(diǎn)拖動

1.5 自定義實(shí)體捕捉

為便于設(shè)計人員獲取用地樁,可將這些用地樁點(diǎn)作為該自定義實(shí)體的捕捉點(diǎn)。實(shí)現(xiàn)該過程可重載getOsnapPoints()函數(shù),并在該函數(shù)中遍歷所有用地樁,將其加入捕捉點(diǎn)數(shù)組snapPoints中。

通過上述過程便完成了鐵路用地區(qū)域自定義實(shí)體的定制,設(shè)計人員可以像操作AutoCAD自有的直線、多段線、圓一樣,方便地對用地區(qū)域進(jìn)行修改、捕捉、實(shí)時動態(tài)拖動用地樁。

除了通過圖形方式修改用地數(shù)據(jù)外,經(jīng)常使用的還有列表編輯方式直接錄入和修改用地數(shù)據(jù)。對此,本研究重載了自定義實(shí)體的List()函數(shù),選中實(shí)體后運(yùn)行List命令,彈出如圖2所示對話框,設(shè)計人員可查詢、編輯、增加、刪除、修改用地數(shù)據(jù),并自動刷新用地區(qū)域?qū)嶓w。

圖2 用地樁數(shù)據(jù)編輯

2 地理區(qū)域自定義實(shí)體

鐵路用地設(shè)計主要是處理鐵路用地區(qū)域與既有建筑物、經(jīng)濟(jì)作物及環(huán)境保護(hù)區(qū)等地理區(qū)域的關(guān)系。因此,除了用地區(qū)域自定義實(shí)體外,還需要定制各地理區(qū)域自定義實(shí)體,此類實(shí)體包括幾何屬性數(shù)據(jù)和物理屬性數(shù)據(jù)兩類。

幾何屬性數(shù)據(jù)主要是描述其幾何邊界的頂點(diǎn)數(shù)組,物理屬性則包括名稱、征地或拆遷單價、是否允許線路穿越等。采用統(tǒng)一的數(shù)據(jù)結(jié)構(gòu)對這些地理區(qū)域進(jìn)行描述,不同類型的區(qū)域采用Type變量標(biāo)記。且Type變量為整形量,允許用戶自定義和擴(kuò)展地理區(qū)域類型。

Typedef struct{

AcGePoint3dArray BorderPtArray;//幾何邊界頂點(diǎn)數(shù)組

int Type;//區(qū)域類型,包括

Cstring Name;//名稱

bool IsCanUse;//是否允許征用、拆遷

double CostPer;//如果允許征用、拆遷,每平米費(fèi)用

Cstring HatchType;//在CAD中繪制該區(qū)域時填充的圖形

}Geo//地理區(qū)域

與用地區(qū)域自定義實(shí)體類似,地理區(qū)域自定義實(shí)體的定制也包含上述創(chuàng)建、實(shí)時顯示、編檔、夾點(diǎn)操作、捕捉5個部分。在該自定義實(shí)體中,幾何邊界頂點(diǎn)均作為捕捉點(diǎn)和夾點(diǎn),用戶可通過夾點(diǎn)拖動的方式在AutoCAD中方便地調(diào)整區(qū)域范圍。另外,考慮到設(shè)計的便利性,加入了多段線、面域等實(shí)體轉(zhuǎn)換為地理區(qū)域?qū)嶓w的功能,用戶可在CAD圖上拾取封閉多段線、面域,再給定單價等物理屬性,便可自動生成需要的地理區(qū)域?qū)嶓w。

3 征地拆遷費(fèi)用計算

征地、拆遷費(fèi)用計算是鐵路用地設(shè)計中的一項主要任務(wù)。傳統(tǒng)方法主要靠人工處理,估算精度低,對于既有建筑物、經(jīng)濟(jì)作物較少的地區(qū)尚可滿足要求。對于城市或者居民區(qū)周邊,征地拆遷造價較高,必須精確計算面積。由于用地區(qū)域和既有地理區(qū)域形狀均不規(guī)則,精確計算費(fèi)時費(fèi)力,而且極易出錯。

如能由計算機(jī)自動計算征地拆遷面積,并統(tǒng)計出總造價,將顯著降低設(shè)計人員的工作強(qiáng)度,提高用地設(shè)計的準(zhǔn)確性。考慮到無論是用地區(qū)域還是既有地理區(qū)域均可能是任意復(fù)雜的多邊形。因此,要實(shí)現(xiàn)該功能,首先需要解決任意兩個復(fù)雜多邊形的交集面積計算問題。

AutoCAD中提供了兩任意形狀面域的布爾運(yùn)算功能,ObjectARX作為AutoCAD的二次開發(fā)工具,也可定義面域并進(jìn)行布爾運(yùn)算。ObjectARX提供的面域布爾運(yùn)算成熟可靠、計算精度高,直接利用可節(jié)省大量的開發(fā)工作。ObjectARX中采用AcDbRegion類來實(shí)現(xiàn)面域的功能,可采用該類的createFromCurves函數(shù)創(chuàng)建面域?qū)ο?。該函?shù)原型如下:

static Acad::ErrorStatus createFromCurves(const AcDbVoidPtrArray& curveSegments,AcDbVoidPtrArray&regions)

該函數(shù)可將直線、圓、圓弧、多段線等CAD內(nèi)部任意類型的圖形邊界組合為一個面域。其中curveSegments即為用于構(gòu)建面域的圖形指針數(shù)組,regions則為生成的面域?qū)ο蟆?/p>

用地區(qū)域生成面域時可先將用地樁逐個連接,形成封閉多段線,然后再將多段線轉(zhuǎn)換為面域。

地理區(qū)域?qū)嶓w轉(zhuǎn)換為面域的過程更加簡單,只需要遍歷幾何邊界頂點(diǎn)數(shù)組BorderPtArray,將所有頂點(diǎn)加入多段線中,最后再將多段線轉(zhuǎn)換為面域GeoRegion即可。

構(gòu)建出用地區(qū)域和地理區(qū)域面域后,便可調(diào)用AcDbRegion類的布爾求交,得到兩區(qū)域的交集,該交集的面積即為征地拆遷面積。該布爾運(yùn)算函數(shù)如下:

virtual Acad::ErrorStatus booleanOper(AcDb::BoolOperType operation,AcDbRegion*otherRegion);

參數(shù)operation為布爾運(yùn)算類型,包含有AcDb::kBoolUnite(并集)、AcDb::kBoolIntersect(交集)和 Ac-Db::kBoolSubtract(差集)3類。otherRegion為布爾操作的另一個面域,該函數(shù)將返回布爾運(yùn)算后形成的面域。

通過遍歷圖形中所有的地理區(qū)域?qū)嶓w,調(diào)用booleanOper函數(shù)進(jìn)行交集運(yùn)算,便可得到鐵路用地區(qū)域與它們的交集,獲取面積,進(jìn)而統(tǒng)計出總的征地拆遷造價。該過程實(shí)現(xiàn)關(guān)鍵代碼如下:

pBloRec->newIterator(pIter);//新建一個塊表記錄迭代器pIter

for(pIter- >start();!pIter- >done();pIter->step())//通過迭代器遍歷所有實(shí)體

{

pIter- >getEntity(pEntity,AcDb::kFor-Read);//獲取圖形上的某一實(shí)體

if(pEntity- >isKindOf(Geo::desc())//如果實(shí)體類型為自定義的地理區(qū)域

{

GeoRegion=CreateRegion(pEntity);//創(chuàng)建地理區(qū)域的面域

If(GeoRegion==NULL)//無交集,跳過該區(qū)域

continue;

IntRegion=LandRegion.booleanOper(GeoRegion);//布爾運(yùn)算求區(qū)域交集

IntRegion.getArea(Area);//獲取交集的面積

CalCost(Area,pEntity);//計算統(tǒng)計造價

}

}

需要注意的是:如果與用地實(shí)體相交的區(qū)域為不允許鐵路通過的禁區(qū),則應(yīng)將造價賦值為無窮大,并將該信息反饋給設(shè)計人員,通知設(shè)計人員調(diào)整設(shè)計方案;如果相交的區(qū)域為既有建筑物,則拆遷費(fèi)用應(yīng)該按整個建筑物面積計算,而不僅僅是交集的面積。

4 應(yīng)用

基于上述原理與方法,開發(fā)了鐵路用地設(shè)計模塊。在一些城市地鐵設(shè)計當(dāng)中,線路途經(jīng)住宅密集的城市或城市周邊,征地拆遷費(fèi)用較高,要求精確統(tǒng)計征地拆遷造價。

人工統(tǒng)計費(fèi)時費(fèi)力,而且錯誤時有發(fā)生,采用該設(shè)計模塊,設(shè)計人員可通過實(shí)體轉(zhuǎn)換命令,直接將地形圖上的既有建筑物、經(jīng)濟(jì)作物區(qū)等轉(zhuǎn)換為自定義的地理區(qū)域?qū)嶓w,鐵路用地區(qū)域、地理區(qū)域?qū)嶓w可像AutoCAD內(nèi)部實(shí)體一樣進(jìn)行對象捕捉、夾點(diǎn)拖動、數(shù)據(jù)編輯,操作便捷,符合設(shè)計習(xí)慣,在進(jìn)行用地設(shè)計過程中可自動統(tǒng)計征地拆遷數(shù)量和費(fèi)用,并對一些穿越禁區(qū)的情況發(fā)出警告。

經(jīng)對比分析,該模塊計算的費(fèi)用與人工計算結(jié)果完全一致,而計算時間可縮短數(shù)十倍甚至上百倍。

5 結(jié)束語

鐵路用地設(shè)計是鐵路設(shè)計的一個重要部分?;贠bjectARX自定義實(shí)體技術(shù)定制了鐵路用地區(qū)域、既有地理區(qū)域自定義實(shí)體,鐵路規(guī)劃設(shè)計人員可像操作AutoCAD自有實(shí)體一樣對其進(jìn)行對象捕捉、夾點(diǎn)拖動、數(shù)據(jù)編輯修改,方便地進(jìn)行用地設(shè)計。據(jù)此開發(fā)的用地設(shè)計模塊可自動分析鐵路用地是否占用環(huán)境保護(hù)區(qū)等禁止穿越區(qū)域,精確計算出征地面積和費(fèi)用。生產(chǎn)實(shí)踐表明,該方法符合設(shè)計習(xí)慣,保證征地費(fèi)用計算精度和速度,可顯著降低勞動強(qiáng)度,提高規(guī)劃設(shè)計人員的工作效率。

[1] 李連成.交通用地的優(yōu)化配置問題研究[D].北京:北京交通大學(xué),2013

[2] 張利華,薛重生.基于ArcGIS的鐵路用地綜合信息管理系統(tǒng)的分析與設(shè)計[J].計算機(jī)工程與設(shè)計,2005,26(3):623-626

[3] 徐文榮,李紅璇.GIS在鐵路用地的應(yīng)用與發(fā)展[J].鐵路計算機(jī)應(yīng)用,2007,16(3):23-24

[4] 彭利輝,蒲浩.道路平面線形交互式設(shè)計方法研究[J].鐵路計算機(jī)應(yīng)用,2006,15(8):7-9

[5] 楊柳,鄭健龍,聞德保.基于ObjectARX實(shí)現(xiàn)自定義回旋線實(shí)體[J].大地測量與地球動力學(xué),2013,33(5):110-115

[6] 王欣,程耀東,孟凡相.ObjectARX二次開發(fā)運(yùn)行機(jī)制及應(yīng)用研究[J].測繪科學(xué),2009,34(S2):182-185

[7] 蒲浩,宋占峰.道路路線CAD原理與方法[M].長春:吉林科學(xué)技術(shù)出版社,2005

[8] 蒲浩,宋占峰,詹振炎.公路路線設(shè)計的一體化與可視化[J].中南大學(xué)學(xué)報:自然科學(xué)版,2004,35(5):830-835

猜你喜歡
征地用地實(shí)體
前海自貿(mào)區(qū):金融服務(wù)實(shí)體
城鄉(xiāng)建設(shè)用地增減掛鉤研究進(jìn)展綜述
基于GIS+BIM的高速公路征地拆遷管理系統(tǒng)
濟(jì)寧市城鄉(xiāng)建設(shè)用地增減掛鉤政策實(shí)施評價
實(shí)體的可感部分與實(shí)體——兼論亞里士多德分析實(shí)體的兩種模式
兩會進(jìn)行時:緊扣實(shí)體經(jīng)濟(jì)“釘釘子”
振興實(shí)體經(jīng)濟(jì)地方如何“釘釘子”
城鄉(xiāng)建設(shè)用地增減掛鉤政策的演變
大藤峽公司已撥付征地移民安置資金11.69億元
主流征地制度改革觀點(diǎn)檢討