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

?

Visual LISP程序設計在市政管線竣工測量的應用

2017-07-07 12:43劉剛張小波
城市勘測 2017年3期
關鍵詞:二次開發(fā)程序設計間距

劉剛,張小波

(成都市勘察測繪研究院,四川 成都 610081)

Visual LISP程序設計在市政管線竣工測量的應用

劉剛*,張小波

(成都市勘察測繪研究院,四川 成都 610081)

傳統(tǒng)方式下的AutoCAD圖形編輯,存在大量機械重復人工操作,已不能滿足現(xiàn)代化工程測量作業(yè)要求?;趦?yōu)化作業(yè)流程、保證數(shù)據(jù)質量、提高作業(yè)效率,便于各級質檢等目的,在市政管線竣工測量內業(yè)處理中,以管線竣工圖上標注竣工間距為例,利用Visual LISP程序設計實現(xiàn)AutoCAD平臺的二次開發(fā)。

Visual LISP;AutoCAD;二次開發(fā);市政工程;管線竣工測量

1 引 言

隨著城市化的發(fā)展,城市市政工程建設規(guī)模不斷擴大,使用功能日趨復雜。城市地下管線由單一、簡單的管線發(fā)展到多類別、多權屬和布局復雜的管線網。任何一種管線發(fā)生故障,都會對城市建設、居民生活帶來重大影響。因此須按照城市規(guī)劃管理的要求,精確獲取管線數(shù)據(jù),在數(shù)字化地形圖中,綜合疊加地下及地面的各類管線竣工數(shù)據(jù)、規(guī)劃區(qū)域和規(guī)劃道路等基礎測繪信息,形成一個基于測繪數(shù)據(jù)的城市管線信息系統(tǒng)。本文主要敘述基于AutoCAD制圖軟件,在市政管線竣工測量內業(yè)處理中應用Visual LISP程序設計進行二次開發(fā),打破傳統(tǒng)作業(yè)方式,從而實現(xiàn)內業(yè)的自動化處理,適應新時代工程測量作業(yè)要求。

2 作業(yè)流程

2.1 管線竣工測量階段

測繪單位對竣工管線進行外業(yè)實測,測量內容包括:平面坐標位置、井底及地面高程、管頂高程、溝底高程,電力桿、地上架空管道可不測架空管線高程,調查內容包括:種類、走向、管徑(圓徑及方徑)、管數(shù)及孔數(shù)、附屬物、特征、管偏、埋設方式、壓力、電壓、流向、埋管時間、材質、權屬單位、探測單位等。

我院管線竣工測量具體流程如圖1所示:

2.2 管線竣工驗收階

城市規(guī)劃部門負責對竣工管線進行竣工驗收工作,其中,比對經規(guī)劃審定的設計數(shù)據(jù)與測繪單位提供的竣工數(shù)據(jù)是其中一項驗收項目,對比設計圖“規(guī)劃間距”與竣工點位到道路規(guī)劃中線(以下簡稱“竣工間距”),判斷管線位置是否按“規(guī)劃間距”修建,將“竣工間距”作為管線竣工的驗收依據(jù)之一。

圖1 管線竣工測量作業(yè)流程

3 作業(yè)難點

在內業(yè)數(shù)據(jù)處理時,管線竣工測量作業(yè)流程中第3、4步均可由程序完成,自動化程度較高,但目前第5、6步均為人工操作。對于動輒幾十個、多則數(shù)百個、甚至上千個管線點來說,機械重復的人工操作,一方面工作效率低,另一方面出錯概率大,錯誤源主要來自以下幾個方面:

(1)CAD圖面標注時,沒有捕捉到相應管線點;

(2)CAD圖面標注時,沒有捕捉到相應中線,或者中線相應位置;

(3)填寫間距至竣工報告時,未將間距和點號一一對應,錯把A點間距輸入B點表格;

(4)填寫間距至竣工報告時,數(shù)字輸入錯誤。

此外,對于后期的資料質檢人員來說,無法快速、準確的核對竣工間距的正確性。

4 解決方案

4.1 工具選擇

Visual LISP既可以直接加載源代碼解釋執(zhí)行,也可以通過編譯器先將源代碼編譯為可執(zhí)行程序,然后再加載執(zhí)行。前者的優(yōu)點是可隨時測試或修改源代碼,可以利用所有的調試程序的工具;后者的優(yōu)點是提高了執(zhí)行速度,并對源代碼保密。利用Visual LISP程序設計實現(xiàn)在AutoCAD平臺的二次開發(fā)是較便捷、有效的辦法。

4.2 初步設計

用戶只需在AutoCAD中選擇參考線(道路中線、設計中線等),程序自動標注圖面所有管線點與線的間距,并生成報表,保存至與圖形同路徑處。

4.3 詳細設計

(1)定義函數(shù)

①設置間距標注樣式:標注圖層、箭頭類型、箭頭大小、文字大小、文字方向、文字偏移等;

