服務(wù)熱線
0755-26825352
使用LISP編程時(shí),常常需要用戶回答一些參數(shù),為了提高工作效率,希望能用回車代替某個(gè)特定輸入即缺省值。此時(shí),在程序中增加一個(gè)判斷可使變量得到缺省回答。
如:
(setqwidth(getreal″inputwidth:″))
(if(nullwidth)(setqwidth0.3));回車置width的值為0.3。
有時(shí)需要依上一次的輸入值為本次的缺省輸入(如:寬度、角度、距離等),這時(shí)就需要用全局變量保存上一次輸入值提供缺省輸入。例如,若欲將上次輸入的寬度值作為缺省輸入可使用下述函數(shù):
(if(not?硍idth)
(setq?硍idth0.3);第一次依0??3為缺省值)
(princ″\inputwidth:″)
(princ″\n
(princ?硍idth)
(princ″:″);顯示提示信息
(setqw1(getrea1))
(if(notw1)
(setqw1?硍idth)
(setq?硍idthw1);用全局變量保存當(dāng)前輸入值
(princw1)
)
函數(shù)的執(zhí)行結(jié)果是:第一次執(zhí)行時(shí)依寬度0??3為缺省值,提示信息為:inputwidth:,給定新的輸入值后如0??5,下一次依寬度0??5為缺省提示值,提示信息為:inputwidth:。
在一般情況下,還可通過建立缺省處理函數(shù),加快程序處理速度,減少編碼。如:
(defundefal(strval)
(setq?砱lobaval)
(princ(strcatstr″
(princ?砱loba)
(princ″″)
(setqvar(getreal))
(if(notvar)
(setqvar?砱loba);用缺省值作為輸入
)
(princvar)
)
這是一個(gè)有參函數(shù),它將輸入的實(shí)數(shù)作為返回值。當(dāng)按(defal″inputwidth″0.5)調(diào)用時(shí)提示信息為:inputwidth:。該函數(shù)能按str的提示缺省輸入實(shí)數(shù)(由val給定)類值(如:角度、距離等),加入到ACAD?盠SP文件中即可像LISP標(biāo)準(zhǔn)函數(shù)一樣供其它函數(shù)調(diào)用。