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

        ?

        淺談LISP的二次開發(fā)在CAD中的應(yīng)用

        2016-11-16 07:49:09王佳卿祝啟祥史曉忠
        城市道橋與防洪 2016年10期
        關(guān)鍵詞:圖幅二次開發(fā)程序設(shè)計(jì)

        王佳卿,祝啟祥,史曉忠

        (無(wú)錫市政設(shè)計(jì)研究院有限公司,江蘇無(wú)錫 214072)

        淺談LISP的二次開發(fā)在CAD中的應(yīng)用

        王佳卿,祝啟祥,史曉忠

        (無(wú)錫市政設(shè)計(jì)研究院有限公司,江蘇無(wú)錫 214072)

        主要介紹了通過利用Lisp語(yǔ)言開發(fā)程序,在AUTOCAD的工作環(huán)境中進(jìn)行二次開發(fā),以達(dá)到提高工作效率的目的。

        LISP語(yǔ)言;CAD二次開發(fā);函數(shù)語(yǔ)言;開發(fā)環(huán)境

        1 概述

        LISP語(yǔ)言(計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言)是一種通用的高級(jí)計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,在人工智能領(lǐng)域內(nèi)被廣泛應(yīng)用,甚至長(zhǎng)期處于一個(gè)壟斷地位。眾所周知的,LISP是計(jì)算機(jī)領(lǐng)域第一個(gè)函數(shù)式的高級(jí)計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,是為人工智能設(shè)計(jì)服務(wù)的語(yǔ)言,有別于B、C語(yǔ)言等命令式程序設(shè)計(jì)語(yǔ)言和Java、C++、C#等面向?qū)ο笳Z(yǔ)言。

        LISP語(yǔ)言是一種函數(shù)式程序設(shè)計(jì)語(yǔ)言,所以,對(duì)于LISP語(yǔ)言而言,在程序編寫的過程中,函數(shù)所有運(yùn)算都能以函數(shù)作用于參數(shù)的方式來(lái)實(shí)現(xiàn)。

        有別于一般的命令式的語(yǔ)言程序,LISP語(yǔ)言幾乎不用所謂的變量以及特定的賦值語(yǔ)句,通過對(duì)遞歸的函數(shù)的調(diào)用,來(lái)實(shí)現(xiàn)重復(fù)的過程,因此,在LISP語(yǔ)言的編寫過程中很少使用到循環(huán)模式。

        LISP是古老的函數(shù)語(yǔ)言,弱類型,動(dòng)態(tài)推斷,其代碼本身就是各種列表。每一個(gè)表項(xiàng)均可以儲(chǔ)存任何類型的數(shù)據(jù),如數(shù)字、函數(shù)、符號(hào)或一個(gè)子表等,在編碼時(shí),可以隨時(shí)操作以更新列表。

        LISP核心的操作符只有7個(gè)操作符:quote、atom、eq、car、cdr、cons、cond。前三者quote、atom、eq用于符號(hào)的推斷,car、cdr、cons操縱表格;cond負(fù)責(zé)分支判斷。這種簡(jiǎn)潔定義,非常接近圖靈機(jī)原型的純函數(shù)式語(yǔ)言,是現(xiàn)代語(yǔ)言完全無(wú)法比擬的。

        LISP語(yǔ)言最大的相對(duì)缺點(diǎn)就是運(yùn)行效率低下。原始定義簡(jiǎn)潔的缺點(diǎn)使得大型開發(fā)工程變得困難,自底層到高層,自二維表查詢到面向?qū)ο?,使用者需要嵌入更多的函?shù)來(lái)實(shí)現(xiàn),致使LISP眾多方言的衍生。

        VISUAL LISP是AUTOCAD自身自帶的一個(gè)集成的可視化autolisp開發(fā)環(huán)境[1],早期的AUTOLISP程序的編輯,是首先使用記事本等文本編輯工具進(jìn)行編輯操作,然后在autocad的環(huán)境中進(jìn)行加載和調(diào)試,過程比較繁瑣,不是很人性化。但是,從autocad 2000的版本開始,就開始自帶了集成的開發(fā)環(huán)境:VISUAL LISP。作為一個(gè)開發(fā)工具,Visual LISP具有一個(gè)完整的集成開發(fā)環(huán)境(IDE),其中包括了編譯器、調(diào)試器和其他的必要的工具,可以實(shí)時(shí)進(jìn)行調(diào)試AUTOLISP的命令。

        2 工程實(shí)例

        某市某地鐵N號(hào)線一期工程整體呈西北-東南走向,線路全長(zhǎng)約30 km,均為地下線。地形修測(cè)項(xiàng)目修測(cè)范圍為線路中心線兩側(cè)各150 m,在測(cè)繪范圍內(nèi)進(jìn)行1:500地形圖測(cè)量,修測(cè)面積約15 km2。該項(xiàng)目最終完成1:500地形圖451幅(50 cm×50 cm),分幅圖的分幅原點(diǎn)坐標(biāo)為(0,0),分幅圖圖名以東坐標(biāo)和北坐標(biāo)的千公里數(shù)命名,圖名如3428.00-487.25、3428.00-487.50等。經(jīng)業(yè)主驗(yàn)收后,交付設(shè)計(jì)單位做設(shè)計(jì)底圖使用。在設(shè)計(jì)單位使用的過程中,設(shè)計(jì)單位提出:由圖1接圖表示意圖可知,由于一共有451幅圖紙,15 km2,而實(shí)際的使用過程中不需要全部圖幅打開,全部圖幅打開,占用計(jì)算機(jī)內(nèi)存太大,能否實(shí)現(xiàn)即插即用,即需要哪幾幅圖紙就打開哪幾幅圖紙,不需要就刪除。由于一共有451幅圖紙,如果純粹是人工在文件夾內(nèi)尋找圖幅一幅幅打開,十分浪費(fèi)時(shí)間,且操作麻煩。為了解決這一問題,編寫了如下程序:

        (SETQ PT(GETPOINT" 請(qǐng)選擇要插入標(biāo)準(zhǔn)圖幅的位置:"))

        (setq X0(atoi(rtos(cadr Pt)2 0)))

        (setq Y0(atoi(rtos(car Pt)2 0)))

        (setq old_cmd(getvar"cmdecho"))

        (setq old_Unit(getvar"insunits"))

        (setvar"insunits"0)

        (setvar"cmdecho"0)

        (VL-LOAD-COM)

        (setqAcadObject(vlax-get-acad-object)

        AcadDocument(vla-get-ActiveDocument Acadobject)

        mSpace(vla-get-ModelSpace Acaddocument)

        )

        (setq MainPath(vla-get-Path AcadDocument))

        (setq Path1500(strcat MainPath"\Mapxc\"))

        (princ Path1500)

        (setq X2(rtos(/(/X0 250)4)2 0))

        (setq Y2(rtos(/(/Y0 250)4)2 0))

        (princ"wjq")

        (princ X2)

        (setq X3(rtos(/(/X0 250)4.00)2 2))

        (setq Y3(rtos(/(/Y0 250)4.00)2 2))

        (setq X4(substr X3 6))

        (setq Y4(substr Y3 5))

        (setq Path1500(strcat Path1500 X2"."X4"-" Y2"."Y4".dwg"))

        (princ Path1500)

        (setq Check1(findfile Path1500))

        (progn

        (command

        "Insert"path1500"0,0""1""1""0"

        )

        )

        )

        (if(=nil check1)

        (progn

        式(2)中的相互作用參數(shù)αij對(duì)于DPD模擬至關(guān)重要.根據(jù)著名的Flory-Huggins理論[30]可以表示為

        (setvar"insunits"old_unit)

        (setvar"cmdecho"old_cmd)

        (alert"該區(qū)域目前尚沒有標(biāo)準(zhǔn)圖幅!")

        (exit)

        )

        )

        (setvar"insunits"old_unit)

        (setvar"cmdecho"old_cmd)

        )

        該程序的整體思路是:首先,用GETPOINT獲得鼠標(biāo)當(dāng)點(diǎn)位置的X、Y值,但是,用GETPOINT指令獲得的數(shù)據(jù)是一個(gè)字符串,即含有X、Y坐標(biāo)數(shù)值的字符串,要用rtos、cadr、car指令分別獲得X坐標(biāo)與Y坐標(biāo)的百公里整數(shù)數(shù)值。然后,通過rtos、substr指令,分別求出當(dāng)前鼠標(biāo)所在位置應(yīng)該所處的圖幅號(hào),最終的圖幅號(hào)通過strcat指令,將多個(gè)字符串合并成一個(gè)字符串,然后,用findfile指令在分幅圖所存放的文件夾內(nèi)進(jìn)行匹配,如果匹配成功,則插入匹配成功的對(duì)應(yīng)的圖幅,如果匹配失敗,則說(shuō)明當(dāng)前點(diǎn)所在的位置沒有標(biāo)準(zhǔn)圖幅,則返回"該區(qū)域目前尚沒有標(biāo)準(zhǔn)圖幅!"

        通過該程序,圓滿解決了設(shè)計(jì)單位提出的問題,滿足了設(shè)計(jì)單位對(duì)地形圖即插即用的要求,得到了業(yè)主和設(shè)計(jì)單位的肯定。

        圖1 接圖表示意圖

        3 結(jié) 語(yǔ)

        當(dāng)前,計(jì)算機(jī)程序語(yǔ)言的二次開發(fā)廣泛應(yīng)用,為工作生產(chǎn)提高了極大的便利[2]。在實(shí)際的工程生產(chǎn)中,利用VISUAL LISP在AUTOCAD的環(huán)境中進(jìn)行二次開發(fā),從而達(dá)到生產(chǎn)中高精度、高速度、高效率、低風(fēng)險(xiǎn)的目的,是完全切實(shí)可行的。現(xiàn)代的商業(yè)工程軟件盡管功能完備,但大多價(jià)格不菲,且不一定能完全貼合自單位的生產(chǎn)需求。自行利用VISUAL LISP在 AUTOCAD的環(huán)境中進(jìn)行二次開發(fā),經(jīng)濟(jì)實(shí)惠,值得推廣,也必將成為今后中小工程生產(chǎn)企業(yè)提高生產(chǎn)效率的首選方法。

        [1]謝剛生,鄒時(shí)林.數(shù)字化成圖原理與實(shí)踐[M].西安地圖出版社, 2000.

        [2]閻聚群.AUTOCAD2000 Visual Lisp開發(fā)[M].武漢:華中理工大學(xué)出版社,2000.

        TP312

        B

        1009-7716(2016)10-0164-02

        10.16799/j.cnki.csdqyfh.2016.10.052

        2016-01-15

        王佳卿(1982-),男,江蘇無(wú)錫人,碩士,工程師,從事勘察測(cè)繪工作。

        猜你喜歡
        圖幅二次開發(fā)程序設(shè)計(jì)
        基于Visual Studio Code的C語(yǔ)言程序設(shè)計(jì)實(shí)踐教學(xué)探索
        淺談基于Revit平臺(tái)的二次開發(fā)
        甘肅科技(2020年20期)2020-04-13 00:30:02
        淺談Mastercam后處理器的二次開發(fā)
        模具制造(2019年3期)2019-06-06 02:11:02
        從細(xì)節(jié)入手,談PLC程序設(shè)計(jì)技巧
        電子制作(2019年9期)2019-05-30 09:42:04
        西門子Easy Screen對(duì)倒棱機(jī)床界面二次開發(fā)
        高職高專院校C語(yǔ)言程序設(shè)計(jì)教學(xué)改革探索
        基于EXCEL的地形圖圖幅號(hào)轉(zhuǎn)換查詢方法
        PLC梯形圖程序設(shè)計(jì)技巧及應(yīng)用
        基于ArcMap的圖幅接合表快速生成方法研究
        地形圖圖幅編號(hào)規(guī)則及實(shí)現(xiàn)
        色婷婷一区二区三区四区| 国产三级在线视频播放| 91精品国产91久久久无码色戒| 国产av一区麻豆精品久久| 亚洲中文字幕舔尻av网站| 久久精品无码av| 亚洲人成影院在线无码观看| 国产免费一区二区av| 日本精品一区二区三区在线观看 | 久99久热只有精品国产男同| 538在线视频| 全亚洲高清视频在线观看| 国产成人无码精品久久久露脸| 美女与黑人巨大进入免费观看| 色偷偷888欧美精品久久久| 久久99久久99精品免观看| 久久精品国产亚洲综合色| 在线观看免费视频发布白白色| 亚洲youwu永久无码精品| 全部孕妇毛片丰满孕妇孕交| 2021年最新久久久视精品爱| 日韩精品久久伊人中文字幕| 男人国产av天堂www麻豆| 亚洲美女又黄又爽在线观看| 无码av免费精品一区二区三区| 国产色视频在线观看了| 医院人妻闷声隔着帘子被中出| 人妻无码人妻有码中文字幕| 国产精品无码mv在线观看| 一区二区二区三区亚洲| 被三个男人绑着躁我好爽视频| 国产精品毛片无遮挡高清| 日本在线免费一区二区三区| 国产成人91久久麻豆视频| 青青草97国产精品免费观看 | 一区二区三区中文字幕有码 | 天天综合色中文字幕在线视频| 人妻丰满熟妇av无码区app| 久久婷婷香蕉热狠狠综合| 久久精品视频按摩| 漂亮丰满人妻被中出中文字幕|