欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
曉東CAD家園網(wǎng) - 淺談AutoLISP在水工CAD方面的應用
文章總數: 2630 | 本類(lèi)文章(含子類(lèi)): 65
淺談AutoLISP在水工CAD方面的應用
提交日期:2003-10-23  
瀏覽: 538
水利科技與經(jīng)濟
WATER CONSERVANCY SCIENCE AND TECHNOLOGY AND ECONOMY
1999年 第5期 第1卷 Vol.5 No.1 1999
--------------------------------------------------------------------------------
淺談AutoLISP在水工CAD方面的應用
汪恩良 張菊蓉 任樹(shù)坤
[摘 要] AutoLISP語(yǔ)言作為嵌入在A(yíng)utoCAD內部的具有智能特點(diǎn)的編程語(yǔ)言,是開(kāi)發(fā)應用AutoCAD不可缺少的工具。只是大部分設計人員尚不能對AutoCAD進(jìn)行二次開(kāi)發(fā),對引進(jìn)的CAD軟件進(jìn)行修改,編制出一些實(shí)用的小軟件。本文以開(kāi)發(fā)“寒區水閘計算機輔助設計支持系統”軟件為例,簡(jiǎn)單介紹一下AutoLISP在開(kāi)發(fā)水工CAD方面的應用,供工程設計人員在A(yíng)utoCAD二次開(kāi)發(fā)中作為參考。
[關(guān)鍵詞] AutoLISP 水工 CAD DCL
1 前言
隨著(zhù)科學(xué)技術(shù)的發(fā)展,微型計算機在各行各業(yè)推廣和應用越來(lái)越普及,計算機技術(shù)已不僅僅應用于科學(xué)計算,而且逐漸發(fā)展成為和許多科學(xué)技術(shù)部門(mén)結合起來(lái)建立各不相同的計算機輔助系統,計算機輔助設計(Computer Aided Design,簡(jiǎn)稱(chēng)CAD)是其中的一個(gè)分支。目前,CAD技術(shù)的應用大致可以分為兩大應用領(lǐng)域:一類(lèi)是產(chǎn)品設計,如飛機、汽車(chē)、船舶、機械、電子產(chǎn)品;另一類(lèi)是工程設計,如土木、建筑、水利、礦山、鐵路、石油、化工等各種類(lèi)型的工程。CAD技術(shù)在產(chǎn)品設計領(lǐng)域的發(fā)展尤為迅速,現已成為這些領(lǐng)域研究問(wèn)題的唯一手段。已經(jīng)證明在水工設計中引進(jìn)CAD技術(shù)無(wú)論計算、繪圖都使我們的設計工作上一個(gè)臺階,無(wú)論是質(zhì)量還是速度,都是令人滿(mǎn)意的。水利部已正式要求各設計部門(mén)在2000年達到所有圖紙均由計算機繪出。但是,目前各設計部門(mén)大多只能應用Auto CAD軟件包,一筆一筆地繪出圖形。工程設計人員大部分時(shí)間花費在繁瑣的計算、繪圖中,設計工作有很大的重復性。只是大部分設計人員尚不能對AutoCAD進(jìn)行二次開(kāi)發(fā),對引進(jìn)的CAD軟件進(jìn)行修改,編制出一些實(shí)用的小軟件。本文以開(kāi)發(fā)“寒區水閘計算機輔助設計支持系統”軟件為例,簡(jiǎn)單介紹一下Auto LISP在開(kāi)發(fā)水工CAD方面的應用,供工程設計人員在A(yíng)utoCAD二次開(kāi)發(fā)中作為參考。
2 AutoLISP語(yǔ)言簡(jiǎn)介
LISP語(yǔ)言是List Processing language的縮寫(xiě),它產(chǎn)生于50年代后期,是一種資格最老的程序設計語(yǔ)言之一。AutoLISP是嵌入在A(yíng)utoCAD內部的LISP語(yǔ)言。該語(yǔ)言可以給AutoCAD系統增添以高級語(yǔ)言編寫(xiě)程序的能力,而且非常適合于圖形的應用。
2.1 源程序編輯
AutoLISP程序文件代碼實(shí)際上是以ASCII文本文件的格式存儲的,其文件名的擴展名是.LSP或*.MNL,因此,AutoLISP的程序文件可以采用任何一種文本編輯軟件來(lái)編寫(xiě),如:EDIT、WPS、WORD等等。
2.2 語(yǔ)法結構
AutoLISP語(yǔ)言書(shū)寫(xiě)指令所用的語(yǔ)法結構與普通的口語(yǔ)化語(yǔ)言相比要簡(jiǎn)單得多,但限制卻相當嚴格,幾乎不能有絲毫的疏誤。下面簡(jiǎn)單介紹幾種常用語(yǔ)句:
①賦值語(yǔ)句:
X=2.345 (setq X 2.34)
STR=’This is a string!’ (setq STR “This is a string!”)
②求值運算語(yǔ)句:
E=Q÷(4.43×M×B×HO-2) (setq E(/Q( 4.43 M B (sqrt HO))))
③判斷語(yǔ)句:
如果T小于0.75執行語(yǔ)句1(if( ?、苎h(huán)語(yǔ)句:
求100! (while(<=i 100)
(setq sum (+sum i))
(setq i(+i 1)
⑤輸入輸出語(yǔ)句:
把輸入的點(diǎn)坐標賦值給Pt (setq Pt(getpoint “To input point:”))
輸出變量X的值 (princ X)
2.3 注釋方法
①用“;”注釋?zhuān)瑥?#8220;;”開(kāi)始作用至行尾;
②用“;|……|;”注釋?zhuān)⑨屛谋究梢匝永m成多行。
2.4 程序加載
盡管AutoLISP代碼可以使用鍵盤(pán)錄入到命令行上,但通常這只是調試程序的一種輔助手段。對于實(shí)用的AutoLISP程序,就需要將它編排成一個(gè)文本文件,然后,從AutoCAD編輯器環(huán)境把它加載到內存,進(jìn)行測試和排錯,最后形成一個(gè)可重復使用的AutoLISP程序。加載時(shí)可以使用LOAD函數在命令行加載,也可在A(yíng)CAD.LSP文件中定義,以使每次啟動(dòng)AutoCAD時(shí)自動(dòng)加載。
例:COMMAND:(load“[path]<文件名>(.LSP)”)
2.5 程序運行
如果程序文件中定義了一個(gè)形如C:xxx的函數,那么它就能在COMMAND:提示符下通過(guò)鍵入該函數全名來(lái)運行該函數,就像執行標準的內建式AutoCAD命令一樣。如:
COMMAND:(C:CSCAD)
過(guò)去的AutoCAD版使用的AutoLISP至多只能使用45K內存,因此,它在使用上常常會(huì )遇到結點(diǎn)空間不夠的情況,而且運行速度很慢而影響處理工作。AutoCAD從R9版起提供了擴充AutoLISP功能,它可使用計算機的全部擴充內存,最多可達14M。這樣它將擁有比原先大得多得工作空間而能運行AutoLISP大程序,并將騰出45K空間分給AutoCAD作為I/O分頁(yè)存取作業(yè)之用,使內存與硬盤(pán)的交換次數減少而加快處理速度。
3 AutoLISP語(yǔ)言在開(kāi)發(fā)水工CAD方面的應用
AutoLISP語(yǔ)言作為嵌入在A(yíng)utoCAD內部的具有智能特點(diǎn)的編程語(yǔ)言,是開(kāi)發(fā)應用AutoCAD不可缺少的工具。它提供了各種數據類(lèi)型、預定義函數、特殊功能,可自動(dòng)生成SCR接口文件,利用輸入輸出功能,讀寫(xiě)函數實(shí)現與高級語(yǔ)言的數據交換。在A(yíng)utoLISP語(yǔ)言編輯中,增加了AutoCAD繪圖命令,是設計和繪圖溶為一體,將求值器、運算程序直接裝入源程序,實(shí)現對當前數據庫的直接訪(fǎng)問(wèn)和修改,對屏幕圖形的適時(shí)修改,實(shí)現交互設計,為在繪圖領(lǐng)域中應用人工智能提供了方便。
AutoCAD從R12版開(kāi)始,引入了可編程對話(huà)框(Programmable Dialog Box,簡(jiǎn)稱(chēng)PDB)。PDB的引入是對AutoCAD的一項最大的革新,它改進(jìn)了圖形用戶(hù)接口(Graphics Users Interface,簡(jiǎn)稱(chēng)GUI),使用戶(hù)能夠更加容易、直觀(guān)地進(jìn)行操作。通過(guò)一些簡(jiǎn)單的手段,用戶(hù)便可以創(chuàng )建自己的對話(huà)框,從而為操作提供了一個(gè)友好的圖形界面。
創(chuàng )建一個(gè)對話(huà)框至少要兩種不同的語(yǔ)言來(lái)編寫(xiě)兩個(gè)程序段。一個(gè)是對話(huà)框控制語(yǔ)言(Dialog Control Language,簡(jiǎn)稱(chēng)DCL)編制的對話(huà)框定義程序;另一個(gè)是用AutoLISP語(yǔ)言或ADS編寫(xiě)的對話(huà)框驅動(dòng)程序,本文采用的是AutoLISP語(yǔ)言。DCL文件是一個(gè)ASCII文本文件,用來(lái)定義對話(huà)框中的各種元素及其排列方式,如果用戶(hù)不指定元素的大小,AutoCAD會(huì )根據各平臺的現狀為元素設置一個(gè)缺省的值。對話(huà)框驅動(dòng)程序能夠為對話(huà)框提供一個(gè)操作主控制函數,用于啟動(dòng)對話(huà)框并控制流程的運行。
本文僅以“寒區水閘計算機輔助設計支持系統”軟件開(kāi)發(fā)的部分源程序為例,對AutoLISP語(yǔ)言在開(kāi)發(fā)中的應用以及DCL文件的結構和語(yǔ)法進(jìn)行簡(jiǎn)單陳述。
3.1 對話(huà)框定義程序
//;;;— — — — — — — — — — — —
//;;;文件名:CSCAD.DCL
//;;;功 能:定義寒區水閘CAD支持系統主菜單的各種控件及排列
//;;;開(kāi)發(fā)者:汪恩良(東北農業(yè)大學(xué)96級碩士研究生)
//;;;時(shí) 間:1998年5月15日—1998年11月
//;;;— — — — — — — — — — — —
cscadss          ?。瘜υ?huà)框名
:dialog?。瘜υ?huà)框開(kāi)始
fixed-width=true;//指定控件的寬度保持固定
width=45;//指定控件的寬度為45個(gè)字符
alignment=centered;//本簇中控件中心對齊
//對話(huà)框的標題
label=″ 寒區水閘計算機輔助設計支持系統(開(kāi)敞式) V1.0″
:boxed-row{//定義一個(gè)加框行
children-alignment=centered;//所有子控件中心對齊
initial-focus=″lx″//光標初始定位為“LX”控件
:retirment-button{//定義一個(gè)按鈕
key=″lx″;//該控件標識號為“LX”
label=″開(kāi)敞閘型″;//該控件的文本標題
}//一個(gè)控件定義結束
}//加框行定義結束
:column{//定義一個(gè)空白列
fixed-width=true;//指定控件的寬度保持固定
fixed-h(huán)eight=true;    ?。付丶母叨缺3止潭?div style="height:15px;">
height=13;//指定控件的高度為45個(gè)字符
}//空白列定義結束
:text{//定義一個(gè)控件
key=″text1″;//該控件標識號為“text1”
label=″此處顯示出錯信息!″//該控件的文本標題
}//控件定義結束
ok-cancel-h(huán)elp;//選用標準“OK-取消-幫助”控件
}//對話(huà)框定義結束
3.2 總體思路框圖
圖1 對話(huà)框驅動(dòng)程序流程圖
3.3 對話(huà)框驅動(dòng)程序
;;;— — — — — — — — — — — —
;;;文件名:CSCAD.LSP
;;;功 能:調用寒區水閘CAD支持系統主菜單
;;;開(kāi)發(fā)者:汪恩良(東北農業(yè)大學(xué)96級碩士研究生)
;;;時(shí) 間:1998年5月15日—1998年11月
;;;— — — — — — — — — — — —
;;;定義一個(gè)函數,函數名為C:cscad
(defun c:cscad()
;;;加載DCL文件
(if;|if1|;(and (not dcl-id)(<(setq dcl-id(load-dialog″c:/acadwin/cscad.dcl″))0))(exit));endif1
;;;激活出對話(huà)框
(if;|if2|;(not new-dialog ″cscadss″dcl-id))(exit);endif2
(setq what-next 4)
(while (<2 what-next)    ??;設置循環(huán)
(action-tile″lx″ ′(c:lx)″);接受在lx按鈕上的操作
(action-tile″jkd″ ″(c:jkd)″);接受在jkd按鈕上的操作
(action-tile″zhsh″ ″(c:zhsh)″);接受在zhsh按鈕上的操作
(action-tile″ckd″ ″(c:ckd)″);接受在ckd按鈕上的操作
(action-tile″fd″ ″(c:fd)″);接受在fd按鈕上的操作
(action-tile″output″ ″(c:output)″);接受在output按鈕上的操作
(action-tile″accept″ ″(done-dialog 1)″);接受在OK按鈕上的操作
(action-tile″help″ ″(done-dialog 3)″);接受在HELP按鈕上的操作
(setq what-next (start-dialog));啟動(dòng)對話(huà)框
(cond
((=what-next 1)
(c:jkd11shr)
(setq what-next 4)
(if(not(new-dialog″cscadss″dcl-id))(exit)))
((=what-next 3)
(c:help)
(setq what-next 4)
(if(not(new-dialog ″cscadss″dcl-id))(exit)))
);cond
);while
(unload-dialog dcl-id)   ??;卸載DCL文件
(princ)
);defun      ??;函數結束
;;;— — — — — — —
3.4 運行結果
圖2 運行結果(主菜單)(Result of Running)
4 結束語(yǔ)
上述源程序僅是“寒區水閘計算機輔助設計支持系統”軟件的主菜單調用情況,內部功能函數的實(shí)現尚有許多內容,在此不一一贅述了。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
今天不想加班——Autolisp編程入門(mén)案例
AutoCAD 2021 for Mac 新功能介紹(中):二次開(kāi)發(fā)那些事
你明白自己的CAD應該學(xué)到什么樣的層次才適合么?
AutoCAD內常用術(shù)語(yǔ)的自動(dòng)標注方法
[轉貼]79種CAD小問(wèn)題解決辦法
在A(yíng)utoCAD中如何快速繪制表格(明細表)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久