![AutoCAD二次開(kāi)發(fā)技術(shù)_第1頁(yè)](http://file4.renrendoc.com/view/24989c7ad3488a4d2f79df758e033594/24989c7ad3488a4d2f79df758e0335941.gif)
![AutoCAD二次開(kāi)發(fā)技術(shù)_第2頁(yè)](http://file4.renrendoc.com/view/24989c7ad3488a4d2f79df758e033594/24989c7ad3488a4d2f79df758e0335942.gif)
![AutoCAD二次開(kāi)發(fā)技術(shù)_第3頁(yè)](http://file4.renrendoc.com/view/24989c7ad3488a4d2f79df758e033594/24989c7ad3488a4d2f79df758e0335943.gif)
![AutoCAD二次開(kāi)發(fā)技術(shù)_第4頁(yè)](http://file4.renrendoc.com/view/24989c7ad3488a4d2f79df758e033594/24989c7ad3488a4d2f79df758e0335944.gif)
![AutoCAD二次開(kāi)發(fā)技術(shù)_第5頁(yè)](http://file4.renrendoc.com/view/24989c7ad3488a4d2f79df758e033594/24989c7ad3488a4d2f79df758e0335945.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、學(xué)習(xí)AutoCAD二次開(kāi)發(fā)技術(shù)的體會(huì)1引言AutoCAD是一套向量式計(jì)算機(jī)輔助制圖軟件,具有強(qiáng)大的圖形處理功能,目前它 已經(jīng)廣泛應(yīng)用于機(jī)械、電子、電氣、建筑、土木服裝等行業(yè)和領(lǐng)域。最初版本的AutoCAD是在1982年發(fā)布的。AutoCAD開(kāi)放的結(jié)構(gòu)體系,為用戶(hù)提 供了多種二次開(kāi)發(fā)的工具,使得它的缺陷之處可以得到彌補(bǔ),因此三十多年來(lái)它 持續(xù)擁有旺盛的生命力。AutoCAD的二次開(kāi)發(fā),能夠?qū)崿F(xiàn)參數(shù)化繪圖,允許用戶(hù) 開(kāi)發(fā)自己的命令、標(biāo)準(zhǔn)庫(kù)文件和各種應(yīng)用程序,能充分發(fā)揮AutoCAD的功能。本文將介紹我學(xué)習(xí)Visual LISP這一種工具進(jìn)行開(kāi)發(fā)的過(guò)程和體會(huì),說(shuō)明我在學(xué) 習(xí)過(guò)程中體會(huì)到的二次開(kāi)發(fā)的特
2、點(diǎn)和一些優(yōu)點(diǎn),并舉一些具體例子。2實(shí)施過(guò)程2.1LISP語(yǔ)言的主要學(xué)習(xí)內(nèi)容總結(jié)2.1.1變量及其賦值:(1)LISP語(yǔ)言中變量的使用比較靈活,變量不用先定義和指定類(lèi)型,需要的時(shí) 候直接引入,而且其內(nèi)容較為隨意,可以是整數(shù)、實(shí)型數(shù)、字符串、點(diǎn)、表等等。(2)變量的賦值主要用setq語(yǔ)句,格式為(setq變量名 要賦的內(nèi)容)。2.1.2基本的運(yùn)算函數(shù)和數(shù)學(xué)函數(shù):(1)加、減、乘、除、取余運(yùn)算函數(shù)名分別為“+”、-”、*”、/”、“rem” 函數(shù)使用格式為(符號(hào)數(shù)1數(shù)2 數(shù)3)。(2)基本初等函數(shù):指數(shù)函數(shù)(expt底數(shù)自變量值)。自然指數(shù)函數(shù)、自然對(duì)數(shù)函數(shù)、正弦、余弦、反正切、根式、絕對(duì)值函數(shù)分別
3、 是exp、log、sin、cos、atan、sqrt、abs,調(diào)用格式為:(函數(shù)名 自變量值)。2.1.3表處理函數(shù):(1)表構(gòu)造函數(shù):(list n1 n2 n3 n4),返回一個(gè)表。配合賦值語(yǔ)句可把表賦 值給變量,如(setq biao (list 1 2 3 4),就把(1 2 3 4)賦給變量biao。(2)表長(zhǎng)度運(yùn)算:(length表),返回表元素的個(gè)數(shù)。(3)表中元素的提?。海╟ar表)返回表中第一個(gè)元素。例如(car (1 2 3 4 )返回1。(cdr表)去掉表中第一個(gè)元素,其余元素組成表返回。上例返回(2 3 4)。嵌套使用可提取個(gè)元素,嵌套時(shí)可以縮寫(xiě),如caddr表示提取
4、第三個(gè)元素。另一種常用表提取函數(shù)nth格式為:(nth n表),它表示提取表中序號(hào)為n的 元素。注意序號(hào)是從零開(kāi)始的,表中第一個(gè)元素序號(hào)為0。2.1.4輸入輸出函數(shù):(1)輸入函數(shù)格式為:(函數(shù)“提示內(nèi)容”)。常用函數(shù)有:getpoint、getint、 getreal、getstring分別表示等待用戶(hù)輸入點(diǎn)、整型數(shù)、實(shí)型數(shù)、字符串。(2)輸出函數(shù)格式為:(princ表達(dá)式)(print表達(dá)式)。其中print先換行再輸 出。2.1.5常用符號(hào):(1)“!”符用于查看某一變量。如! a,如果a變量為1,則顯示1。(2)英文單引號(hào),是quote的縮寫(xiě),表示不求值而是引用,如(setq a (1
5、23) 就把表(1 2 3)賦值給a,若沒(méi)有該符號(hào)則會(huì)對(duì)(1 2 3)求值,會(huì)出錯(cuò)。關(guān)系運(yùn)算符,用寫(xiě)條件表達(dá)式,有“”、二”、/二”、二”。分別表示小于、大于、小于等于、大于等于、不等于、等于。例如(二a b)表示條件a等于b。( a b)表示條件a大于b。2.1.6分支和循環(huán)結(jié)構(gòu)(1)if語(yǔ)句:(if表達(dá)式(語(yǔ)句1)(語(yǔ)句2)。表示表達(dá)式成立時(shí)執(zhí)行語(yǔ)句1, 否則執(zhí)行語(yǔ)句二。注意語(yǔ)句1、語(yǔ)句2只能是一個(gè)語(yǔ)句。如果要使表達(dá)式成立時(shí) 執(zhí)行多個(gè)語(yǔ)句,則使用progn函數(shù)。如(progn (語(yǔ)句)(語(yǔ)句)(語(yǔ)句)。(2)repeat語(yǔ)句(repeat n 循環(huán)體),n表示循環(huán)的次數(shù)。(3)while語(yǔ)
6、句(while表達(dá)式 循環(huán)體),先判斷表達(dá)式是否成立,表達(dá)式成立時(shí) 執(zhí)行循環(huán)體。 Repeat語(yǔ)句只能執(zhí)行次數(shù)已知的循環(huán),而while語(yǔ)句既可以執(zhí) 行次數(shù)已知的,也可以執(zhí)行次數(shù)未知的。2.1.7常用的用于繪圖的函數(shù)command函數(shù),它是通過(guò)直接調(diào)用AutoCAD命令來(lái)實(shí)現(xiàn)的。例如:(command “pline p0 p “”)表示畫(huà)一條起點(diǎn)為p0,終點(diǎn)為p的多段線(xiàn)。(command “circle p0 100)表示畫(huà)一個(gè)以p0為圓心的半徑為100的圓。(command “move L p0 p)表示把一個(gè)對(duì)象以p0為基點(diǎn)移動(dòng)到p。(2)polar函數(shù),它是通過(guò)點(diǎn)與點(diǎn)之間的相對(duì)位置來(lái)確定點(diǎn)
7、的坐標(biāo)的函數(shù)。格式(polarp0相對(duì)角度t 兩點(diǎn)間距離d)注意相對(duì)角度是極角,單位為孤度。 該函數(shù)返回一個(gè)相對(duì)P0角度為t,距離為d的點(diǎn)。與賦值語(yǔ)句配合可將得到的點(diǎn) 賦值給一個(gè)變量。例如(setq p (polar p0 pi 10)把p0左側(cè)距離10的點(diǎn)賦 值給了 p。2.2利用LISP語(yǔ)言繪圖實(shí)例2.2.1繪制函數(shù)圖像 用“以直代曲”的思想用許多很短的線(xiàn)段代替函數(shù)圖像,從而得到近似圖像。用LISP語(yǔ)言中的數(shù)學(xué)函數(shù)、循環(huán)結(jié)構(gòu),并用command函數(shù)實(shí)現(xiàn)編程。程序如下:繪制幕函數(shù)圖像(defun幕函數(shù)()(setq n (getint 請(qǐng)輸入指數(shù) n)(setq a (getreal 請(qǐng)輸入
8、自變量開(kāi)始 范圍n)(setq b (getreal 請(qǐng)輸入自變量結(jié)束 范圍n)(setq p0 (polar (getpoint 請(qǐng)選擇坐標(biāo) 原點(diǎn) n) 0 a)(setq x a)(command pline)(while(= x b)(setq y (expt x n)(setq p (polar p0 (/ pi 2) y )(command p)(setq x (+ x 0.1)(setq p0 (polar p0 0 0.1)(command) )編輯好程序后保存,在CAD中加載程序,使用命令(load “文件路徑”),或者直接拖動(dòng)文件到繪圖區(qū)。然后,在 命令行輸入(幕函數(shù))從而調(diào)
9、用該函數(shù),系統(tǒng)就開(kāi)始執(zhí)行 該函數(shù)的代碼。按照提示輸入幕函數(shù)指數(shù),自變量范圍, 基點(diǎn),就會(huì)繪制出如圖所示函數(shù)圖像。注意:一、調(diào)用函數(shù)時(shí)應(yīng)當(dāng)適當(dāng)縮放界面,從而保證用 command函數(shù)調(diào)用繪圖命令時(shí),系統(tǒng)能夠 準(zhǔn)確的選擇指定的點(diǎn),否則會(huì)因?yàn)辄c(diǎn)非常 密集而選錯(cuò)。二、編輯程序的代碼時(shí)和在 命令行輸入命令時(shí)必須保證是英文符。(2)繪制指數(shù)函數(shù)、對(duì)數(shù)函數(shù)、三角函數(shù)等函數(shù)圖像的程序與上圖程序差別不大, 把數(shù)學(xué)函數(shù)做修改即可,因?yàn)槠虿灰灰涣信e,圖像如上圖所示。2.2.歡現(xiàn)參數(shù)化繪圖。編寫(xiě)一些用于繪制含有較多重復(fù)圖案或者復(fù)雜圖案圖形的程序。加載程序后調(diào)用 函數(shù),輸入幾個(gè)參數(shù)即可完成繪圖,大大提高了繪圖效率
10、。程序如下:(defun ht()(setq a 50)(setq n (getint ”請(qǐng)輸入個(gè)數(shù)”)(setq p0 (getpoint 請(qǐng)輸入基點(diǎn))(setq p (polar p0 (/ pi 2) a)(command pline p0 p)(command)(setq p1 (polar p 0 a)(repeat n(setq p2 (polar p1 pi a) )(setq p3 (polar p2 (* 1.5 pi) a)(setq p4 (polar p3 0 a)(command pline p1 p3 p4 p2 p1 p4)(command)(setq p1 (p
11、olar p1 0 a) )(defun ht2()(setq p0 (getpoint 請(qǐng)選擇圓心)(setq r (getreal ”請(qǐng)輸入半徑”)(setq n (getint ”請(qǐng)輸入個(gè)數(shù)”)(setq i 1)(setq p (polar p0 (/ pi 2) r)(command pline p0 w” (* r 0.01)(* r 0.02) p p0 )(while ( i n)(setq p (polar p0 (+ (/ pi 2) (/ (* 2 i pi) n) r)(commandplinep0 w (* r 0.02) (* r 0.02) p p0 )(setq
12、 i (+1 i)(command circle p0 r)(command circle p0 (+ r (* 0.2 r)第一個(gè)程序用于繪制一排“箱子”,加載程序后在命 令行輸入(瓦)開(kāi)始執(zhí)行函數(shù)命令,輸入?yún)?shù)(個(gè)數(shù)和 基點(diǎn))可以繪制出一排指定個(gè)數(shù)的邊長(zhǎng)為50的“箱 子”。第二個(gè)程序用于繪制“輪子”,加載程序后在命令行 輸入(ht2)就開(kāi)始執(zhí)行函數(shù)命令,輸入?yún)?shù)(圓心、內(nèi)徑、輻條個(gè)數(shù)),即可繪制 指定大小、輻條個(gè)數(shù)的輪胎。3結(jié)論AutoCAD的二次開(kāi)發(fā),能夠?qū)崿F(xiàn)參數(shù)化繪圖,允許用戶(hù)開(kāi)發(fā)自己的命令、標(biāo)準(zhǔn)庫(kù) 文件和各種應(yīng)用程序,從而能夠簡(jiǎn)化復(fù)雜繁瑣的圖形(尤其是機(jī)械圖)的繪制, 能更大限度地發(fā)揮AutoCAD的功能。LISP語(yǔ)言是一種表處理語(yǔ)言,是被解釋執(zhí)行的,任何一個(gè)語(yǔ)句鍵入后就能馬上 執(zhí)行,它對(duì)于交互式的程序開(kāi)發(fā)非常方便。通過(guò)學(xué)習(xí)基于Visual LISP的二次開(kāi) 發(fā),我掌握了常用的LISP語(yǔ)句和語(yǔ)法結(jié)構(gòu):基本函數(shù),分支、循環(huán)結(jié)構(gòu),輸入輸 出處理,表處理,圖形處理等等,能夠編程繪制一些較簡(jiǎn)單的圖形,彌補(bǔ)傳統(tǒng)繪 圖方式的不足,豐富了 CAD的繪圖功能。傳統(tǒng)的繪圖方式有兩個(gè)不足之處:(1)重復(fù)繪制的工作量很大。(2)對(duì)于尺寸要 求非常嚴(yán)格。對(duì)于不同尺寸而基本結(jié)構(gòu)相同的圖形無(wú)法復(fù)制,需要重復(fù)繪制。進(jìn) 行二次開(kāi)發(fā)可以很好的解決這兩個(gè)問(wèn)題:使用循環(huán)語(yǔ)句可以實(shí)現(xiàn)重復(fù)繪制。編程 保留繪圖命
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年全球及中國(guó)智慧教育公共服務(wù)平臺(tái)行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025文件裝飾施工合同范本確稿
- 2025年西師新版八年級(jí)化學(xué)上冊(cè)階段測(cè)試試卷含答案
- 2025進(jìn)口代理合同范文
- 2024年生物醫(yī)藥產(chǎn)業(yè)園區(qū)建設(shè)項(xiàng)目合同
- 退休員工返聘勞務(wù)合同
- 2025年粵教新版九年級(jí)歷史上冊(cè)階段測(cè)試試卷含答案
- 買(mǎi)賣(mài)合同的演變類(lèi)型及注意點(diǎn)
- 簡(jiǎn)易房屋買(mǎi)賣(mài)合同協(xié)議
- 橋梁樁基工程施工勞務(wù)分包合同
- 2025年度院感管理工作計(jì)劃(后附表格版)
- 勵(lì)志課件-如何做好本職工作
- 2024年山東省濟(jì)南市中考英語(yǔ)試題卷(含答案解析)
- 2024年社區(qū)警務(wù)規(guī)范考試題庫(kù)
- 2025中考英語(yǔ)作文預(yù)測(cè):19個(gè)熱點(diǎn)話(huà)題及范文
- 第10講 牛頓運(yùn)動(dòng)定律的綜合應(yīng)用(一)(講義)(解析版)-2025年高考物理一輪復(fù)習(xí)講練測(cè)(新教材新高考)
- 靜脈治療護(hù)理技術(shù)操作標(biāo)準(zhǔn)(2023版)解讀 2
- 暑假作業(yè) 10 高二英語(yǔ)完形填空20篇(原卷版)-【暑假分層作業(yè)】2024年高二英語(yǔ)暑假培優(yōu)練(人教版2019)
- 語(yǔ)文七年級(jí)下字帖打印版
- (新版)國(guó)民經(jīng)濟(jì)行業(yè)分類(lèi)代碼表(八大行業(yè))
- 北京地鐵13號(hào)線(xiàn)
評(píng)論
0/150
提交評(píng)論