版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、CAD 程序設(shè)計(jì)方法,教師:李敬敏,五、自定義函數(shù),1 AutoLISP 的核心內(nèi)容實(shí)際上就是利用系統(tǒng)提供的內(nèi)部函數(shù), 編寫自定義函數(shù),用自定義函數(shù)來解決工程中遇到的各種設(shè)計(jì)和繪圖問題。,2 注意問題:,1)自定義函數(shù)的定義方法,合理確定函數(shù)的形式參數(shù)的數(shù)量、類型及順序。,2)自定義函數(shù)的正確調(diào)用方法,3)了解局部變量和全局變量的作用域。,4)函數(shù)調(diào)用后的返回值類型及完成的功能,5.1 自定義函數(shù) defun,defun函數(shù)的定義格式,(defun ),功能:定義一個(gè)用戶函數(shù),5.1 自定義函數(shù) defun,5.1.1 各參數(shù)的意義,1)必須是符號原子,大小寫均可,由用戶給定。 不要與系統(tǒng)內(nèi)部
2、函數(shù)和 AutoCAD 命令同名。,(defun ),2)四種格式:,5.1 自定義函數(shù) defun,5.1.1 各參數(shù)的意義,(defun ), ( / ) ( ) (/ ) () ;沒有參數(shù)的空表,四 種 格 式,5.1 自定義函數(shù) defun,5.1.1 各參數(shù)的意義,2)有如下四種格式: ( / ),(1) 中斜杠“/”前為形式參數(shù)表,用來規(guī)定調(diào)用本函數(shù)時(shí)必須提供的實(shí)際參數(shù)的個(gè)數(shù)、類型和順序。,例:求梯形面積5.1 txmj-1.lsp,5.1 自定義函數(shù) defun,5.1.1 各參數(shù)的意義,2)有如下四種格式: ( / ),(1) 中斜杠“/”前為形式參數(shù)表,用來規(guī)定調(diào)用本函數(shù)時(shí)必
3、須提供的實(shí)際參數(shù)的個(gè)數(shù)、類型和順序。,例:求梯形面積5.1 txmj-1.lsp,例:求梯形面積5.1 txmj-2.lsp, 中的斜杠“/”前也可為空,即調(diào)用時(shí)不需指定實(shí)參,但在調(diào)用前應(yīng)先對變量a、b、h進(jìn)行賦值,5.1 自定義函數(shù) defun,5.1.1 各參數(shù)的意義,2)有如下四種格式: ( / ),(2) 中斜杠“/”后是局部變量表,是本函數(shù)臨時(shí)使用的中間變量,調(diào)用后調(diào)用中得到值將丟棄,不保存在內(nèi)存中。,(defun txmj( a b h) (setq s (/ (* (+ a b) h) 2) ),(3)局部變量也可為空,5.1 自定義函數(shù) defun,5.1.1 各參數(shù)的意義,2
4、)有如下四種格式: ( / ),(4) 中各項(xiàng)要用空格分開,尤其注意:“/”前后必須有空格,其一是函數(shù)調(diào)用時(shí),根本不需要外部提供值 需要外部提供值,但是通過全局變量傳入,(5) 括號中可以沒有任何參數(shù),但括號不可省略。,5.1 自定義函數(shù) defun,5.1.1 各參數(shù)的意義,3)后的若干個(gè)是函數(shù)的定義體,可以為常量、變量或表達(dá)式,是所定義函數(shù)的運(yùn)算過程。決定了本函數(shù)的功能和返回值類型,也決定著形參的類型、數(shù)量和順序,(defun ),5.1 自定義函數(shù) defun,5.1.1 各參數(shù)的意義,4)內(nèi)部函數(shù) defun 的返回值是它所定義的用戶函數(shù)名,而 調(diào)用用戶函數(shù),返回值是最后一個(gè) 的值。,
5、函數(shù) defun 的返回值為用戶函數(shù)名txmj,(txmj 1.0 2 3) 是調(diào)用用戶函數(shù),返回值4.5是txmj的返回值,(defun ),5.1 自定義函數(shù) defun,5.1.1 各參數(shù)的意義,5)函數(shù)調(diào)用是對已定義的函數(shù)的調(diào)用,它的格式為:( ). 中實(shí)參的個(gè)數(shù)、順序與類型必須與函數(shù)定義的 中形參的個(gè)數(shù)、順序與類型一 一對應(yīng)。,5.1 自定義函數(shù) defun,5.1.2 自定義函數(shù)舉例,練習(xí)1 矩形圖 5.1 box.lsp,主要參數(shù)的確定,P1, L, W,5.1 自定義函數(shù) defun,5.1.2 自定義函數(shù)舉例,練習(xí)2 正三角形 5.1 trigon.lsp,主要參數(shù)的確定,P
6、1, Len,5.1 自定義函數(shù) defun,5.1.2 自定義函數(shù)舉例,練習(xí)3 凹形圖 5.1 axt.lsp,主要參數(shù)的確定,Pt1, ww,hh,5.1 自定義函數(shù) defun,5.1.3 函數(shù)變量類型及作用范圍,1函數(shù)變量類型:局部變量、全局變量,局部變量:在函數(shù)中出現(xiàn)的變量 全局變量:不在中的變量,2 函數(shù)變量的作用范圍,局部變量:不管值在函數(shù)中如何改變,調(diào)用后又恢復(fù)調(diào)用前的值,只在函數(shù)內(nèi)起作用 全局變量:在函數(shù)調(diào)用中所得到的值將保留在系統(tǒng)內(nèi)存中,其他函數(shù)和表達(dá)式可用,5.1 自定義函數(shù) defun,5.1.3 函數(shù)變量類型及作用范圍,局部變量:,(defun scope (x y
7、/ a) (setq a (+ x 1.0) b (* y 3.0) (setq c (+ a b) x (+ x y) (setq y (- x y) ),x y a,全局變量:,b c,(setq xx 7 yy 6 x 5 y 4 a 3 b 2 c 1),(scope xx yy),5.1 自定義函數(shù) defun,5.1.3 函數(shù)變量類型及作用范圍,2 函數(shù)變量的作用范圍,局部變量:可以在不同函數(shù)定義中使用同名變量,卻互不影響。從而減少變量個(gè)數(shù),減少變量命名時(shí)的麻煩,節(jié)省內(nèi)存空間;在函數(shù)調(diào)用后,需要保留調(diào)用前的值的變量。,全局變量:程序中各函數(shù)都要使用同一變量的值,如繪圖比例因子等;在
8、函數(shù)調(diào)試時(shí),為了查看函數(shù)調(diào)用后變量值的變化情況,以便查錯(cuò),可先把局部變量設(shè)為全局變量,一旦調(diào)試成功后,再把全局變量改為局部變量。,5.1 自定義函數(shù) defun,5.1.4 自定義函數(shù)的調(diào)用,1 load函數(shù)的使用加載,調(diào)用格式:(load 作用:加載一Autolisp文件到內(nèi)存,加載成功:返回的是文件中定義的最后一個(gè)函數(shù)名,(load “D:CAD/5.1 trigon.lsp),返回:C:trigon,(load “D:CAD/5.1 box.lsp),返回:BOX,(load “D:CAD/5.1 axt.lsp),返回:AXT,5.1 自定義函數(shù) defun,5.1.4 自定義函數(shù)的調(diào)
9、用,2 調(diào)用一旦加載成功即可調(diào)用,C:TRIGON :命令行,直接輸入:trigon,不用加括號,沒有C:的函數(shù):命令行:(函數(shù)名 形參1 形參2 ),Command: (BOX 300 250 (300 280) 0.8),Command: (AXT),5.1 自定義函數(shù) defun,5.1.4 自定義函數(shù)的調(diào)用,2 調(diào)用一個(gè)函數(shù)中調(diào)用另一個(gè)函數(shù),5.1 自定義函數(shù) defun,5.1.5 函數(shù)庫文件的建立與調(diào)用,(load d:/ljm/CAD/5.2 subprogram1.lsp),5.1 自定義函數(shù) defun,5.1.6 應(yīng)用defun函數(shù)的注意事項(xiàng),1. 編寫函數(shù)時(shí),應(yīng)按 Aut
10、oLISP 的語法格式正確編寫,為使程序清楚,便于檢查, 最好進(jìn)行縮排。編寫好的函數(shù)應(yīng)以.LSP 為擴(kuò)展名及時(shí)存入磁盤。,2. 定義函數(shù)時(shí),函數(shù)名應(yīng)注意不要與內(nèi)部函數(shù)名及其它自定義函數(shù)同名。 函數(shù)名應(yīng)能體現(xiàn)該函數(shù)的功能并便于記憶。,3.注意把函數(shù)內(nèi)所用變量定義為局部變量,以免發(fā)生變量干涉。當(dāng)函數(shù)較大較多時(shí), 變量屏蔽尤為重要,4.函數(shù)運(yùn)行后產(chǎn)生一些無用函數(shù)和變量,可用 (setq nil) 來進(jìn)行清除,恢復(fù)無用函數(shù)和變量占用的內(nèi)存空間,5.2 自定義匿名函數(shù),自定義匿名函數(shù) lambda,(lambda ),功能:如果對一個(gè)函數(shù)只使用一次或?qū)ζ涫褂檬菚簳r(shí),可用些函數(shù)來定義,它與defun基本相同,只是沒有函數(shù)名,返回值為最后 的值; 可帶形式參數(shù)和局部變量,(setq X 1 Y 2 Z 3) (apply (lambda (X Y) (setq Z (* X Y) ) (5 10) ),5.2 自定義匿名函數(shù),自定義匿名函數(shù) lambda,(lambda ),功能:如果對一個(gè)函數(shù)只使用一次或?qū)ζ涫褂檬菚簳r(shí),可用些函數(shù)來定義,它與defun基本相同,只是沒有函數(shù)名,返回值為
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025如何確定勞動(dòng)合同的成立商業(yè)保理資格
- 最高額抵押擔(dān)保合同
- 宣傳欄維修合同范本
- 委托擔(dān)保合同參考范文
- 采購檢測體溫設(shè)備合同范本
- 2025年新科版必修1歷史上冊月考試卷含答案
- 借款合同范本現(xiàn)金
- 苗木購銷合同范文集錦
- 泥漿外運(yùn)承包合同
- 建筑工地三通一平合同范本
- 2024年江西省南昌市中考一模數(shù)學(xué)試題(含答案)
- 48貴州省貴陽市2023-2024學(xué)年五年級上學(xué)期期末數(shù)學(xué)試卷
- 《采暖空調(diào)節(jié)能技術(shù)》課件
- CONSORT2010流程圖(FlowDiagram)【模板】文檔
- 游戲綜合YY頻道設(shè)計(jì)模板
- arcgis軟件操作解析課件
- 中興ZCTP 5GC高級工程師認(rèn)證考試題庫匯總(含答案)
- 大學(xué)生創(chuàng)新創(chuàng)業(yè)教程PPT全套完整教學(xué)課件
- 小學(xué)科學(xué)項(xiàng)目化作業(yè)的設(shè)計(jì)與實(shí)施研究
- 2020年中考生物試卷及答案
- MCNP-5A程序使用說明書
評論
0/150
提交評論