代碼如下:

(vl-load-com)

(setq AcadObject (vlax-get-acad-object)

AcadDocument (vla-get-ActiveDocument AcadObject)

mSpace (vla-get-ModelSpace AcadDocument))

(setq F_DimStyle(vla-get-ActiveDimStyle AcadDocument)

F_DimStyles(vla-get-DimStyles AcadDocument))

(setq New_DimStyle(vla-add F_DimStyles "管線間距"));新建圖層

(vla-put-ActiveDimStyle F_Active New_DimStyle)

(setvar "dimblk" "_ArchTick");設置箭頭名稱

(setvar "dimasz" 0.6);設置箭頭大小

(setvar "dimdec" 2);設置精度,小數(shù)后2位

(setvar "dimpost" "m");設置后綴

(setvar "dimtoh" 0);設置文字方向

(setvar "dimtih" 0);設置文字方向

(setvar "dimtad" 1);設置文字垂直

(setvar "dimtxt" 0.5);設置文字大小

(setvar "dimgap" 0.5);設置文字偏移量

(command "_DIMSTYLE" "S"(getvar "DIMSTYLE") "Y");調用AutoCAD命令,保存間距標注樣式

②獲取圖形文件信息:文件名稱、文件路徑;

③獲取圖面信息:圖層名稱列表;

④調用Excel程序:生成報表模版。

(2)主函數(shù)

在AutoCAD命令行輸入“JGJJ”(竣工間距)后回車,程序開始執(zhí)行,具體流程如圖2所示:

圖2 主函數(shù)流程圖

其中,逐個提取點號、坐標,并計算間距的主要代碼如下:

