版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> Autolisp程序語言在房產測量中的應用</p><p> 【摘要】房產測量是采集和表述房屋和房屋用地有關信息的一門技術。房產測量工作主要包括外業(yè)數據采集和內業(yè)數據整理兩個過程。內業(yè)主要工作之一是根據外業(yè)采集的數據繪制出房屋的草圖,然后再依據草圖來賦予該房屋的各種屬性。以前傳統(tǒng)的繪圖方法比較繁瑣且不精確,現在我們最主要用到得成圖軟件是AutoCAD。利用該軟件成圖過程中,我們可以利用Au
2、toCAD支持AutoLISP編程語言這一特點,編寫出一些小程序以方便房產測量內業(yè)工作的進行,達到提高精度和效率的作用。</p><p> 【關鍵詞】房產測量,AutoCAD成圖軟件,AutoLISP編程語言。</p><p><b> Abstract</b></p><p> Real-Estate Surveeying are co
3、llected and the expression information about housing and housing sites of a technology. Real-Estate Surveeying include foreign trade data collection and data management within the industry, the two processes. To work wit
4、hin one of the owners is based on data collected outside the industry, the housing draw sketches, and then according to the draft plan to give the house a variety of attributes. Comparison of traditional drawing methods
5、previously cumbersome and impre</p><p><b> 目錄</b></p><p><b> 1緒論1</b></p><p> 1.1問題的提出1</p><p> 1.2 文章的組織2</p><p> 2房產測量的研究
6、背景2</p><p> 2.1房產測量的目的和內容2</p><p> 2.2房產測量外業(yè)3</p><p> 2.3房產測量內業(yè)4</p><p> 2.4房產測量的關鍵技術4</p><p> 3 AutoLISP語言簡化房產測量工作的實現過程5</p><p>
7、3.1房產測量作業(yè)模式5</p><p> 3.1.1房產測量傳統(tǒng)作業(yè)模式5</p><p> 3.1.2房產測量新作業(yè)模式5</p><p> 3.1.3對房產測量新作業(yè)模式的改進6</p><p> 3.2 AutoLISP編程語言6</p><p> 3.2.1 AutoLISP編程語言的特點
8、6</p><p> 3.2.2加載和運行AutoLISP程序7</p><p> 3.2.3 AutoLISP變量8</p><p> 3.3 AutoLISP語言與AutoCAD軟件的結合8</p><p> 3.3.1 AutoCAD的語言開發(fā)環(huán)境8</p><p> 3.3.2 AutoLI
9、SP語言用于AutoCAD二次開發(fā)的特點9</p><p> 3.4利用AutoLISP編程語言實現房產草圖的簡易繪制9</p><p> 4便于房產測量草圖繪制方法的設計10</p><p> 4.1設計思路10</p><p> 4.2房產測量草圖主要要素的提取10</p><p> 4.2.1
10、房產測量草圖墻厚的快速標注10</p><p> 4.2.2房產測量草圖權屬面積的獲取11</p><p> 4.2.3房產測量草圖開門程序設計12</p><p><b> 5結論13</b></p><p><b> 致謝14</b></p><p>&
11、lt;b> 參考文獻15</b></p><p><b> 1緒論</b></p><p><b> 1.1問題的提出</b></p><p> 隨著我國房地產業(yè)的不斷發(fā)展,房產測量日益成為人們關注的熱點之一。房產測量的功能與特點也越來越受到社會各界的關注。</p><p&g
12、t; 從2009年12初到現在一直在整理過去用傳統(tǒng)方法生產的房產測繪資料。在整理過程中發(fā)現,傳統(tǒng)的作業(yè)模式與現在的作業(yè)模式相比,存在太多的弊端。對于房屋的產權人來說,最關心的是所購房屋的實際產權面積有多少。也就是說,房產測量的精度的高低直接影響產權面積的計算。而且房產測量質量直接與相關法律相關,因為房產測量的功能之一就是為房地產的產權、產籍、產業(yè)管理,商品房的開發(fā)、交易等管理提供房屋和房屋用地的權屬界線、權屬界址點、房地產面積、各種產
13、別以及有關權屬、權源、產權糾紛等數據、圖卡、表、冊等資料。根據《中華人民共和國測繪法》和《測繪質量監(jiān)督管理辦法》等有關法律法規(guī),“測繪產品必須經過檢查驗收,質量合格的方能提供使用”。國務院測繪行政主管部門建立的測繪產品質量監(jiān)督檢驗測試中心和各省級測繪主管部門建立的測繪產品質量監(jiān)督檢驗站,是負責實施測繪產品質量監(jiān)督檢驗的工作機構。房產測繪資料根據一定的周期會不斷的更新,而且隨著時間跟房產測量技術的不斷發(fā)展和更新,不同時期對同一幢房屋進行測
14、算,得到的測算結果一般會不同,但是一般會在允許誤差范圍之內。當然也有出入比較大的,一般用新方法測算的相較之下會更接近實際,而用傳</p><p> 傳統(tǒng)房產測量外業(yè)在精度上也沒有現在的高,這也是造成面積誤差大的原因之一。傳統(tǒng)房產測量外業(yè)數據獲取用到的最主要的工具是卷尺。用這種工具去丈量房屋的邊長,通常誤差比較大。尺子本身就有好幾項改正數:尺長改正、溫度改正等。外界環(huán)境影響比較大,再加上人為因素造成的誤差,這些所
15、有的因素都是傳統(tǒng)房產測量精度不高的來源。</p><p> 傳統(tǒng)房產測量內業(yè)處理相對現在模式來說也比較簡單。它除去了復雜的共用面積的分攤模式,也不存在外半墻的分攤。通常是除去共有墻,其他都歸為自有墻,統(tǒng)一劃入權屬面積中。所以如果一幢房屋經過新舊兩種模式測算后面積往往會差,這也是不可避免的。在面積計算上,傳統(tǒng)的方法是用純手工計算的。對于不規(guī)則多邊形,傳統(tǒng)的方法往往是將其分割成多個規(guī)則矩形來計算,在計算過程的誤差又
16、會在不同程度上累積。最后從總體上來看,誤差比較大。這種情況在以前是一種普遍的現象,是不可避免的。</p><p> 要達到高精度的房產測繪成果,必需在硬件設備和軟件上進行改進。隨著經濟的迅速發(fā)展,現在的房產測繪外業(yè)使用的設備都是非常先進的。在房產平面控制測量時,其精度已達到末級相鄰基本控制點的相對點位中誤差不超過±0.025m的要求。在軟件方面,房產測量現在最主要使用的繪圖軟件是AutoCAD。Aut
17、oCAD是由美國Autodesk歐特克公司于二十世紀八十年代初為微機上應用CAD技術而開發(fā)的繪圖程序軟件包,經過不斷的完善,現已經成為國際上廣為流行的繪圖工具。AutoCAD具有良好的用戶界面,通過交互菜單或命令行方式便可以進行各種操作。它的多文檔設計環(huán)境,讓非計算機專業(yè)人員也能很快地學會使用。在不斷實踐的過程中更好地掌握它的各種應用和開發(fā)技巧,從而不斷提高工作效率。AutoCAD具有十分強大的平面繪圖功能。利用AutoCAD自身的輔助
18、命令及房產測量外業(yè)采集到得數據,繪制出符合標準的房產草圖,并完成相關的操作。AutoCAD允許用戶定制菜單和工具欄,并能利用內嵌語言AutoLISP、Visual LISP、VBA、ADS、ARX等進行二次開發(fā)。房產草圖繪制過程,具有重復性,也比較繁瑣,但是又要求十分嚴格</p><p> 然而作為一般的房產測量工作者,編寫程序確實是一個比較新的挑戰(zhàn),再加上人們對這一領域往往不是很熟悉,在時間、精力以及現實情況
19、上,很多人往往堅持原來的繁瑣的房產草圖繪制模式。這種做法往往是不明智的。我們從事的房產測量工作是重復的長期的過程,好的方法可以讓我們達到事半功倍的效果,再加上AutoLISP編程語言并不是一個復雜的語言。AutoLISP編程語言對程序編寫的環(huán)境要求比較簡單,只要是一般的文書編輯軟件,可編輯ASCII檔案者都適用。AutoLISP編程語言不同于其他編程語言,AutoLISP代碼是不需要編譯的,用戶可以在命令行中直接輸入代碼并立即看到結果。
20、AutoLISP編程語言的這種特性為我們在繪制房產草圖的過程中提供了很大的便利。房產草圖在繪制時要求層次清晰,功能明確。一幅標準的房產草圖包含了該房屋的各種不同屬性,我們在繪圖之前就要根據不同的功能屬性建立不同的圖層,以方便管理和編輯。利用AutoLISP編程語言編寫的程序可以很方便的對某個需要編輯的圖層進行統(tǒng)一編輯,從而省去了不必要的重復工作,提高了工作效率和質量。所以在房產測量中運用AutoLISP編程語言編寫一些小程序來輔助生產&
21、lt;/p><p><b> 1.2 文章的組織</b></p><p> 文章由以下幾個部分構成:</p><p> 第一章:緒論。首先分析了傳統(tǒng)房產測量外業(yè)、內業(yè)精度低的各種來源;其次比較現在新模式下房產測量的優(yōu)勢;最后在新模式的基礎上引出運用AutoLISP編程語言來輔助房產內業(yè)工作,以達到去重就簡,高效率、高質量完成生產需要的結果。&
22、lt;/p><p> 第二章:房產測量的研究背景。首先介紹了房產測繪的目的和內容,然后再全面介紹了房產測繪的相關知識:包含房產測量外業(yè)、房產測量內業(yè)、房產測量的關鍵技術以房產測量數據成果的利用等內容。</p><p> 第三章:AutoLISP語言簡化房產測量工作的實現過程。主要涉及房產測量新舊模式的特點及比較等方面,最后引出了AutoLISP編程語言的相關內容和運用AutoLISP編程語
23、言簡化房產測量內業(yè)工作的實現。</p><p> 第四章:便于房產測量草圖繪制方法的設計。根據房產測量草圖主要要素的提取來確定所要編寫的具有針對性程序的思路。最后用具體實例來說明AutoLISP編程語言在房產測量中的應用。</p><p> 第五章:全文總結了AutoLISP編程語言在房產測量中的應用現狀,也提出了論文中存在的不足及需要改進的地方。</p><p&g
24、t; 2房產測量的研究背景</p><p> 2.1房產測量的目的和內容</p><p> 房屋通常是人們最關心的事物,是人們生活能夠得以穩(wěn)定的重要因素。人們所居住的房屋的好壞直接影響到生活的質量以及社會的長治久安。然而對于居住的房屋,人們不僅僅會關心房屋的好壞,房屋的實際面積及產權歸屬也都是人們非常關注的問題。要解決這些相關的問題,必須要有關于房屋的信息才行。房屋的這方面的相關信息
25、就要靠房產測量手段才能獲取。</p><p> ?。?)房產測量的目的和任務</p><p> 房屋是人們生產和生活的場所,房屋和房屋用地是人們生產和生活的基本物質要素,這一要素信息的采集和表述,必須經過房地產測量,所以房地產測量是房地產管理工作的重要基礎。準確而完整的房地產測繪成果是審查確認房屋的產權、產籍、保障產權人合法權益的重要依據,也是發(fā)展房地產業(yè),進行城市建設和管理的必不可少的
26、基礎資料。</p><p> 房產測量的目的和任務就是采集和表述房屋以及房屋用地的有關信息,為房地產管理,尤其是為房屋的產權、產籍管理提供準確可靠的成果資料。同時也為房地產開發(fā)、征收稅費、城鎮(zhèn)規(guī)劃建設以及為市政工程等提供數據和資料。[1]</p><p> ?。?)房產測量的作用</p><p> 《房產測量規(guī)范》是為房產產權、產籍管理、房地產開發(fā)利用、交易、征
27、收稅費,以及為城鎮(zhèn)規(guī)劃建設提供數據和資料。歸納起來有以下三個方面的作用。</p><p><b> 1)法律方面的作用</b></p><p> 房地產測量為房地產的產權產籍管理、房地產開發(fā)提供房屋和房屋用地的權屬界址、產權面積、權源及產權糾紛等資料,是進行產權登記、產權轉移和產權糾紛的依據,確認以后的房地產成果資料具有法律效力。</p><p
28、> 在國際上,這種不動產的地籍測量都認定為一種政府行為的官方測量,或者說是為產權主提供官方證明。</p><p> 2)財政經濟方面的作用</p><p> 房地產測量成果包括房地產的數量、質量、利用現狀等資料,是為進行房地產評估、征收房地產稅費、房地產開發(fā)、房地產交易、房地產抵押,以及保險服務等方面提供數據和資料。</p><p> 3)社會服務方面
29、的作用</p><p> GB/T17986.1~17986.2——2000《房產測量規(guī)范》系列標準的服務對象,著重點和主要目標是滿足產權和產籍管理的需求,以及房地產其他管理方面的需求,但是隨著社會主義市場經濟的形成和發(fā)展,房地產測繪也會進入市場,房地產測繪的服務將面向社會,它不僅為房地產業(yè)服務,而且也可為城鎮(zhèn)規(guī)劃、建設、市政工程、公共事業(yè)、環(huán)保、綠化、治安、消防、文教衛(wèi)生、水利、交通、財政稅收、金融、保險、工
30、商管理、旅游、街道照明、上、下水工程、通訊、燃氣供應等城鎮(zhèn)事業(yè)提供基礎資料和有關信息。這是保證信息共享、避免重復測繪,重復投入的重要措施。[1]</p><p> 要詳細了解房產測量的相關內容,還要對房產測量有關名詞的解釋有所了解:</p><p> a)房地產測量:房地產測量是采集和表述房屋和房屋用地有關信息的一門技術。</p><p> b)采集和表述:采
31、集是指采用測繪科學技術,按照房地產管理的要求和需要,對房屋和房屋用地的有關信息進行調查和測量。表述是指對房屋和房屋用地的幾何、地理、物理特性,用數字、文字、符合、影像進行描述,供產權人和有關人士使用。</p><p> c)房屋和房屋用地:房屋必須占用土地,房屋和房屋用地習慣稱房地產,房屋和土地是不可移動的、價值巨大的、經久耐用的個人財產和社會財富。房屋包括主體房屋、房屋附屬設施和房屋維護物。主體房屋包括一般房
32、屋、架空房屋、窯洞、地下室、蒙古包等建筑物;房屋附屬設施包括廊(有柱走廊、檐廊、挑廊、門廊、架空通廊)、陽臺(封閉陽臺、不封閉陽臺)、門(門、門斗、門墩、門頂)、室外樓梯、臺階等;房屋維護物包括圍墻、柵欄、欄桿、籬笆、鐵鋼絲、溝、坎、河、渠等。房屋用地是指房屋占地和生產生活所用土地的總稱。包括房屋的占地面積、院落面積,還包括房屋附屬設施和房屋維護物所占的面積。房屋用地是房地產測繪必不可少的要素,因為它是對房屋定位和描述的依據和基礎。&l
33、t;/p><p><b> 2.2房產測量外業(yè)</b></p><p> 房產測量的外業(yè)是個比較復雜的過程,包含多個程序,每個程序之間相互關聯,緊密聯系,無論哪個程序出了差錯,都會影響整個測量工作的進行。房產測量外業(yè)主要任務是采集內業(yè)所需的所有數據以及確定房屋的各種屬性和地理位置。房產測量外業(yè)主要包括以下幾個方面。</p><p> ?。?)房
34、產平面控制測量</p><p> 房產測量的第一步就是在測區(qū)建立一個高精度的、有一定密度的、可以長期使用的、覆蓋全區(qū)的平面控制網。這是保證房產測量成果質量的基礎。</p><p> 平面控制點可以利用已有符合房產測量規(guī)范的現有成果,必要時則應自行布測房產平面控制網。</p><p> 不論是利用其他單位的成果,還是自己建立的控制,都應按照《房產測量規(guī)范》的規(guī)定
35、和要求進行檢核,這是房產測量的基礎,也是今后建立房地產信息系統(tǒng)的基礎。</p><p> 所有的測量都離不開一個基準,即所謂的測量基準。測量基準是測繪過程及測繪成果所用基準的總稱。它包括大地基準、長度基準、天文基準、高程基準、重力基準、海深基準、投影基準等,它是在測繪中選用的參照系和起算數據。國家標準《房產測量規(guī)定》中所講的測量基準只包括房地產測量過程中及其成果直接使用的基準,主要是坐標系統(tǒng)和高程基準。房產測量
36、一般不測高程,所以本文不作房產高程測量基準的介紹。</p><p> 房產測量的坐標系統(tǒng)應采用1980年西安坐標系或地方坐標系。采用地方坐標系時,應和國家坐標系聯測。</p><p> 從長遠和全局考慮,國家也要求全國應采用統(tǒng)一的國家大地坐標系統(tǒng),并使各城市的城市控制網成為國家控制網的一部分。但是由于歷史的原因,在相當長一段時期內我國沒有形成和提供覆蓋全國的高精度的國家大地控制網成果,
37、而城市由于規(guī)劃和建設的需要,許多大中城市都先后建立了自己獨立的地區(qū)性的大地控制網,形成了自己的大地坐標系統(tǒng)和平面坐標系統(tǒng)。這些城市控制網一般質量好,投影變形很小,能滿足大比例尺測圖和施工放樣的需要。這些城市控制成果一般也能滿足城鎮(zhèn)地籍測繪和房產測繪平面控制需要。在大中城市一般采用地方坐標系統(tǒng),但是為了從分利用現有的成果資料,保持城市測繪成果資料的統(tǒng)一和共享,也為了房產測繪成果能為城市的經濟建設、為相關行業(yè)服務,所以在國家標準《房產測量規(guī)
38、范》中提倡使用國家統(tǒng)一的坐標系統(tǒng)——1980年西安坐標系,采用地方坐標系的,應和國家坐標系聯測,聯測點不少于三個,其目的是保證必要時能將地方坐標系轉換為國家坐標系。</p><p> 利用房產平面控制網中的已知點對房屋進行碎部測量,并在室內繪制出房屋的地形圖作為宗地圖的原始資料。</p><p> ?。?)房屋邊長數據的野外采集</p><p> 房產草圖的繪制
39、必需以野外量測的房屋邊長數據為依據。房屋邊長數據的采集所需工具為手持激光測距儀,鋼卷尺。由于存在誤差累積的情況,所以一般一邊要盡量少次測完,而且要重復測量取平均值。量邊時還要注意內外控制好。屋外總長數據一般要和屋內同一邊總長數據做對比,相互檢核,這樣才不會出現錯誤邊長。</p><p><b> 2.3房產測量內業(yè)</b></p><p> 房產測量外業(yè)數據采集完
40、全后,內業(yè)相關工作就著手進行。房產草圖的繪制是內業(yè)工作的基礎,是十分重要的一個環(huán)節(jié)。</p><p> 房產草圖采用雙線表示方法,形象逼真地顯示了房屋的平面信息:房屋套內布局、外墻墻厚、套內墻厚、權屬范圍等。</p><p> 下圖2-1就是一幅標準的房產草圖樣式。</p><p> 該圖只是一幢房屋中的其中一層。對于不是標準層的層圖,繪制時要全部繪制出來。從
41、下圖我們可以看出,一幅房產草圖包含的要素也是十分復雜的。</p><p><b> 圖2-1</b></p><p> 2.4房產測量的關鍵技術</p><p> 房產外業(yè)測量和很多測量在程序和操作上一樣,但又不完全一樣,它有它獨特之處,例如在房產地形圖測繪過程中,碎部點的高程一般都不要求測出來,除非是地形起伏較大的山城或丘陵城市,對地形
42、變化的特征處測定高程特征點的高程,按照國家標準《房產測量規(guī)范》中的規(guī)定進行表述,并標出其高程值。房產測量內業(yè)是整個工作中的關鍵,所以內業(yè)工作進展順利與否直接影響整個項目的效率和質量。所以房產測量的一些關鍵技術必須掌握好。</p><p> ?。?)房產測量外業(yè)、內業(yè)同步進行:在房產測量作業(yè)過程中,外業(yè)和內業(yè)往往是同步進行的。這樣不但有利于縮短作業(yè)時間,而且便于檢核,經內業(yè)檢核出來的問題,可以在下次外業(yè)時及時解決。
43、</p><p> ?。?)房屋外框的全局控制:房產測量中,房屋面積計算是否準確與房屋外框的控制是直接相關的。房屋外框沒有控制好,我們計算出來的面積往往是不對的。所以如何控制外框是關鍵。在外業(yè)量邊過程中通常是先量出房屋的外邊長,然后再量出室內邊長,根據室內邊長總和與外邊長相比較,同一邊的這兩組數據之差不能超過3cm。</p><p> ?。?)上下層草圖套用畫法:房產草圖繪制時,并不是逐層
44、從頭到尾一步一步地繪制。我們都是繪制出一個標準層的草圖,然后其他層再以這個標準層為基礎進行修改,這樣不但出錯少,效率也高。</p><p> ?。?)利用AutoLISP編程語言輔助繪圖:在繪圖過程中往往有很多重復的步驟,這時有必要運用AutoCAD加載用AutoLISP編程語言編寫的程序來進行圖形的批量編輯。</p><p> 3 AutoLISP語言簡化房產測量工作的實現過程<
45、/p><p> 3.1房產測量作業(yè)模式</p><p> 房產測量作業(yè)模式在不同的城市,不同時期都會不同。從我們現在做的房產測量數據數字化的工作中,發(fā)現先前的房產測量工作模式存在的問題還是比較多的。問題的關鍵還是由于當時的技術不成熟及設備不先進。現在就不一樣了,隨著社會經濟的不斷發(fā)展,先進設備及技術的不斷引進,使得房產測量工作變得更加嚴密,更能體現現在市場經濟的需求。</p>
46、<p> 3.1.1房產測量傳統(tǒng)作業(yè)模式</p><p> 房產測量傳統(tǒng)作業(yè)模式主要還是體現在內業(yè)數據處理上。</p><p> 1.傳統(tǒng)房產測量草圖都是繪制在聚酯薄膜紙上,繪制時同樣要按照一定的比例。</p><p> 2.將繪制在聚酯薄膜紙上的草圖復印多份。畫出房屋各套的權屬線,及公攤部分的權屬。標出門牌號、戶式號及各功能區(qū)注記。</p
47、><p> 3.根據畫出的權屬線范圍,將權屬多邊形分割成多個規(guī)則幾何圖形,計算出這些幾何圖形的面積,面積和就為該權屬范圍的面積。</p><p> 4.用以上同樣的方法計算出公用部分的面積,依據分攤方式最后計算出經分攤后的各套的面積。</p><p> 傳統(tǒng)模式下的房產測量數據資料不易保存,容易破損和丟失,而且在計算過程中誤差累積次數比較多。在定義權屬范圍時也不是
48、很嚴密,傳統(tǒng)的方法下沒有定義外半墻,除去和其他戶室共用的墻外,其他都為自有墻,與公共部分共用的墻也為自有墻。這種情況下,傳統(tǒng)方法測量的房屋面積一般較現在方法下的大,這就給以后測算帶來了一些問題。</p><p> 3.1.2房產測量新作業(yè)模式</p><p> 房產測量新模式與傳統(tǒng)模式相比,在使用設備,繪圖軟件上都有相當大的優(yōu)勢,尤其是在軟件應用上體現的更為突出:</p>
49、<p> 1.現在使用最好的繪圖軟件是AutoCAD,AutoCAD在繪圖上有著非常強大的功能。它有如下特點:</p><p> (1)具有完善的圖形繪制功能。</p><p> (2)有強大的圖形編輯功能。</p><p> (3)可以采用多種方式進行二次開發(fā)或用戶定制。</p><p> (4)可以進行多種圖形格式的
50、轉換,具有較強的數據交換能力。</p><p> (5)支持多種硬件設備。</p><p> (6)支持多種操作平臺</p><p> (7)具有通用性、易用性,適用于各類用戶此外,從AutoCAD2000開始,該系統(tǒng)又增添了許多強大的功能,如AutoCAD設計中心(ADC)、多文檔設計環(huán)境(MDE)、Internet驅動、新的對象捕捉功能、增強的標注功能以及
51、局部打開和局部加載的功能,從而使AutoCAD系統(tǒng)更加完善。</p><p> 可以采用多種方式對AutoCAD進行二次開發(fā)或用戶定制,這一特點我們常常利用來簡化我們房產草圖的繪制過程。</p><p> 2.現在房產測量權屬范圍定義與傳統(tǒng)模式下的房產測量權屬范圍定義有很大改變?,F在的權屬線都是過中線的,即有外半墻部分。最后的外半墻面積會根據規(guī)范要求進行分攤,而不是想以前那樣直接歸入相
52、應的戶室。這樣來說更加合理,更能體現現在《房產測量規(guī)范》的要求及市場的要求。</p><p> 3.由于生產的都是電子產品,并入庫到相應的系統(tǒng)中,這樣不僅方便保存及查詢,更能為以后的配圖工作提供很大的便利。</p><p> 3.1.3對房產測量新作業(yè)模式的改進</p><p> 在房產測量過程中,繪制草圖雖然已經有了AutoCAD這個很強大的軟件,但是房產測
53、量內業(yè)有著很多重復繁瑣的過程。</p><p> 1.權屬線生成。當房產草圖雙線圖完成后,就要生成權屬線。而且,對于全算面積、半算面積的權屬線的線性是不一樣的。全算面積的權屬線為封閉的實線多邊形;半算面積的權屬線為封閉的虛線多邊形。</p><p> 2.房屋邊長注記。一幅標準的房產草圖,邊長注記是必不可少的。單純用CAD中的命令將是一項很大的工程。</p><p&
54、gt; 3.開門。草圖畫完了,房子的門就肯定要開。用CAD自帶的修剪命令效率不是很高。</p><p> 除了以上列出的情況外,還有一些繪圖程序也是具有重復性的,比如權屬面積的計算等。對于這些重復性的過程,我們可以利用AutoLISP編程語言對CAD進行二次開發(fā)或根據需求編寫一些程序輔助房產測量內業(yè)處理。下文就針對利用AutoLISP編程語言編寫一些應用程序來輔助繪圖展開介紹。</p><
55、p> 3.2 AutoLISP編程語言</p><p> LISP(List Proccessing Language)是一種計算機的表處理語言,是在人工智能科學領域廣泛應用的一種程序設計語言。AutoLISP語言室嵌套與AutoCAD內部、將LISP語言和AutoCAD有機地結合起來的產物。使用AutoLISP可以直接調用幾乎所有的AutoCAD命令。AutoLISP語言既具備一般高級語言的基本結構和
56、功能,又具有一般高級語言所沒有的強大圖形處理功能,是當今世界CAD軟件中被廣泛采用的語言之一。[2]</p><p> 美國Autodesk公司在AutoCAD內部嵌入AutoLISP的目的是為了使用戶充分地利用AutoCAD進行二次開發(fā),實現直接增加和修改AutoCAD命令,隨意擴大圖形編輯功能,建立圖形庫和數據庫,并對當前圖形進行直接訪問和修改,開發(fā)CAD軟件包等。[2]</p><p&
57、gt; AutoLISP語言最典型地應用之一是實現參數化繪圖程序設計,包括尺寸驅動程序和鼠標拖動程序等。尺寸驅動程序是通過改變實體標注的尺寸值來實現圖形的自動修改,鼠標拖動即利用AutoLISP語言提供的(GRREAD[<track>])函數,讓用戶直接讀取參數值以自動改變屏幕圖形大小和形狀。迄今為止,大多數參數化程序都是針對二維平面圖編制的。</p><p> 3.2.1 AutoLISP編程語
58、言的特點</p><p> 編程語言有很多種類,各自都有其獨特之處,AutoLISP編程語言具有如下特點:</p><p> 1. AutoLISP語言是在普通LISP語言基礎上,擴充了很多適用于CAD應用的特殊功能而形成的,是一種僅能以解釋方式運行于AutoCAD內部的解釋型程序設計語言。</p><p> 2. AutoLISP語言中的所有成分都是以函數形
59、式給出的,它沒有語句概念和其它語法結構。執(zhí)行AutoLISP程序就是執(zhí)行一些函數,再調用其它函數。</p><p> 3. AutoLISP把數據和程序統(tǒng)一表達為表結構,即S—表達式,故可以把程序當作數據來處理,也可以把數據當作程序來執(zhí)行。</p><p> 4. AutoLISP語言中的程序運行過程就是對函數的求值過程,是在對函數求值的過程中實現函數的功能。</p>&
60、lt;p> AutoLISP程序的結構特點:</p><p> 一般的AutoLISP程序的結構特點是這樣的:AutoLISP中的所有功能都是以表的形式調用內部函數或用戶函數來實現的,其調用形式為:</p><p> ?。ê瘮得?變元1 變元2 變元3……變元nF)</p><p> 括號里的每項之間用空格隔開,變元可以是常數、變量以及對其它函數的調用
61、。我們把這種函數的調用形式稱為表達式。表達式的書寫規(guī)矩是:</p><p> 1.前綴表示法。大多數計算機語言采用是“中綴表示法”。而在AutoLISP語言中,采用的是前綴表示法,即把運算符放在操作數之前,并把操作數(調用函數的參數)和運算符(函數名)用圓括號括起來。如:(setq d(-(*b b)(*4.0 a b))</p><p> 2.表的第一個元素必須是函數名。若是數值,在
62、括號前應帶單引號“'”。</p><p> 3.函數名與第一變元之間以及相鄰兩變元之間必須用空格隔開,計算機把表的第一項認作函數名,其余各項認作函數的變元。</p><p> 4.要注意表達式中括號和定界符的配對,這是程序中最常見的出錯原因。</p><p> 5.不能使用多余的括號。</p><p> 6.除字符常數中的字母以外,符
63、號名中的大小寫字母是等效的。</p><p> AutoLISP是一種書寫非常自由的語言,變元之間可用一個或多個空格隔開??梢砸恍袑懚鄠€表達式,也可以一個表達式分多行書寫。為了使程序結構直觀,便于閱讀,層次清晰,一般使用縮排形式來編寫程序。</p><p> 3.2.2加載和運行AutoLISP程序</p><p> 一個AutoLISP程序通常有兩個相關的名
64、稱:程序文件名和函數名。例如:Train.lsp是一個文件名,而不是函數名。所有的AutoLISP文件都以.lsp為文件擴展名。在一個相同的AutoLISP程序文件中可以有一個或多個函數定義。要運行一個函數,定義該函數的AutoLISP程序文件必須被裝載。當正在圖形編輯器中工作時,可用下面的命令裝載一個AutoLISP文件:</p><p> Command:(load"[path]file name")<
65、;/p><p> AutoLISP文件名和選項的路徑名必須包含在雙引號中,load命令和file name 參數必須包含在圓括號中。如果不加圓括號,則AutoCAD將試圖裝載一個圖形或一個字體文件,而不是裝載一個AutoLISP程序文件。在load和file name之間不需要空格。AutoCAD成功裝載文件后,將在屏幕的命令提示區(qū)顯示函數名。</p><p> 要運行程序,只要在Auto
66、CAD命令提示行鍵入該函數名,并按回車即可(command:函數名)。如果編程時函數名中沒有包含“C:”,則可以通過帶圓括號的函數名來運行程序:</p><p> Command:函數名或Command:(函數名)</p><p> 應當注意為加載一個AutoLISP程序,在定義其路徑時采用正斜杠。例如,如果AutoLISP文件Train存在于C:盤的LISP子目錄中,則可以使用如下命
67、令加載文件,也可以使用雙反斜杠代替正斜杠。</p><p> Command:(load"C:/lisp/train")</p><p><b> 或者</b></p><p> Command:(load"C:\\lisp\\train")</p><p> 我們也可以使用標準的Windows的拖放功能來裝載應
68、用程序。裝載一個LISP程序,可以從Windows資源管理器中把一個文件拖放進AutoCAD的圖形窗口中,這樣被選中的程序將自動被加載。另一個裝載程序的方法是:使用Load/Unload Application命令或在AutoCAD命令提示行中輸入Appload命令來調用。</p><p> 3.2.3 AutoLISP變量</p><p> AutoLISP中按照假設的數據類型賦值給
69、變量。變量將保存其初始值直到它們被賦新值??梢允褂肁utoLISP的Setq函數給變量賦值:</p><p> (Setq 變量1 值1[變量2 值2…])</p><p> Setq函數向已定的變量名賦值,并將結果作為值返回。如果在Visual LISP控制臺提示行中使Setq,結果顯示在控制臺窗口:</p><p> _$( Setq abc 95)<
70、;/p><p><b> 95</b></p><p> _$( Setq it"AutoCAD 2008")</p><p> ?。ⅲ羥toCAD 2008"</p><p> 在Visual LISP控制臺提示行中輸入如下的變量名,Visual LISP將顯示當前的變量值:</p><p>
71、<b> _$ abc</b></p><p><b> 95</b></p><p> 為了從AutoCAD命令提示行顯示變量的值,必須在變量名前加上“!”。例如:</p><p> Command:!abc</p><p><b> 95</b></p>
72、;<p><b> 1.Nil 變量</b></p><p> Nil是一種沒有賦給數值的AutoLISP變量。它不同于那些被認為是字符串的blank,也不同于數值0,因此,除了變量的當前數值之外,還可以確定變量是否已經被賦值。</p><p> 每個變量都將消耗少量的內存,因此當變量的值不再被使用的時候,將變量名重新使用或將變量設為nil是一種很
73、好的編程習慣。將變量設為nil可以釋放用來存儲變量值所用的內存空間。</p><p> 例如,假如不再需要cyy變量,可以用下列的表達式從內存中釋放變量的值:</p><p> _$(setq cyy nil)</p><p><b> nil</b></p><p> 此外,另一個良好的編程習慣是盡可能使用局部
74、變量。</p><p><b> 2.預定義的變量</b></p><p> 下列預定義的變量在Auto LISP應用中常見:</p><p> PAUSE:定義為有雙反斜杠“\\”組成的字符串。該變量被命令函數用來暫停用戶的輸入。</p><p> PI:定義為常量p(pi),它的值近似為3.1415926。&
75、lt;/p><p> T:定義為常量T,它被用來當作非nil的值。</p><p> 這里要注意的是,用setq函數能改變這些變量的值。但是,其它應用可能要依賴它們的值并希望它們是一致的。因此,建議不要更改這些變量。Visual LISP中的缺省設置將保護這些變量,直到它們被重新定義。通過Visual LISP符合服務特性或設置Visual LISP環(huán)境選項可以忽略這種保護。</p&
76、gt;<p> 3.3 AutoLISP語言與AutoCAD軟件的結合</p><p> 3.3.1 AutoCAD的語言開發(fā)環(huán)境</p><p> AutoCAD是世界上最流行的通用CAD平臺。在國內更是用戶眾多,影響深遠,尤其是在建筑行業(yè)和機械行業(yè)擁有數十萬的應用隊伍,堪稱CAD的標準平臺。自1982年Autodesk公司推出AutoCAD1.0,到今年推出的Aut
77、oCADR14,AutoCAD經歷了15年的發(fā)展。</p><p> AutoCAD于1986年v2.18版時提供了AutoLISP程序設計的支持,從此開始了可以在一個通用的CAD平臺上添加自己所需的特殊功能的能力。1987年AutoCADv2.6版推出,AutoLISP得到一些改善,這也正是國內流行AutoCAD及AutoCAD環(huán)境下開發(fā)編程的開始。1988年推出的AutoCADR10開始使得AutoLISP
78、程序可以在擴展內存中允許,這對于編寫稍大一點規(guī)模的應用程序提供了可能。AutoCAD第一代開發(fā)工具開發(fā)出的第一代應用軟件開始在國內流行。 </p><p> 1990年推出的AutoCADR11第一次在PC版的AutoCAD上提供了C語言開發(fā)環(huán)境(ADS)的支持,這使得在AutoCAD的上開發(fā)大規(guī)模的綜合性的應用程序成了可能,AutoCAD下的應用程序可以利用標準C語言提供的能力,編制出第一代工具無法實現的應用
79、。真正在國內普遍流行用第二代開發(fā)工具開發(fā)AutoCAD,是在1992年推出的AutoCADR12的基礎上進行的。1994年推出的AutoCADR12上第一次提供了面向對象的C++開發(fā)環(huán)境的支持(ARX),這就是AutoCAD第三代開發(fā)工具。AutoCAD本身在內核上也發(fā)生了本質的變化,盡管最終用戶并不會感覺到,但AutoCAD確實走向了一個開放式的面向對象的CAD平臺,為今后的進一步發(fā)展奠定了技術基礎。很遺憾的是R13上的ARX是個新生
80、事物,本身不完善,在不同的小版本上的ARX程序不兼容,直至R13C4版才較為穩(wěn)定。ARXSDK發(fā)布的初期所要求的開發(fā)環(huán)境也較為苛刻(要求MSVC2.1~2.2),現在已經可以利用MSVC4.x作為開發(fā)環(huán)境。今年剛發(fā)布的AutoCADR14將是經三代開發(fā)工具應用的舞臺,一方面的R14對ARX的支持更加可靠</p><p> 3.3.2 AutoLISP語言用于AutoCAD二次開發(fā)的特點</p>&
81、lt;p> AutoLISP是AutoCAD內嵌的一種解釋語言開發(fā)環(huán)境。AutoCAD從v2.18版開始,一直支持這種開發(fā)環(huán)境。AutoLISP的大部分功能是直接針對AutoCAD,它是一種很好的交互語言,很適合于CAD這類交互性很強的應用。</p><p> AutoLISP有如下優(yōu)點:</p><p> 1.語言規(guī)則十分簡單,易學易用AutoLISP來源了LISP語言,以一
82、種通用的規(guī)則-表(LIST),來描述過程和數據。由于這種規(guī)則極其簡單,一個對計算機了解不太深入的工程專業(yè)人員,僅需經短期的學習,就可以熟練掌握這門語言。LSIP語言的簡潔性是其它許多計算機語言所無法相比的,“萬能”的表屏蔽了復雜的過程,可描述任何數據結構。</p><p> 2.直接針對AutoCAD,易于交互AutoLISP提供的大多數函數都是直接針對AutoCAD的操作,用AutoLISP編寫訪問AutoC
83、AD圖形數據庫(DWG)圖形數據庫的操作</p><p> 3.解釋執(zhí)行,立竿見影程序員既可以一次運行一段AutoLISP代碼,也可以在AutoCAD的Command下逐條鍵入AutoLISP指令,立即得到結果。</p><p> 隨著計算機技術的發(fā)展,CAD編程更加復雜,代碼越來越龐大,AutoLISP的缺點的也愈來愈明顯:</p><p> 1.功能單一,
84、綜合處理能力差 </p><p> 2.解釋執(zhí)行,程序運行速度慢 </p><p> 3.缺乏很好的保護機制,軟件質量不易保證</p><p> 4.LISP用來表描述一切,并不能很好的反映現實世界和過程,跟人的思維方式也不太一致。</p><p> 5.AutoLISP的這些特點,僅適合于有能力的終端用戶做些自己的開發(fā)任務。<
85、/p><p> 由于我們做的是房產測量方面簡單的圖形處理,AutoLISP雖然存在這些缺點,但是它的那些優(yōu)點足以達到我們的要求。</p><p> 3.4利用AutoLISP編程語言實現房產草圖的簡易繪制</p><p> 房產草圖的繪制過程是一個復雜繁瑣的過程,復雜體現在我們要依據外業(yè)量測的邊長數據去恢復房屋的實際形狀;繁瑣體現在草圖繪制過程中有很多過程要不斷的
86、重復進行。因為這樣,所以要提高我們繪圖的速度及效率,就得想法找到簡單易操作的方法來輔助房產測量草圖的繪制。</p><p> 根據前文介紹的關于利用AutoLISP編程語言來對AutoCAD進行二次開發(fā)的相關內容,我們知道利用AutoLISP編程語言編寫的應用程序可以有AutoCAD直接加載調用。我們可以利用這一點,根據繪圖的要求編寫一些簡單易懂的程序來幫助我們繪制房產草圖。</p><p&
87、gt; 在房產草圖的繪制的過程中,最常見的重復的操作就是給房屋線上標注、開門、過權屬、計算權屬面積等。</p><p> 給房屋線上標注時,如果采用CAD自帶的標注命令,耗費太多時間,效率明顯降低。利用AutoLISP編程語言的相關優(yōu)點設計一個可以批量標注的程序,并設定相應的格式。</p><p> 計算權屬面積時可以利用全算面積部分與半算面積部分線型不同可以在AutoLISP應用程
88、序中設定不同的計算公式,并實現自動識別線型計算權屬面積。</p><p> 其他相關操作同以上根據不同要求去設定程序編寫思路。</p><p> 4便于房產測量草圖繪制方法的設計</p><p> 利用AutoLISP編程語言編寫應用程序來輔助房產測量草圖的繪制,不但可以提高工作效率,而且還可以讓我們的圖面整潔清新。要達到我們想要的效果,設計思路是非常重要的。
89、我們必須根據想要的效果去設計,中間可能遇到的問題也要有所準備。所以這個過程也不是很簡單的。</p><p><b> 4.1設計思路</b></p><p> 利用AutoLISP編程語言來設計我們需要的應用程序,首先要明確我們想達到的效果,其次根據畫圖需要確定我們的變量及CAD調用的命令,再次確定我們要用到的函數。根據AutoLISP編程語言特點及繪圖要求,可以
90、用下圖來體現我們的設計思路:</p><p> 4.2房產測量草圖主要要素的提取</p><p> 4.2.1房產測量草圖墻厚的快速標注</p><p> 以下是房產測量草圖墻厚自動生成的程序:</p><p> ;※※※※※※※※※※※※※※※(程序[注墻厚])※※※※※※</p><p> (defun
91、c:QQ (/ sss plt dist text ent1 ent2)</p><p> (while (setq sss (ssget (list (cons 0 "LINE"))))</p><p> (setq plt (cadr (grread t 2 2)))</p><p> (setq dist (distance (v
92、lax-curve-getclosestpointto</p><p> (vlax-ename->vla-object (ssname sss 0))</p><p><b> plt</b></p><p><b> )</b></p><p> (vlax-curve-getcl
93、osestpointto</p><p> (vlax-ename->vla-object (ssname sss 1))</p><p><b> plt</b></p><p><b> )</b></p><p><b> )</b></p>
94、<p><b> )</b></p><p> (setq text (rtos (* 100 dist) 2 0))</p><p> (if(< dist 0.1)</p><p> (setq pt1 (list (- (car plt) 0.083) (- (cadr plt) 0.125)))</p&g
95、t;<p> (setq pt1 (list (- (car plt) 0.235) (- (cadr plt) 0.175)))</p><p><b> )</b></p><p> (entmake (list '(0 . "CIRCLE")</p><p> (cons 10 plt)&
96、lt;/p><p> '(40 . 0.4)</p><p> '(8 . "數據注記")</p><p><b> )</b></p><p><b> )</b></p><p> (entmake (list '(0 .
97、 "TEXT")</p><p> '(8 . "數據注記")</p><p> (cons 10 pt1)</p><p> '(40 . 0.35)</p><p> (cons 1 text)</p><p> '(8 . "數據
98、注記")</p><p><b> )</b></p><p><b> )</b></p><p><b> )</b></p><p><b> )</b></p><p> 4.2.2房產測量草圖權屬面積的
99、獲取</p><p> ;※※※※※※※※※※※※※※※(程序一[求單元面積])※※※※※※※</p><p> (defun c:MJ ()</p><p> (setvar "CLAYER" "說明注記")</p><p> (setvar "CECOLOR" "
100、;Bylayer")</p><p> (setvar "CELTYPE" "Continuous")</p><p> (setq pt (getpoint "\n請選定注記位置:"))</p><p> (setq pt (polar pt 1.5707963267948966192 1
101、))</p><p> (while (setq ss (ssget '((0 . "LWPOLYLINE"))))</p><p><b> (progn</b></p><p> (setq n 0)</p><p> (setq pt (polar pt 1.5707963267
102、948966192 -1.0))</p><p> (repeat (sslength ss)</p><p> (setq name(ssname ss n))</p><p> (setq e(entget name))</p><p> (setq e1(cdr(assoc 6 e)))</p><p>
103、 (command "area" "o" name)</p><p> (setq m(getvar "area"))</p><p> (if (or (= e1 "6") (= e1 "DASHED") (= e1 "DASHED2")) (setq m(/ m
104、 2)))</p><p> (setq qh (strcase(getstring "\n請輸入單元號:")))</p><p> (command ".text" "S" "STANDARD" (polar pt 0 (* 5 n)) 0.5 "0" (strcat qh "
105、;=" (rtos m 2 3)))</p><p> (setq n(1+ n))</p><p><b> )</b></p><p><b> )</b></p><p><b> )</b></p><p><b>
106、 )</b></p><p> 4.2.3房產測量草圖開門程序設計</p><p> ;※※※※※※※※※※※※※※※(程序五[開門])※※※※※※※※</p><p> (defun c:KM ()</p><p> (command "OSNAP" "NONE")</p&g
107、t;<p> (setvar "CLAYER" "房屋層")</p><p> (command "layer" "off" "數據注記" "off" "權屬層" "off" "說明注記" "off"
108、; "0" "off" "22"</p><p> setvar "CECOLOR" "Bylayer")</p><p> (setvar "CELTYPE" "Continuous")</p><p> (setq a
109、4(getpoint"\n第一點:"))</p><p> (setq b4(getpoint"\n第二點:"))</p><p> (setq ss(ssget "_C" a4 b4))</p><p> (setq a (entget(ssname ss 0)))</p><p
110、> (setq b (entget(ssname ss 1)))</p><p> (setq a1(cdr(assoc 10 a)))</p><p> (setq a2(cdr(assoc 11 a)))</p><p> (setq b1(cdr(assoc 10 b)))</p><p> (setq b2(cdr(a
111、ssoc 11 b)))</p><p> (setq a3(polar a4 (+ 4.7123889803846898 (angle a1 a2)) 20))</p><p> (setq a4(polar a4 (+ 1.5707963267948966 (angle a1 a2)) 20))</p><p> (setq b3(polar b4 (+
112、1.5707963267948966 (angle b1 b2)) 20))</p><p> (setq b4(polar b4 (+ 4.7123889803846898 (angle b1 b2)) 20))</p><p> (setq m1(inters b1 b2 b4 b3))</p><p> (setq m2(inters a1 a2 b4
113、b3))</p><p> (setq n1(inters a1 a2 a4 a3))</p><p> (setq n2(inters b1 b2 a4 a3))</p><p> (command "break" m1 n2)</p><p> (command "break" n1 m2)
114、</p><p> (command "line" m1 m2 "")</p><p> (command "line" n1 n2 "")</p><p> (command "layer" "ON" "數據注記" &q
115、uot;ON" "權屬層" "ON" "說明注記" "ON" "0" "ON" "22"</p><p> command "osmode" "129")</p><p><b> )&l
116、t;/b></p><p><b> 5結論</b></p><p> 隨著社會的發(fā)展,房產測量的重要性在日常生活中越來越被人們關注。房產測量成果質量直接影響到人們的日常生活的正常運轉。尤其是現在房產測量單位的日益增多,對于房產測量工作的要求是各有不同,但是萬變不離其宗,不管我們用何方法進行房產測量,都必須遵守以事實為依據的原則,這樣才能保證房產測量成果的真
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 程序語言的語法描述
- c++程序語言設計
- 程序設計簡介(程序語言簡介.ppt)
- autolisp 應用程序源代碼
- 概率認知邏輯程序語言的研究.pdf
- 基于程序語言機制的信息釋放策略.pdf
- 函數式并行程序語言研究.pdf
- 移動進程作為程序語言庫函數的研究.pdf
- 《程序語言綜合課程設計》實驗報告
- 基于程序語言的完整性安全模型.pdf
- c++程序語言教程 第二章
- 框架時序邏輯程序語言MSVL的形式語義.pdf
- 房產測繪中測量技術的應用分析
- rtk在房產平面控制測量中的應用及誤差分析
- 高級程序語言課程設計題及參考資料
- 函數式程序語言與傳值進程演算的關系研究.pdf
- 面向VHDL算法級行為描述的程序語言編譯方法研究.pdf
- 簡析房屋測量在房產管理中的作用
- 房產測量與測量中的問題初探
- 樓盤管理在房產管理中的應用
評論
0/150
提交評論