亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        LISP編程在管線探測(cè)工程制圖中的應(yīng)用

        2023-09-06 06:32:38吳思蘊(yùn)溫立委張漢春
        現(xiàn)代信息科技 2023年14期
        關(guān)鍵詞:測(cè)繪工程編程

        吳思蘊(yùn) 溫立委 張漢春

        摘 ?要:AutoCAD是全球領(lǐng)先的軟件,在測(cè)繪工程應(yīng)用十分普遍。文章介紹了AutoLISP語(yǔ)言的特點(diǎn),列舉了廣州市地下管線探測(cè)工程中的物探點(diǎn)號(hào)展點(diǎn)、測(cè)繪地形行樹繪制、廣州白云國(guó)際機(jī)場(chǎng)、廣州亞運(yùn)城等工程的設(shè)計(jì)報(bào)建圖的管線長(zhǎng)度估算、繪制高壓走廊線路圖的部分lisp程序,彌補(bǔ)現(xiàn)有測(cè)繪專業(yè)軟件的不足,完善管線探測(cè)工程制圖的功能,保證了管線信息動(dòng)態(tài)更新的要求。

        關(guān)鍵詞:AutoLISP;AutoCAD;測(cè)繪工程;管線探測(cè);編程

        中圖分類號(hào):TP39 ? ? 文獻(xiàn)標(biāo)識(shí)碼:A ? 文章編號(hào):2096-4706(2023)14-0134-04

        Application of LISP Programming for Map Drawing in Pipeline Exploration Engineering

        WU Siyun, WEN Liwei, ZHANG Hanchun

        (Guangzhou Urban Planning & Design Survey Research Institute, Guangzhou ?510060, China)

        Abstract: AutoCAD is the global leading software and it is widely used in surveying and mapping engineering. This paper introduces the characteristics of AutoLISP language, and lists some lisp programs, such as drawing points of position for physical exploration name of underground pipeline in Guangzhou underground pipeline detection project, drawing row of trees for terrain, pipeline length estimation for designing and construction planes in Guangzhou Baiyun International Airport and Guangzhou Asian Games City projects, and drawing high-pressure corridor route diagrams, etc. It makes up the shortage of the existing surveying and mapping professional software, improves the function of pipeline detection engineering drawing, and guarantees the requirements of dynamic update of pipeline information.

        Keywords: AutoLISP; AutoCAD; surveying and mapping engineering; pipeline detection; programming

        0 ?引 ?言

        AutoCAD是Autodesk公司開發(fā)的工程圖形處理軟件,在勘察設(shè)計(jì)行業(yè)中普遍地在得到推廣和應(yīng)用。目前測(cè)繪領(lǐng)域內(nèi)基于機(jī)助CAD的二次開發(fā)取得了飛速發(fā)展[1],并應(yīng)用于各種比例尺的地形圖、地藉圖、宗地圖、地下管線成果圖、斷面圖。該軟件不僅具有豐富的繪圖命令,還具有強(qiáng)大的圖形編輯功能,而且軟件運(yùn)行相當(dāng)穩(wěn)定。要用好AutoCAD進(jìn)行測(cè)繪制圖,利用CAD本身提供二次開發(fā)的工具是必不可少的,其中包括內(nèi)嵌編程語(yǔ)言AutoLISP。

        1 ?AutoLisp語(yǔ)言的特點(diǎn)與功能

        AutoLISP是AutoCAD內(nèi)嵌的解釋性語(yǔ)言。它起源于LISP語(yǔ)言,嵌入在AutoCAD的內(nèi)部,全部都是函數(shù),沒(méi)有語(yǔ)句的概念和語(yǔ)法結(jié)構(gòu),函數(shù)的調(diào)用是通過(guò)表來(lái)完成的。表通過(guò)圓括號(hào)()來(lái)定義,程序通過(guò)表結(jié)構(gòu)完成,它程序設(shè)計(jì)和繪圖完全融為一體,還可以實(shí)現(xiàn)對(duì)AutoCAD圖形數(shù)據(jù)庫(kù)的直接訪問(wèn)和修改。AutoLISP語(yǔ)言語(yǔ)法簡(jiǎn)單,易學(xué)易用,表達(dá)能力強(qiáng),功能函數(shù)強(qiáng)大,編寫的環(huán)境簡(jiǎn)單,通過(guò)定義函數(shù)實(shí)現(xiàn)各種功能。除可以完成各種科學(xué)計(jì)算外,還能調(diào)用AutoCAD各項(xiàng)命令,創(chuàng)造更有用的AutoCAD新指令,直接訪問(wèn)和修改圖形數(shù)據(jù),從而大大地?cái)U(kuò)充了圖形處理功能[2-5]。

        2 ?用Lisp語(yǔ)言開發(fā)制圖新功能

        盡管AutoCAD本身圖形功能很強(qiáng)的,但是由于它本身不是為勘察行業(yè)制定的,用戶必須根據(jù)自己的需要對(duì)AutoCAD進(jìn)行各種功能的開發(fā),利用AutoLISP語(yǔ)言,編寫不同程序,讀取有關(guān)數(shù)據(jù)文件,組合操作AutoCAD命令,實(shí)現(xiàn)用戶要求的圖件,下面介紹幾個(gè)典型示例。

        2.1 ?實(shí)現(xiàn)在管線數(shù)據(jù)的展點(diǎn)、寫點(diǎn)號(hào)

        地形圖或地下管線測(cè)量,既有導(dǎo)線點(diǎn),也有大量的圖根點(diǎn)、管線點(diǎn),有時(shí)多達(dá)幾千個(gè)上萬(wàn)個(gè)。因此先將各外業(yè)測(cè)繪的測(cè)量點(diǎn)號(hào)、物探點(diǎn)號(hào)、X、Y、Z坐標(biāo)的格式,寫入文本txt文件,通過(guò)常規(guī)檢查,就可展點(diǎn)程序生成DWG點(diǎn)位文件,用作后一步處理。

        如下為用txt數(shù)據(jù)展點(diǎn)程序[6-7]:

        (setqfname (getfiled "管線點(diǎn)數(shù)據(jù)文件txt" "" "txt;*" 2));獲取文件名

        (setq f (open fname "r"));打開txt文件

        (setqsj (read-line f));讀取第一行數(shù)據(jù)

        (while (/= sj nil)

        (setqclh (substrsj 1 6));提取測(cè)量點(diǎn)號(hào)

        (setqwth (substrsj 7 5)) ;提取物探點(diǎn)號(hào)

        (setq x (atof(substrsj 12 10)));提取并轉(zhuǎn)換X坐標(biāo)為浮點(diǎn)數(shù)

        (setq y (atof(substrsj 22 10))) ;提取并轉(zhuǎn)換Y坐標(biāo)為浮點(diǎn)數(shù)

        (setq h (atof(substr sj32 5))) ;提取并轉(zhuǎn)換Z坐標(biāo)為浮點(diǎn)數(shù)

        (setq pt (list yy xx hh));組成三維坐標(biāo)點(diǎn)

        (command "point" pt) ;; 展座標(biāo)點(diǎn)位

        (command "text" (list (+ y (* 0.2 msl)) (- x (* 0.4 msl))) (* 1.0 msl) "0.0" clh) ;注測(cè)量點(diǎn)號(hào)

        (command "text" (list (+ y (* 0.25 msl)) (- x (* 0.45 msl))) (* 1.0 msl) "0.0" ?wth)) ;;注物探點(diǎn)號(hào)

        (setqsj (read-line f));繼續(xù)下一行

        );;while

        (close f);關(guān)閉文件,結(jié)束

        實(shí)際操作中,輸入txt文件,便可在CAD中生成展點(diǎn)圖形,效果如圖1所示。

        2.2 ?地形行樹繪制

        在地形測(cè)量中,需要繪制階梯、陡坎、鐵路、圍墻、界址線、行樹等地貌符號(hào)和圖式符號(hào),而AutoCAD卻這些繪圖命令,但是,我們采用LISP編程,可以準(zhǔn)確、快速、自動(dòng)處理完成各種命令。如下為繪制行樹(效果如圖2所示)程序:

        (defunc:hs (/ ?pt1 pt2 ptcdist ang msl)

        (setvar "cmdecho" 0)

        (setq msl 0.5)

        (setq pt1 (getpoint "\n 1請(qǐng)給出行樹的起點(diǎn):"))

        (setq pt2 (getpoint "\n 2請(qǐng)給出轉(zhuǎn)折點(diǎn):" pt1))

        (while (/= pt2 nil)

        (if ?(/= pt2 nil)

        (progn

        (setqdist (distance pt1 pt2));計(jì)算兩點(diǎn)距離

        (setq ang (angle pt1 pt2)) ;計(jì)算兩點(diǎn)角度

        (command "circle" pt1 (* msl 0.5) "") ;起點(diǎn)繪樹

        (setqptc pt1);中間樹

        (while (>= dist (* msl 10.0));中間樹與轉(zhuǎn)折點(diǎn)是否小于5米

        (setqptc (polar ptc ang (* msl 10.0))) ;計(jì)算方向ang、距離5m繪樹點(diǎn)坐標(biāo)

        (command "circle" ptc (* msl 0.5) "") ;該點(diǎn)繪樹

        (setqdist (distance ptc pt2));重新計(jì)算繪樹ptc與轉(zhuǎn)折點(diǎn)pt2的距離

        ) ;while 2

        );progn

        );if

        (setq pt1 pt2) ? ?;轉(zhuǎn)折點(diǎn)賦值給起點(diǎn)

        (setq pt2 (getpoint "\n 請(qǐng)給出轉(zhuǎn)折點(diǎn):" pt1))

        );while

        (princ "OK")

        );enddefun

        2.3 ?設(shè)計(jì)報(bào)建圖的管線長(zhǎng)度估算

        在政府委托的管線竣工測(cè)量工程時(shí),并不是每宗工程都有管線長(zhǎng)度,往往只提供綜合管線設(shè)計(jì)圖,里面有給水、排水、電力、電信、燃?xì)?,也有新型管線如中水、冷凍水、垃圾真空等,也有其他如道路邊線、道路中線等其他層。我們需要計(jì)算全部圖層的各管線長(zhǎng)度預(yù)估,偏于便于工作安排。部分程序如下:

        (defunC:cal_all_lay_len ()

        (setqwfname (getstring ?"\n輸出長(zhǎng)度計(jì)算的文件名: "))

        (setqtxtfilename (strcat (getvar "dwgprefix") wfname ".txt"))

        (setqfh (open txtfilename "w"))

        (setq ?out1 (strcat "DWG文件:" ?(getvar "dwgname") "的統(tǒng)計(jì)如下:\n"))

        (print out1)

        (princ out1 fh)

        (setq ?out1 (strcat "\n 層名 圓 直線 圓弧 多段線 本層長(zhǎng)度 本層實(shí)體數(shù) \n") )

        (print out1)

        (princ out1 fh)

        (setq t1 (tblnext "layer" "0"))

        (setqcnt 1)

        (while (setq t1 (tblnext "layer"));;圖層循環(huán)

        (setqcnt (+ cnt 1))

        (setq cur_layer1 (cdr (assoc 2 t1)))

        (cal_Onelay_len ?cur_layer1);;某一圖層cal_Onelay_len函數(shù)計(jì)算

        (setqall_sn (+ Sn_cirSn_lineSn_arcSn_poly));4種實(shí)體相加

        (setqall_len (+ len_cirlen_linelen_arclen_poly));

        4種長(zhǎng)度相加

        (princ cur_layer1 fh);寫層名

        (princ " " fh) ;加空格

        (princlen_cirfh);寫圓長(zhǎng)

        (princ " " fh)

        (princlen_linefh);寫直線

        (princ " " fh)

        (princlen_arcfh);寫圓弧長(zhǎng)

        (princ " " fh)

        (princlen_polyfh);寫多段線長(zhǎng)

        (princ " " fh)

        (princll_lenfh);寫本層長(zhǎng)度

        (princ " " fh)

        (princlall_snfh);寫本層實(shí)體數(shù)

        (princ "\n" fh);;換行

        (closefh)

        (princ (strcat "\n文件寫在->: " txtfilename))

        (prin1)

        2.4 ?繪制高壓走廊線路圖

        廣州市高壓走廊數(shù)據(jù)采集技術(shù)規(guī)定中,要求采集的內(nèi)容有:塔位平面坐標(biāo)、高程、線路名稱、塔號(hào)、塔型、塔高、最大橫梁寬度、最低呼稱高、根開、塔基高程、最低弧垂高程等。先外業(yè)測(cè)量采集有關(guān)數(shù)據(jù),室內(nèi)計(jì)算,形成Excel數(shù)據(jù)文件。

        根據(jù)高壓走廊Excel數(shù)據(jù),便可繪制圖形文件[8]。部分程序如下:

        (DEFUN c:run_xls2cad ();加載主文件

        (SETQ FileName "d:/gyzl/xls_cad_0509.dvb")

        (VL-VBALOAD FileName);加載VBA文件

        (VL-VBARUN "draw_gyx.main");執(zhí)行VBA讀取Excel數(shù)據(jù)并繪制三維高壓走廊圖主程序

        (COMMAND "_vbaUnload" FileName);御載VBA文件

        再在高壓線路圖上輸入:“HZTK2Q”,圖內(nèi)鼠標(biāo)點(diǎn)一下,自動(dòng)計(jì)算1/2000圖名、矩形邊界,就可以在圖上畫出(效果見圖3):

        (DEFUN C:HZTK2Q (/ tuchjuan juan1 x y);繪1/2千的邊界和圖幅名

        (COMMAND "layer" "s" "tk2000" "");

        (SETQ juan (GETPOINT "\n點(diǎn)取位置:"));

        (SETQ x_n (CADR juan));計(jì)算點(diǎn)取位置的X坐標(biāo)

        (SETQ y_e (CAR juan));計(jì)算點(diǎn)取位置的Y坐標(biāo)

        (tfh2001 x_ny_e);;該函數(shù)求出1/2千的圖幅名qqname,坐下角的X,Y坐標(biāo)mm1、nn1

        (SETQ juan0 (LIST nn1 mm1 0));坐下角的X,Y坐標(biāo)

        (SETQ juan1 (LIST (+ nn1 1000) (+ mm1 800) 0));計(jì)算右上角的X,Y坐標(biāo)

        (COMMAND "rectang" juan0 juan1) ;繪制1/2千矩形圖框

        (COMMAND "text"

        (LIST (+ nn1 260) (+ mm1 370))

        "100"

        "0"

        Qqname;函數(shù)tfh2001求出1/2千的圖幅名

        ""

        );圖框中心繪圖名

        ) ;_END DEFUN

        3 ?結(jié) ?論

        目前,南方CASS等專業(yè)軟件在數(shù)字成圖、數(shù)據(jù)入庫(kù)功能強(qiáng)大和成熟,欠缺一些特殊業(yè)務(wù)、復(fù)雜用途的功能。AutoCAD的版本已經(jīng)2023版,但是AutoCAD R14到AutoCAD 2022都有不同程度的使用,Visual LISP是AutoLISP的完善和補(bǔ)充,采用兩者開發(fā)的程序適合全部AutoCAD版本,靈活地完成各種重復(fù)性、復(fù)雜性較高的實(shí)際編輯工作,可以補(bǔ)充市場(chǎng)軟件的不足,提高管線探測(cè)工程工程的繪圖效率。

        參考文獻(xiàn):

        [1] 青盛,滿旺.AutoCAD及測(cè)繪應(yīng)用 [M].西安:西南交通大學(xué)出版社,2012.

        [2] 李灶強(qiáng).用LISP語(yǔ)言實(shí)現(xiàn)分幅圖的自動(dòng)提取 [J].城市勘測(cè),2015(3):76-78.

        [3] 李勝利,李雯.VBA和LISP編程實(shí)現(xiàn)地籍調(diào)查成果的自動(dòng)化輸出 [J].城市勘測(cè),2010(4):145-147.

        [4] 梁華冰.編寫LISP程序進(jìn)行城市地下管線竣工圖標(biāo)注的實(shí)例 [J].測(cè)繪與空間地理信息,2014,37(7):159-161.

        [5] 曾攀立,劉傳逢,劉永鋒,等.基于AutoCAD的排水管線缺陷類型自動(dòng)標(biāo)記成圖系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) [J].城市勘測(cè),2020(1):135-137.

        [6] 廖宇宏,張漢春.LISP編程在管線制圖中的開發(fā)應(yīng)用 [J].現(xiàn)代計(jì)算機(jī):專業(yè)版,2010(9):130-132.

        [7] 劉剛,張小波.Visual LISP程序設(shè)計(jì)在市政管線竣工測(cè)量的應(yīng)用 [J].城市勘測(cè),2017(3):141-144.

        [8] 張漢春.基于VBA和VLISP的高壓走廊數(shù)據(jù)處理系統(tǒng)開發(fā) [J].現(xiàn)代計(jì)算機(jī),2006(8):53-56.

        作者簡(jiǎn)介:吳思蘊(yùn)(1983—),女,漢族,廣東廣州

        人,工程師,本科,主要研究方向:計(jì)算機(jī)信息技術(shù)、測(cè)繪工程;通訊作者:張漢春(1962—),男,漢族,廣東梅縣人,高級(jí)工程師(教授級(jí)),本科,研究方向:計(jì)算機(jī)技術(shù)、測(cè)繪工程、工程物探、工程咨詢。

        猜你喜歡
        測(cè)繪工程編程
        我家有只編程貓
        我家有只編程貓
        我家有只編程貓
        我家有只編程貓
        我家有只編程貓
        我家有只編程貓
        淺談測(cè)繪工程常見問(wèn)題的解決對(duì)策
        探討測(cè)繪工程的質(zhì)量管理及其系統(tǒng)控制措施
        測(cè)繪工程測(cè)量技術(shù)的發(fā)展
        無(wú)線通信技術(shù)在測(cè)繪工程中的應(yīng)用分析
        久久久久久久98亚洲精品| 丁香婷婷六月综合缴清| 男男亚洲av无一区二区三区久久| 邻居少妇张开腿让我爽了一夜| 亚洲成在人线在线播放无码| 久久精品亚洲中文字幕无码网站 | 久久国产乱子伦精品免费强| 久久精品国产亚洲av桥本有菜| 极品少妇高潮在线观看| 久久久精品中文字幕麻豆发布| 久久99精品九九九久久婷婷| 日本动态120秒免费| 国产 无码 日韩| 一区二区精品天堂亚洲av| 国产精品成人观看视频国产奇米| 国产乱码精品一区二区三区四川人| 少妇厨房愉情理伦片bd在线观看| 国产一区二区三区免费精品| 国产免费人成视频在线观看播放播| 白嫩丰满少妇av一区二区| 97在线观看视频| 毛片毛片免费看| 日韩精品一区二区三区四区视频| 亚洲精品女同一区二区三区| 国产69精品久久久久app下载| 亚洲精品无码乱码成人| 毛片在线啊啊| a级三级三级三级在线视频| 免费a级毛片在线播放| 中文www新版资源在线| 一本久道久久综合五月丁香| 国产一区二区av男人| 日本中文一区二区在线| 丰满多毛的大隂户毛茸茸| 国产美女遭强高潮网站| 精品熟妇av一区二区三区四区| 国产三区二区一区久久| 日韩精品真人荷官无码| 国产亚洲av手机在线观看| 国产粉嫩美女一区二区三| 亚洲女同同性一区二区|