(while(<= n P_len)

(setq P_ent(ssname P_ss(1- n))

P_xyz(cdr(assoc 10(entget P_ent(list "*"))))

P_xy(reverse(cdr(reverse P_xyz)))

D_list(list)

nn 1)

(while(<= nn L_len)

(setq L_ent(ssname L_ss(1- nn))

xdstyle(cdr(assoc 0(entget L_ent)))

vlaobj(vlax-ename->vla-object L_ent)

L_xyz(vlax-curve-getClosestPointTo vlaobj P_xy)

L_xy(reverse(cdr(reverse L_xyz)))

P_dist(distance L_xy P_xy)

D_list(cons P_dist D_list) D_listC D_list

nn(+ nn 1))

(if(=(length D_listC) 1)

(setq min_dist(car D_listC))

(while(>(length D_listC) 0)

(setq min_dist1(car D_listC)

min_dist2(cadr D_listC))

(if(=(length D_listC)(- nn 1))

(if(> min_dist1 min_dist2)

(setq min_dist min_dist2

min_dist min_dist1))

(if(> min_dist1 min_dist)

(setq min_dist min_dist

min_dist min_dist1))

)

(setq D_listC(cdr D_listC))

)

)

(setq N_dist(length(member min_dist D_list))

xd(ssname L_ss(- N_dist 1))

xdstyle(cdr(assoc 0(entget xd)))

vlaobj(vlax-ename->vla-object xd)

L_xyz(vlax-curve-getClosestPointTo vlaobj P_xy)

L_xy(reverse(cdr(reverse L_xyz)))

P_DH(substr(cdr(caddr(car(cdr(assoc -3(entget P_ent(list "*"))))))) 6)

n(+ n 1)))

采用Visual LISP程序生成的竣工成果表如圖3所示:

圖3 竣工成果表

采用Visual LISP程序在AutoCAD圖面標注的間距如圖4所示:

圖4 竣工成果圖

5 測試對比

筆者采用實際生產中的數(shù)據(jù),模擬完成人工操作與程序執(zhí)行的對比測試,具體如下:

5.1 正確率對比

通過作業(yè)人員的認真操作,仔細核對,方可保證人工操作數(shù)據(jù)的正確性。

經過筆者反復測試,消除Visual LISP程序代碼Bug,可確保圖面標注以及報告填注的準確性。

5.2 效率對比

在保證數(shù)據(jù)正確的前提下,筆者通過自己和其他作業(yè)人員的實際操作,記錄完成不同數(shù)量標注花費的平均時間。同時,采用Visual LISP程序執(zhí)行方式完成相同數(shù)量標注的時間作為分析數(shù)據(jù),具體如表1所示:

效率對比數(shù)據(jù) 表1

備注:不同的系統(tǒng)配置和CAD版本,結果會略有不同;筆者使用的系統(tǒng)配置為:64位Win7旗艦版,8G內存,CAD2007。

時間對比如圖5所示:

圖5 時間對比

效率對比如圖6所示:

圖6 效率對比

5.3 對比分析

通過以上數(shù)據(jù)可得到以下結論:

(1)為保證數(shù)據(jù)的正確性,人工操作需每次花費大量時間,而編寫Visual LISP程序只需要一次性投入。

(2)隨著竣工點位數(shù)量的增加,人工操作花費的時間遠遠超過Visual LISP程序執(zhí)行;

(3)隨著竣工點位數(shù)量的增加,人工操作時間的增長速度明顯,Visual LISP程序執(zhí)行的增長速度可忽略不計;

(4)隨著時間的推移,人工操作的效率逐漸下降,竣工點位數(shù)量從1~1000,效率下降約40%;

(5)Visual LISP程序的效率在竣工點位數(shù)量從1~200的區(qū)間內迅速上升,當達到200以后,趨于穩(wěn)定。

綜上所述,利用Visual LISP執(zhí)行程序可有效地避免人為操作出現(xiàn)錯誤,降低作業(yè)人員勞動強度,提高作業(yè)人員作業(yè)速度,便于各級質檢人員檢查,達到了預定的目標。

6 結 語

目前的專業(yè)圖形編輯軟件,有基于AutoCAD平臺的,例如:南方CASS、中望CAD等;有自主研發(fā)平臺的,例如:南方iData數(shù)據(jù)工廠、清華山維EPS等,他們在數(shù)字成圖,數(shù)據(jù)入庫方面都已經相當成熟,但在特殊專業(yè)、復雜用途的圖形編輯中,依據(jù)現(xiàn)有軟件的功能往往難以實現(xiàn),我們可以通過對AutoCAD的二次開發(fā),解決工作中的實際問題,達到提高企業(yè)的生產效率和技術水平的目的。

本文通過Visual LISP程序設計在市政管線竣工測量內業(yè)處理應用中的一個示例,解決了長期以來在間距標注中由于人工操作帶來的勞動強度大、工作效率低、數(shù)據(jù)質量差三大難題。除此之外,我們還可以根據(jù)工作中的實際需求,利用Visual LISP強大的功能性、與AutoCAD良好的交互性,將Visual LISP程序設計擴展到市政管線竣工測量的其他方面以及其他測量工程。

[1] 李學志,方戈亮,孫力紅. Visual LISP程序設計AutoCAD 2006(第2版)[M]. 北京:清華大學出版社,2010.

[2] 陳伯雄,馮偉. Visual LISP程序設計技巧與范例[M]. 北京:人民郵電出版社,2002.

[3] 李曉輝,薛欣. 計算機輔助設計與繪圖(AutoCAD 2006 中文版)[M]. 北京:清華大學出版社,2006.

[4] CJJ/T8-2011.城市測量規(guī)范[S].

[5] CH/T 1037-2015.管線信息系統(tǒng)建設技術規(guī)范[S].

[6] 李灶強,湯麗珍. 基于VLISP開發(fā)生成平面輔助圖的實現(xiàn)[J]. 城市勘測,2012(6):113~116.

Visual LISP Programming In Municipal Pipeline Surveying Applications

Liu Gang,Zhang Xiaobo

(Chengdu Institute of Survey and Investigation,Chengdu 610081,China)

AutoCAD Graphics traditional mode,there are a large number of mechanical repetition of manual operations Can’t meet the operational requirements of modern engineering measurement. Based optimize processes,ensure data quality,improve operational efficiency,ease of quality control and other purposes at all levels in the municipal pipeline completed surveying process to the pipeline built drawings marked the completion of the pitch,for example,the use of Visual LISP program designed to achieve AutoCAD platform secondary development.

visual LISP;AutoCAD;secondary development;municipal works;pipeline surveying

1672-8262(2017)03-141-04

P209

B

2016—07—26

劉剛(1980—),男,工程師,主要從事市政工程測量產品審核等技術工作。

猜你喜歡
二次開發(fā)程序設計間距
基于Visual Studio Code的C語言程序設計實踐教學探索
淺談基于Revit平臺的二次開發(fā)
高速公路指揮中心小間距LED應用探討
淺談Mastercam后處理器的二次開發(fā)
從細節(jié)入手,談PLC程序設計技巧
西門子Easy Screen對倒棱機床界面二次開發(fā)
高職高專院校C語言程序設計教學改革探索
算距離
PLC梯形圖程序設計技巧及應用
ANSYS Workbench二次開發(fā)在汽車穩(wěn)定桿CAE分析中的應用
宁安市| 绥中县| 江口县| 鹤岗市| 寿宁县| 庐江县| 射阳县| 深州市| 武胜县| 将乐县| 镇安县| 多伦县| 义马市| 陵水| 大丰市| 荆州市| 吉木乃县| 婺源县| 灵寿县| 陵水| 阿克陶县| 闵行区| 余江县| 绵竹市| 佛冈县| 乳山市| 三亚市| 屯昌县| 茌平县| 吉林市| 湟中县| 吉安市| 阳原县| 岚皋县| 商河县| 鲁甸县| 南城县| 永德县| 和静县| 焉耆| 逊克县|