999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺談LISP的二次開發在CAD中的應用

2016-11-16 07:49:09王佳卿祝啟祥史曉忠
城市道橋與防洪 2016年10期
關鍵詞:二次開發指令程序

王佳卿,祝啟祥,史曉忠

(無錫市政設計研究院有限公司,江蘇無錫 214072)

淺談LISP的二次開發在CAD中的應用

王佳卿,祝啟祥,史曉忠

(無錫市政設計研究院有限公司,江蘇無錫 214072)

主要介紹了通過利用Lisp語言開發程序,在AUTOCAD的工作環境中進行二次開發,以達到提高工作效率的目的。

LISP語言;CAD二次開發;函數語言;開發環境

1 概述

LISP語言(計算機程序設計語言)是一種通用的高級計算機程序設計語言,在人工智能領域內被廣泛應用,甚至長期處于一個壟斷地位。眾所周知的,LISP是計算機領域第一個函數式的高級計算機程序設計語言,是為人工智能設計服務的語言,有別于B、C語言等命令式程序設計語言和Java、C++、C#等面向對象語言。

LISP語言是一種函數式程序設計語言,所以,對于LISP語言而言,在程序編寫的過程中,函數所有運算都能以函數作用于參數的方式來實現。

有別于一般的命令式的語言程序,LISP語言幾乎不用所謂的變量以及特定的賦值語句,通過對遞歸的函數的調用,來實現重復的過程,因此,在LISP語言的編寫過程中很少使用到循環模式。

LISP是古老的函數語言,弱類型,動態推斷,其代碼本身就是各種列表。每一個表項均可以儲存任何類型的數據,如數字、函數、符號或一個子表等,在編碼時,可以隨時操作以更新列表。

LISP核心的操作符只有7個操作符:quote、atom、eq、car、cdr、cons、cond。前三者quote、atom、eq用于符號的推斷,car、cdr、cons操縱表格;cond負責分支判斷。這種簡潔定義,非常接近圖靈機原型的純函數式語言,是現代語言完全無法比擬的。

LISP語言最大的相對缺點就是運行效率低下。原始定義簡潔的缺點使得大型開發工程變得困難,自底層到高層,自二維表查詢到面向對象,使用者需要嵌入更多的函數來實現,致使LISP眾多方言的衍生。

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

2 工程實例

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

(SETQ PT(GETPOINT" 請選擇要插入標準圖幅的位置:"))

(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)中的相互作用參數αij對于DPD模擬至關重要.根據著名的Flory-Huggins理論[30]可以表示為

(setvar"insunits"old_unit)

(setvar"cmdecho"old_cmd)

(alert"該區域目前尚沒有標準圖幅!")

(exit)

)

)

(setvar"insunits"old_unit)

(setvar"cmdecho"old_cmd)

)

該程序的整體思路是:首先,用GETPOINT獲得鼠標當點位置的X、Y值,但是,用GETPOINT指令獲得的數據是一個字符串,即含有X、Y坐標數值的字符串,要用rtos、cadr、car指令分別獲得X坐標與Y坐標的百公里整數數值。然后,通過rtos、substr指令,分別求出當前鼠標所在位置應該所處的圖幅號,最終的圖幅號通過strcat指令,將多個字符串合并成一個字符串,然后,用findfile指令在分幅圖所存放的文件夾內進行匹配,如果匹配成功,則插入匹配成功的對應的圖幅,如果匹配失敗,則說明當前點所在的位置沒有標準圖幅,則返回"該區域目前尚沒有標準圖幅!"

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

圖1 接圖表示意圖

3 結 語

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

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

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

TP312

B

1009-7716(2016)10-0164-02

10.16799/j.cnki.csdqyfh.2016.10.052

2016-01-15

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

猜你喜歡
二次開發指令程序
聽我指令:大催眠術
淺談基于Revit平臺的二次開發
甘肅科技(2020年20期)2020-04-13 00:30:02
淺談Mastercam后處理器的二次開發
模具制造(2019年3期)2019-06-06 02:11:02
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
西門子Easy Screen對倒棱機床界面二次開發
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
主站蜘蛛池模板: 国产情精品嫩草影院88av| 亚洲中文在线看视频一区| 99久久精品国产自免费| 91在线播放免费不卡无毒| 五月婷婷亚洲综合| 91精品啪在线观看国产| 日韩第九页| 久久精品aⅴ无码中文字幕 | 三级毛片在线播放| 97超级碰碰碰碰精品| 夜精品a一区二区三区| av一区二区三区在线观看| 国产福利小视频高清在线观看| 亚洲精品久综合蜜| 福利在线不卡一区| 97人妻精品专区久久久久| 97在线碰| 五月婷婷激情四射| 婷婷亚洲天堂| 99爱视频精品免视看| 国产真实乱人视频| 国产爽歪歪免费视频在线观看 | 黄色网站不卡无码| JIZZ亚洲国产| 中文无码伦av中文字幕| 亚洲大学生视频在线播放| 最新亚洲人成网站在线观看| 亚洲成人动漫在线观看| 在线视频97| 在线国产毛片| 成人福利在线免费观看| 国产成人91精品| 国产导航在线| 在线观看国产精品一区| 亚洲欧美不卡| 一本色道久久88综合日韩精品| 色哟哟国产精品| 国产免费黄| 国产丝袜啪啪| 亚洲精品777| 亚洲va欧美ⅴa国产va影院| 国产成人亚洲毛片| 久久国语对白| 国产日韩欧美成人| 东京热av无码电影一区二区| 日韩一区二区三免费高清| 国产黑丝一区| 日本三区视频| 欧美成人亚洲综合精品欧美激情| 日韩欧美国产精品| 亚洲欧美日本国产专区一区| 久久青草热| 9966国产精品视频| 国产浮力第一页永久地址| 91在线日韩在线播放| AV在线天堂进入| 国产高清国内精品福利| 国产日韩AV高潮在线| 无码国产伊人| 亚洲日韩精品欧美中文字幕| 国产日产欧美精品| 日韩欧美在线观看| 欧美日韩亚洲综合在线观看| 首页亚洲国产丝袜长腿综合| 亚洲综合久久成人AV| 亚洲色图欧美| 亚洲无码精彩视频在线观看| 天天色天天综合网| 国产96在线 | 亚洲国产中文在线二区三区免| 在线观看无码av免费不卡网站| 久久久精品国产SM调教网站| 天天干天天色综合网| 成人无码一区二区三区视频在线观看| 国产一区二区三区在线观看免费| 尤物精品视频一区二区三区| 亚洲欧美在线综合一区二区三区| 亚洲无码A视频在线| 在线看国产精品| 四虎国产精品永久一区| 婷婷五月在线| 在线观看av永久|