版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
會(huì)計(jì)學(xué)1CAD二次開發(fā)技術(shù)一二課案本課程要學(xué)習(xí)的內(nèi)容第1章AutoCAD及其二次開發(fā)工具簡(jiǎn)介第2章
AutoLISP基本函數(shù)和繪圖功能第3章
AutoLISP分支函數(shù)與循環(huán)結(jié)構(gòu)第4章
AutoLISP輸入輸出函數(shù)和圖形數(shù)據(jù)庫(kù)第5章
AutoLISP對(duì)話框設(shè)計(jì)技術(shù)第1頁(yè)/共37頁(yè)§1.1AutoCAD簡(jiǎn)介§1.2AutoCAD二次開發(fā)§1.3AutoCAD二次開發(fā)工具簡(jiǎn)介§1.4AutoLISP語(yǔ)言概述第1章AutoCAD及其
二次開發(fā)工具簡(jiǎn)介
第2頁(yè)/共37頁(yè)§1.1
AutoCAD簡(jiǎn)介
AutoCAD是美國(guó)Autodesk公司開發(fā)的通用CAD軟件,1982年首次推出了AutoCADR1.0版本,經(jīng)過(guò)不斷的版本更新,現(xiàn)最新的是AutoCAD2011版本。
AutoCAD是目前微機(jī)上應(yīng)用最為廣泛的通用交互式計(jì)算機(jī)輔助繪圖與設(shè)計(jì)軟件包。AutoCAD的強(qiáng)大生命力在于它的通用性、多種工業(yè)標(biāo)準(zhǔn)和開放的體系結(jié)構(gòu)。用AutoCAD繪圖速度更快、精度更高、而且便于個(gè)性,它已經(jīng)在航空航天、造船、建筑、機(jī)械、電子、化工、美工、輕紡等很多領(lǐng)域得到了廣泛應(yīng)用,并取得了豐碩的成果和巨大的經(jīng)濟(jì)效益。
第3頁(yè)/共37頁(yè)AutoCAD軟件具有如下特點(diǎn):
(1)具有完善的圖形繪制功能。
(2)有強(qiáng)大的圖形編輯功能。
(3)可以采用多種方式進(jìn)行二次開發(fā)或用戶定制。
(4)可以進(jìn)行多種圖形格式的轉(zhuǎn)換,具有較強(qiáng)的數(shù)據(jù)交換能力。
(5)支持多種硬件設(shè)備。
(6)支持多種操作平臺(tái)。
(7)具有通用性、易用性,適用于各類用戶?!?.1
AutoCAD簡(jiǎn)介第4頁(yè)/共37頁(yè)
為了適用于各種產(chǎn)品的設(shè)計(jì)需求,多數(shù)CAD軟件的功能都具有很高的通用性。但由于針對(duì)性不強(qiáng),用戶需求與CAD系統(tǒng)規(guī)模之間的矛盾日益增加,存在設(shè)計(jì)效率不高的問(wèn)題。在CAD軟件平臺(tái)上,結(jié)合具體的應(yīng)用需求,總結(jié)行業(yè)的設(shè)計(jì)知識(shí)和經(jīng)驗(yàn),開發(fā)面向行業(yè)和設(shè)計(jì)流程的CAD系統(tǒng),這就是所謂CAD二次開發(fā)。
AutoCAD的開放體系結(jié)構(gòu)。允許用戶采用高級(jí)編程語(yǔ)言對(duì)其進(jìn)行擴(kuò)充和修改。Autodesk公司自AutoCADv2.18版至AutoCAD2000的短短十幾年間,就相繼推出了三代二次開發(fā)工具?!?.2
AutoCAD二次開發(fā)第5頁(yè)/共37頁(yè)
AutoLISPAutoLISP是1986年隨AutoCADv2.18提供的二次開發(fā)工具。它是嵌入AutoCAD內(nèi)部的一種人工智能語(yǔ)言。使用AutoLISP可調(diào)用幾乎所有的AutoCAD命令。AutoLISP語(yǔ)言最典型的應(yīng)用之一是實(shí)現(xiàn)參數(shù)化繪圖程序設(shè)計(jì),包括尺寸驅(qū)動(dòng)程序和鼠標(biāo)拖動(dòng)程序等。另一個(gè)典型應(yīng)用就是驅(qū)動(dòng)AutoCAD提供PDB模塊構(gòu)成DCL文件,創(chuàng)建自己的對(duì)話框。
AutoLISP適合于有能力的終端用戶完成一些自己的開發(fā)任務(wù)。§1.3AutoCAD二次開發(fā)工具簡(jiǎn)介第6頁(yè)/共37頁(yè)VisualLISP(VLISP)VLISP是AutoLISP的換代產(chǎn)品。與AutoLISP完全兼容,并提供它所有的功能,是新一代的AutoCADLISP語(yǔ)言。VLISP對(duì)語(yǔ)言進(jìn)行了擴(kuò)展,可以通過(guò)MicrosoftActiveXAutomation接口與對(duì)象交互。作為開發(fā)工具,VLISP提供了一個(gè)完整的集成開發(fā)環(huán)境(IDE),包括編譯器、調(diào)試器和其他工具,可以提高二次開發(fā)的效率?!?.3AutoCAD二次開發(fā)工具簡(jiǎn)介第7頁(yè)/共37頁(yè)VBAVBA是2000版本后具備的功能。它通過(guò)AutoCADActiveXAutomation接口對(duì)AutoCAD進(jìn)行編程控制,是一個(gè)引入了對(duì)象的設(shè)計(jì)環(huán)境,為用戶提供類似VisualBasic語(yǔ)言所擁有的功能,可以執(zhí)行并存取
AutoCAD環(huán)境的所有資源,適合編寫中型的數(shù)據(jù)庫(kù)類的CAD軟件?!?.3AutoCAD二次開發(fā)工具簡(jiǎn)介
ActiveXAutomation是微軟公司推出的一個(gè)技術(shù)標(biāo)準(zhǔn),其作用是在Windows系統(tǒng)的統(tǒng)一管理下協(xié)調(diào)不同的應(yīng)用程序,允許應(yīng)用程序之間相互控制、相互調(diào)用。
AutoCADActiveX技術(shù)提供了一種機(jī)制,可使編程者通過(guò)編程手段從AutoCAD的內(nèi)部或外部來(lái)操縱AutoCAD。ActiveX是由一系列的對(duì)象組成,每一個(gè)對(duì)象代表了AutoCAD中一個(gè)明確的功能,如繪制圖形對(duì)象、定義塊和屬性等等。ActiveX所具備的絕大多數(shù)AutoCAD功能,均以方法和屬性的方式被封裝在ActiveX對(duì)象中,只要使用某種方式,使ActiveX對(duì)象得以“暴露”,那么就可以使用各種面向?qū)ο缶幊痰恼Z(yǔ)言對(duì)其中的方法、屬性進(jìn)行引用,從而達(dá)到對(duì)AutoCAD實(shí)現(xiàn)編程的目的。
第8頁(yè)/共37頁(yè)ARXObjectARX是AutoDesk公司針對(duì)AutoCAD平臺(tái)上的二次開發(fā)而推出的一個(gè)開發(fā)軟件包,它提供了以C++為基礎(chǔ)的面向?qū)ο蟮拈_發(fā)環(huán)境及應(yīng)用程序接口,能真正快速的訪問(wèn)AutoCAD圖形數(shù)據(jù)庫(kù)。ObjectARX應(yīng)用程序是一個(gè)DLL(動(dòng)態(tài)鏈接庫(kù)),共享AutoCAD的地址空間,對(duì)AutoCAD進(jìn)行直接函數(shù)調(diào)用。所以,使用ARX編程的函數(shù)的執(zhí)行速度得以大大提高。ARX類庫(kù)采用了標(biāo)準(zhǔn)的C++類庫(kù)的封裝形式,這也大大提高了程序員編程的可靠度和效率。由于是在Windows及VC++編程環(huán)境里運(yùn)行,所以,對(duì)開發(fā)者的編程能力要求較高?!?.3AutoCAD二次開發(fā)工具簡(jiǎn)介第9頁(yè)/共37頁(yè)LISP(ListProcessingLanguage)是一種計(jì)算機(jī)的表處理語(yǔ)言,是在人工智能學(xué)科領(lǐng)域廣泛應(yīng)用的一種程序設(shè)計(jì)語(yǔ)言。
AutoLISP語(yǔ)言是嵌套于AutoCAD內(nèi)部,將LISP語(yǔ)言與AutoCAD有機(jī)結(jié)合的產(chǎn)物。使用AutoLISP可直接調(diào)用幾乎所有的AutoCAD命令。AutoLISP語(yǔ)言既具備一般高級(jí)語(yǔ)言的基本功能,又具有一般高級(jí)語(yǔ)言所沒(méi)有的強(qiáng)大的圖形處理功能。是當(dāng)今世界上CAD軟件中被廣泛應(yīng)用的語(yǔ)言之一。
AutoLISP程序設(shè)計(jì)較簡(jiǎn)單易懂,易于掌握。適合于有能力的終端用戶完成一些自己的開發(fā)任務(wù)。
VisualLISP是AutoLISP的換代產(chǎn)品。與AutoLISP完全兼容,并提供它所有的功能,是新一代的AutoCADLISP語(yǔ)言。VLISP對(duì)語(yǔ)言進(jìn)行了擴(kuò)展,可以通過(guò)MicrosoftActiveXAutomation接口與對(duì)象交互?!?.4AutoLISP語(yǔ)言概述第10頁(yè)/共37頁(yè)一、AutoLISP的數(shù)據(jù)類型整數(shù):(-2147483648到+2147483648)實(shí)數(shù):(-1.79769310308到+1.79769310308
)符號(hào):包括除“(”、“)”、“.”、“‘”、“;”以外的任何打印字符。長(zhǎng)度沒(méi)有限制,大小寫等價(jià)。字符串:包含在一對(duì)雙引號(hào)內(nèi)的一組字符包括任何可以打印的字符。區(qū)別大小寫。最大長(zhǎng)度為100個(gè)字符,100以后的字符無(wú)效。沒(méi)有任何字符的字符串為空串:””§1.4AutoLISP語(yǔ)言概述常用術(shù)語(yǔ)“符號(hào)”來(lái)指儲(chǔ)存靜態(tài)數(shù)據(jù)的一個(gè)符號(hào)名,如內(nèi)建式函數(shù)和自定義函數(shù)。常用術(shù)語(yǔ)“變量”來(lái)指存儲(chǔ)程序數(shù)據(jù)的符號(hào)名(只有當(dāng)前類型沒(méi)有固定類型,字母開頭,不用內(nèi)部函數(shù)名和保留字符,如:+、-、*、/、<、>、.、;、(、)、pi、pause、T、nil等等)。AutoLISP的變量不需要事先定義。
每一個(gè)變量都要消耗少量?jī)?nèi)存,故當(dāng)變量值不再有用時(shí)重復(fù)使用變量名或?qū)⒆兞吭O(shè)置成nil是良好的程序設(shè)計(jì)習(xí)慣。其值保持不變的變量稱為常量,如:Pi整數(shù)、實(shí)數(shù)、符號(hào)、字符串在AutoLISP語(yǔ)言中稱為原子。原子包括:數(shù)字原子、符號(hào)原子和串原子。第11頁(yè)/共37頁(yè)表:放在一對(duì)相匹配的左右括號(hào)內(nèi)的一個(gè)或多個(gè)元素的集合。元素間用空格分開。有標(biāo)準(zhǔn)表和引用表兩種類型。一、AutoLISP的數(shù)據(jù)類型§1.4AutoLISP語(yǔ)言概述表有標(biāo)準(zhǔn)表和引用表兩種類型;AutoLISP程序就是用標(biāo)準(zhǔn)表來(lái)表示的;引用表用作數(shù)據(jù)處理,相當(dāng)于其它高級(jí)語(yǔ)言的數(shù)組,提供了保存各種數(shù)據(jù)的有效方法。
引用表中的每一個(gè)元素可以是數(shù)字、符號(hào)、字符串,也可以是表。表可以嵌套。如:(231.5Adfg”程序”(20.030.00.0))僅有兩個(gè)元素,并用“.”分開表稱為點(diǎn)對(duì)。點(diǎn)對(duì)常用于構(gòu)造連接表。原子和表是AutoLISP最基本的數(shù)據(jù),總稱為符號(hào)表達(dá)式(S-表達(dá)式)。表有標(biāo)準(zhǔn)表和引用表兩種類型;AutoLISP程序就是用標(biāo)準(zhǔn)表來(lái)表示的;引用表用作數(shù)據(jù)處理,相當(dāng)于其它高級(jí)語(yǔ)言的數(shù)組,提供了保存各種數(shù)據(jù)的有效方法。
引用表中的每一個(gè)元素可以是數(shù)字、符號(hào)、字符串,也可以是表。表可以嵌套。如:(231.5Adfg”程序”(20.030.00.0))僅有兩個(gè)元素,并用“.”分開表稱為點(diǎn)對(duì)。點(diǎn)對(duì)常用于構(gòu)造連接表。第12頁(yè)/共37頁(yè)文件描述符:打開文件時(shí)的返回值,相當(dāng)于其它語(yǔ)言的文件號(hào),用于數(shù)據(jù)的存取。選擇集:選擇集是一個(gè)或多個(gè)對(duì)象的集合。實(shí)體名(圖元名):是AutoCAD系統(tǒng)在繪圖過(guò)程中賦予所繪對(duì)象的一個(gè)數(shù)字標(biāo)號(hào)。確切地說(shuō),它是指向一個(gè)AutoCAD系統(tǒng)內(nèi)部數(shù)據(jù)文件的指針。利用圖元名,AutoLISP可以查找到圖形對(duì)象的數(shù)據(jù)庫(kù)記錄,并對(duì)其進(jìn)行各種方式的處理。一、AutoLISP的數(shù)據(jù)類型§1.4AutoLISP語(yǔ)言概述第13頁(yè)/共37頁(yè)AutoLISP語(yǔ)言中的一切設(shè)計(jì)成份都是以函數(shù)的形式給出的。它沒(méi)有語(yǔ)句的概念或其它語(yǔ)法結(jié)構(gòu),執(zhí)行程序就是執(zhí)行函數(shù),再調(diào)用函數(shù)。學(xué)習(xí)掌握AutoLISP語(yǔ)言,核心就是要掌握它的函數(shù);學(xué)習(xí)AutoLISP函數(shù)要掌握的基本內(nèi)容:(1)調(diào)用格式:即函數(shù)名、函數(shù)要求的參數(shù)個(gè)數(shù)和類型。(2)功能:即該函數(shù)的作用,它對(duì)其參數(shù)如何進(jìn)行處理。(3)求值情況:即哪些參數(shù)被求值,哪些不被求值。(4)求值結(jié)果的返回值類型二、AutoLISP的函數(shù)§1.4AutoLISP語(yǔ)言概述這一點(diǎn)很重要,因?yàn)榇蠖鄶?shù)函數(shù)的返回值都要被其它函數(shù)接受,而每個(gè)函數(shù)所需要參數(shù)都有特定的類型。因此只有搞清被調(diào)用函數(shù)的返回值的類型,才不會(huì)因用錯(cuò)函數(shù)的參數(shù)而導(dǎo)致錯(cuò)誤。第14頁(yè)/共37頁(yè)AutoLISP程序是由一系列按順序排列的標(biāo)準(zhǔn)表組成。每個(gè)標(biāo)準(zhǔn)表的第一個(gè)元素均為系統(tǒng)或用戶定義的函數(shù),其后的各元素為該函數(shù)的參數(shù)。如:(setqx25.0)(setqy25.0)(+(*xy)x)AutoLISP的程序的書寫格式:
所有括號(hào)必須左右匹配;閱讀AutoLISP程序時(shí),按從左到右的規(guī)則進(jìn)行;
函數(shù)必須放在表中的第一個(gè)元素位置;
一個(gè)表可以占多行,一行也可以寫多個(gè)表;
AutoLISP用“;”作注釋;
AutoLISP是以擴(kuò)展名為“.lsp”的ASCII碼文本文件的形式存儲(chǔ)。三、AutoLISP的程序
(setqx25.0)
(setqx25.0)(setqy25.0)(+xy)§1.4AutoLISP語(yǔ)言概述第15頁(yè)/共37頁(yè)
程序編輯:
AutoLISP程序是純文本文件,可以用任意一種ASCII碼文本編輯器(如記事本)來(lái)進(jìn)行編輯。編輯后以擴(kuò)展名為“.lsp”進(jìn)行保存。使用VisualLISP編程環(huán)境:打開AutoCAD2000及以上版本,點(diǎn)擊“工具”菜單下AutoLISP(S)菜單項(xiàng)中的VisualLISP編輯器(V),進(jìn)入VisualLISP編程環(huán)境
程序運(yùn)行:將編輯好的程序,加載后,在AutoCAD的命令行Command下輸入函數(shù)名即可運(yùn)行。四、編輯和運(yùn)行AutoLISP的程序§1.4AutoLISP語(yǔ)言概述第16頁(yè)/共37頁(yè)§2.1AutoLISP的基本函數(shù)§2.2AutoLISP繪圖功能第2章AutoLISP基本函數(shù)和繪圖功能第17頁(yè)/共37頁(yè)§2.1AutoLISP基本函數(shù)一、數(shù)值函數(shù)(1)數(shù)值運(yùn)算函數(shù)加:(+<數(shù)1><數(shù)2>…)減:(-<數(shù)1><數(shù)2>…)乘:(*<數(shù)1><數(shù)2>…)除:(/<數(shù)1><數(shù)2>…)
注意防止除數(shù)為零,如:(/25(/49))求最大數(shù):(max<數(shù)1><數(shù)2>…)求最小數(shù):(min<數(shù)1><數(shù)2>…)求平方根:(sqrt<數(shù)>)求冪次方:(expt<數(shù)>)求絕對(duì)值:(abs<數(shù)>)第18頁(yè)/共37頁(yè)§2.1AutoLISP基本函數(shù)一、數(shù)值函數(shù)(2)三角函數(shù)正弦函數(shù):(sin<角度>)<角度>用弧度表示余弦函數(shù):(cos<角度>)<角度>用弧度表示反正切函數(shù):(atan<數(shù)1><數(shù)2>)
若沒(méi)有提供<數(shù)2>,atan返回<數(shù)1>的反正切值(單位為弧度)返回角度范圍為-π到π;若提供了<數(shù)2>,則返回<數(shù)1>/<數(shù)2>的反正切值(單位為弧度);若<數(shù)2>為0,則返回值的符號(hào)同<數(shù)1>;其值為1.570796(90°)。第19頁(yè)/共37頁(yè)§2.1AutoLISP基本函數(shù)一、數(shù)值函數(shù)(3)數(shù)的類型轉(zhuǎn)換函數(shù)取整函數(shù):(fix<數(shù)>)
截去<數(shù)>的小數(shù)部分,將<數(shù)>轉(zhuǎn)換為整型數(shù)。實(shí)型化函數(shù):(float<數(shù)>)
將<數(shù)>轉(zhuǎn)換為實(shí)型數(shù)。第20頁(yè)/共37頁(yè)§2.1AutoLISP基本函數(shù)二、符號(hào)與函數(shù)處理函數(shù)(1)賦值函數(shù):(setq<符號(hào)1><表達(dá)式1>[<符號(hào)2><表達(dá)式2>]…)setq函數(shù)返回值是最后一個(gè)表達(dá)式的賦值結(jié)果。AutoLISP程序中作為參數(shù)的任何符號(hào)都必須先賦值。setq函數(shù)的求值結(jié)果很重要,常作為其它函數(shù)的參數(shù)。不使用系統(tǒng)內(nèi)部函數(shù)作為變量查看變量的值,在AutoCAD的Command下可在變量前加”!”;在控制臺(tái)下直接輸入變量,回車。(2)禁止求值函數(shù):(quote<表達(dá)式1>)也可簡(jiǎn)寫成:’(<表達(dá)式1>)
禁止對(duì)表達(dá)式求值,返回<表達(dá)式>本身。第21頁(yè)/共37頁(yè)§2.1AutoLISP基本函數(shù)二、符號(hào)與函數(shù)處理函數(shù)(3)定義用戶函數(shù)的函數(shù):(defun<函數(shù)名><參數(shù)表><表達(dá)式1><表達(dá)式2>
…<表達(dá)式n>)<函數(shù)名>就是用戶所定義的函數(shù)名,它必須是符號(hào)原子。<形參表>每個(gè)參數(shù)都是符號(hào)原子。由用“/”隔開的形參和局部變量組成。它可以是空表、只有形參、只有局部變量或形參和局部變量都有。<表達(dá)式>可以是一個(gè)或多個(gè),在函數(shù)調(diào)用時(shí)對(duì)它們進(jìn)行求值。利用defun可以為AutoCAD增加命令(defunC:XXX()….)第22頁(yè)/共37頁(yè)§2.1AutoLISP基本函數(shù)二、符號(hào)與函數(shù)處理函數(shù)(3)定義用戶函數(shù)的函數(shù):defun函數(shù)的調(diào)用是對(duì)已定義的函數(shù)的調(diào)用,其調(diào)用格式為:(<函數(shù)名><實(shí)參表>)
<實(shí)參表>中實(shí)參的個(gè)數(shù)與位置,要與函數(shù)定義的<形參表>中形實(shí)參的個(gè)數(shù)與位置逐一對(duì)應(yīng)。Defun函數(shù)的返回值是所定義函數(shù)的函數(shù)名。執(zhí)行完defun定義的函數(shù),局部變量將被釋放掉。全局變量可由任何函數(shù)訪問(wèn)和修改,或在任一表達(dá)式中使用。局部變量?jī)H在定義它的函數(shù)求值期間(函數(shù)調(diào)用期間)有意義。第23頁(yè)/共37頁(yè)§2.1AutoLISP基本函數(shù)三、表處理函數(shù)(1)提取表中數(shù)據(jù)的函數(shù):(car<表>)
提取表中第一個(gè)元素。(cdr<表>)
提取表中除第一個(gè)元素以外的所有元素組成表:(nth<n><表>)
提取表中第n個(gè)元素,n=0,1,2,…(last<n><表>)
提取表中頂層的最后一個(gè)元素。AutoLISP接受car和cdr的任意組合,
如:(cadar<表>)等效于(car(cdr(car<表>)。第24頁(yè)/共37頁(yè)§2.1AutoLISP基本函數(shù)三、表處理函數(shù)(2)構(gòu)造和修改表的函數(shù):(list<表達(dá)式>)
構(gòu)造表:將任意數(shù)目的表達(dá)式的求值結(jié)果串在一起,并返回它們組成的表。(append<表>...)
構(gòu)造表:將所有<表>中的元素串聯(lián)在一起,構(gòu)成一個(gè)新表。(cons<新的第一個(gè)元素><表>)
構(gòu)造表:將<新的第一個(gè)元素>加入<表>,返回加入元素后的表;若<表>為原子,則構(gòu)造一個(gè)點(diǎn)對(duì)表。(reverse<表>)
構(gòu)造表:將<表>中的頂層元素倒排,構(gòu)成一個(gè)新表。第25頁(yè)/共37頁(yè)§2.1AutoLISP基本函數(shù)三、表處理函數(shù)(3)提取并修改表中數(shù)據(jù)的函數(shù):(assoc<關(guān)鍵字><連接表>)
連接表又稱A-表。它是以點(diǎn)對(duì)或子表為元素組成的表。每個(gè)點(diǎn)對(duì)和子表的第一個(gè)元素稱為關(guān)鍵字。函數(shù)assoc搜索<連接表>,以找到此表中的關(guān)鍵字,并提取包含關(guān)鍵字的子表,并返回該子表;若未找到關(guān)鍵字,則返回nil。(subst<新項(xiàng)><舊項(xiàng)><表>)
函數(shù)subst從<表>搜索<舊項(xiàng)>,將表中的每一個(gè)<舊項(xiàng)>用<新項(xiàng)>替換,并返回替換后的表;若未在<表>中找到<舊項(xiàng)>,則返回沒(méi)有更改的表第26頁(yè)/共37頁(yè)§2.1AutoLISP基本函數(shù)三、表處理函數(shù)(4)表循環(huán)處理函數(shù):(foreach<符號(hào)原子><表><表達(dá)式>)
該函數(shù)循環(huán)地將<表>中每一個(gè)頂層元素賦給<符號(hào)原子>再對(duì)循環(huán)體中的每一個(gè)表達(dá)式求值,并返回最后一次循環(huán)時(shí)循環(huán)體中最后一個(gè)表達(dá)式的求值結(jié)果。
(mapcar<函數(shù)名><表1>…<表n>)
該函數(shù)依次循環(huán)地把<表1>、<表2>…
<表n>的元素賦給<函數(shù)名>所指函數(shù)的相應(yīng)參數(shù),并調(diào)用此函數(shù)進(jìn)行求值,把每次循環(huán)的求值結(jié)果按求值順序構(gòu)成一個(gè)表,作為mapcar函數(shù)的返回值。第27頁(yè)/共37頁(yè)§2.1AutoLISP基本函數(shù)四、字符串處理函數(shù)(1)數(shù)串互換函數(shù):(itoa<整數(shù)>)
該函數(shù)將整數(shù)轉(zhuǎn)換成整數(shù)字符串,返回字符串。(atoi<數(shù)字串>)
該函數(shù)將數(shù)字字符串轉(zhuǎn)換成整數(shù),返回整數(shù)。(atof<數(shù)字串>)
該函數(shù)將數(shù)字字符串轉(zhuǎn)換成實(shí)型數(shù),返回實(shí)型數(shù)。
第28頁(yè)/共37頁(yè)§2.1AutoLISP基本函數(shù)四、字符串處理函數(shù)(1)數(shù)串互換函數(shù):(rtos<數(shù)>[<模式>[<精度>]])
該函數(shù)該函數(shù)根據(jù)<模式>和<精度>,將<數(shù)>轉(zhuǎn)換成相應(yīng)的字符串,其中<模式>和<精度>都為整數(shù)。
<模式>的值的意義:1科學(xué)計(jì)數(shù)格式2十進(jìn)制格式3工程計(jì)數(shù)格式4建筑計(jì)數(shù)格式5任選的分?jǐn)?shù)單位
<精度>:保留小數(shù)點(diǎn)后幾位第29頁(yè)/共37頁(yè)§2.1AutoLISP基本函數(shù)四、字符串處理函數(shù)(2)字符串處理函數(shù):(strcat<字符串1><字符串2>…)
該函數(shù)將<字符串1><字符串2>…按順序頭尾相連組成一個(gè)新的字符串,并返回這個(gè)新字符串。(substr<字符串1><開始><長(zhǎng)度>)
該函數(shù)從<字符串>中截取一個(gè)子字符串并返回,其中<開始>和<長(zhǎng)度>變量都必須是正整數(shù)
。(strlen<字符串>…
)
該函數(shù)求<字符串>中字符的個(gè)數(shù)(含空格)并返回。
第30頁(yè)/共37頁(yè)§2.2AutoLISP的繪圖功能一、GET類輸入函數(shù)GET類(屏幕)輸入函數(shù)的通用格式:(getXXX[<提示>])
XXX:intrealstringpointdistangle…(getint[<提示>])從提示行輸入一整型數(shù);(getreal[<提示>])從提示行輸入一實(shí)型數(shù);(getstring[<提示>])從提示行輸入一字符串;(getpoint[<提示>])從提示行輸入一個(gè)點(diǎn)或在屏幕上用鼠標(biāo)輸一個(gè)點(diǎn)(getdist[<提示>])從提示行輸入一個(gè)實(shí)型或整型值(距離值)或從屏幕上輸入兩點(diǎn)而決定距離。(getangle[<提示>])從提示行輸入一個(gè)角度值或基于從屏幕上選取的點(diǎn)決定角度值。第31頁(yè)/共37頁(yè)§2.2AutoLISP的繪圖功能二、Command函數(shù)(1)Command函數(shù)的格式(Command<參數(shù)>…...)<參數(shù)>格式取決于所執(zhí)行的AutoCAD命令及其所需要的數(shù)據(jù)類型。即command函數(shù)中所調(diào)用的<參數(shù)>類型、個(gè)數(shù)、與順序均要和AutoCAD命令嚴(yán)格對(duì)應(yīng)。
AutoCAD的命令、子命令和選擇項(xiàng)要用不含空格的字符串表示,大小寫均可。數(shù)字常量(整數(shù)或?qū)嵭蛿?shù))可寫成數(shù)本身也可寫成字符串形式點(diǎn)常量有兩種表示方法,一是用表的形式,如(10.025.0);二是用字符串中的數(shù)據(jù)表示如:”
10.0,25.0”。
command函數(shù)調(diào)用參數(shù)中的空串(“”),等效于在鍵盤上按一次空格鍵。
command函數(shù)調(diào)用的參數(shù),如數(shù)字、點(diǎn)也可為表達(dá)式,但表達(dá)式求值結(jié)果的數(shù)據(jù)類型要和AutoCAD命令的要求一致。
command函數(shù)可以不帶任何參數(shù),相當(dāng)于在鍵盤上按一次Ctrl+C。
AutoLISP具有強(qiáng)大的繪圖編輯功能,主要是由于它提供了一個(gè)系統(tǒng)內(nèi)部函數(shù)Command函數(shù),利用Command函數(shù)可以非常方便地調(diào)用幾乎全部AutoCAD命令,以完成各種工程圖形的繪制功能。第32頁(yè)/共37頁(yè)§2.2AutoLISP的繪圖功能二、Command函數(shù)(2)Command函數(shù)的功能
Command函數(shù)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025舊版商品房買賣合同范本
- 移動(dòng)醫(yī)療與學(xué)生心理健康管理服務(wù)的新模式
- 2023年水資源專用機(jī)械投資申請(qǐng)報(bào)告
- 游戲化學(xué)習(xí)提升小學(xué)生數(shù)學(xué)能力的秘密武器
- 2025年粵人版選修4地理上冊(cè)階段測(cè)試試卷含答案
- 2025年冀教新版選擇性必修1生物上冊(cè)月考試卷含答案
- 2025年粵教版七年級(jí)物理下冊(cè)月考試卷
- 2025年統(tǒng)編版必修2生物上冊(cè)月考試卷含答案
- 2025年度智能門禁系統(tǒng)租賃合同范本8篇
- 二零二五版定制門窗個(gè)性化定制合同范本4篇
- 物業(yè)民法典知識(shí)培訓(xùn)課件
- 2023年初中畢業(yè)生信息技術(shù)中考知識(shí)點(diǎn)詳解
- 2024-2025學(xué)年八年級(jí)數(shù)學(xué)人教版上冊(cè)寒假作業(yè)(綜合復(fù)習(xí)能力提升篇)(含答案)
- 《萬(wàn)方數(shù)據(jù)資源介紹》課件
- 醫(yī)生定期考核簡(jiǎn)易程序述職報(bào)告范文(10篇)
- 第一章-地震工程學(xué)概論
- 《中國(guó)糖尿病防治指南(2024版)》更新要點(diǎn)解讀
- 初級(jí)創(chuàng)傷救治課件
- 交通運(yùn)輸類專業(yè)生涯發(fā)展展示
- 2024年山東省公務(wù)員錄用考試《行測(cè)》試題及答案解析
- 神經(jīng)重癥氣管切開患者氣道功能康復(fù)與管理專家共識(shí)(2024)解讀
評(píng)論
0/150
提交評(píng)論