




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、;調(diào)用調(diào)用AutoCADAutoCAD命令畫(huà)圓命令畫(huà)圓(defun C:HY()(defun C:HY() (setq P0 (getpoint (setq P0 (getpoint 第一圓心坐標(biāo)第一圓心坐標(biāo):):) (setq R (getreal (setq R (getreal半徑半徑:):) (setq L (getreal (setq L (getreal圓心間距離圓心間距離:):) (setq a 1) (setq a 1) (setq n(getintn (setq n(getintn圓的個(gè)數(shù)圓的個(gè)數(shù):):) (while (= a n) (while (= a n) (comm
2、and circle P0 R) (command circle P0 R) (setq P0 (polar P0 0 L) (setq P0 (polar P0 0 L) (setq a (1+ a) (setq a (1+ a) ) ) );在屏幕上顯示在屏幕上顯示 ASCIIASCII碼為(碼為(65659090)的字符)的字符(defun C:zm(/ as) ;(defun C:zm(/ as) ;自定義命令自定義命令 (setq as 65 n 100)(setq as 65 n 100) (while (= as 90) (while (= as 90) (command tex
3、t (list n 100) 15 (chr as) (command text (list n 100) 15 (chr as) (setq as (+ as 1) n (+ n 20) (setq as (+ as 1) n (+ n 20) ) ) )1.求a,b,c三個(gè)數(shù)的平方和。2.根據(jù)前后視讀數(shù),求兩點(diǎn)間高差。3.求閉合水準(zhǔn)線路的高差閉合差。參考答案1:(setq a (getreal輸入第一個(gè)數(shù)a:)(setq b (getreal輸入第二個(gè)數(shù)b:)(setq c (getreal輸入第三個(gè)數(shù)c:)(setq s (+ (* a a)(* b b)(* c c)參考答案2:(se
4、tq a (getreal輸入后視讀數(shù)a:)(setq b (getreal輸入前視讀數(shù)b:)(setq h (- a b)參考答案3:(setq n (getint 輸入高差個(gè)數(shù):)(setq fh 0.0)(repeat n (setq h (getrealn依次輸入高差:) (setq fh(+ fh h)1.絕對(duì)值(abs)、平方根 (sqrt) 、正弦(sin) 、余弦(cos) 、 反正切(atan) 以上函數(shù)格式:(函數(shù)名 )2.冪函數(shù)(expt)、(exp) 格式: (expt 底數(shù) 冪) 格式: (exp 底數(shù) ) 注意:以上各函數(shù)返回的數(shù)值類型。3.舉例viLHHABsin
5、sincosSSyx舉例:用AutoLISP表示下列公式:(1)計(jì)算三角高程的表達(dá)式 (2)計(jì)算坐標(biāo)增量的表達(dá)式(3)將度化成弧度單位參考答案參考答案: :(1) (setq HA (getreal 輸入HA:) (setq L (getreal 輸入L:) (setq AF (getreal 輸入AF:) (setq i (getreal 輸入i:) (setq v (getreal 輸入v:) (setq HB1 (+ HA (- i v) (setq HB2 (* L (sin af) (setq HB (+ HB1 HB2)參考答案:(3) (setq af (getreal “輸入a
6、f:”); af是整度數(shù) (setq af (/ 180 (* pi af)v如何將度分秒化成弧度?賦值函數(shù)有兩個(gè):setq和set1.setq1.setq 格式:(setq 變量1 表達(dá)式1 變量2 表達(dá)式2 )賦給變量的值可以是任何表達(dá)式(數(shù)值、字符串、字母)。 注意:不要用AutoLISP的函數(shù)名和常數(shù)當(dāng)作變量。舉例:(1) (setq a 32 b 33.26 c yes) (2) (setq a (sin (/ pi 4) (3) (setq x 34.3 y 5.23 p(list x y ) (4) (setq pt(getpointn輸入一點(diǎn):)2.set2.set與setq不
7、同之處,是set為符號(hào)賦值,setq為變量賦值。如:(set a 9) 結(jié)果a為9 此函數(shù)非常有用,和其它函數(shù)配合使用,可以得到一維數(shù)組。舉例:(1) (set(read(getstringn輸入點(diǎn) 名:)(getpointn輸入點(diǎn)坐標(biāo):)(2) (set(read(getstringn輸入變量 名:)(getrealn輸入變量值:)四、字符串處理函數(shù)四、字符串處理函數(shù)1.strcat格式:(strcat 串1 串2.)把“串1”、“串2”、等連成一個(gè)新的字符串。如:(strcat a bout) 返回 about(strcat a b c) 返回 abc(strcat a c) 返回 ac“
8、2.strlen格式:(strcat 字符串)此函數(shù)求“字符串”長(zhǎng)度。如:(strlen one two three) 返回11 3.substr格式:(substr 字符串 起點(diǎn) 長(zhǎng)度)此函數(shù)將返回“字符串”的子字符串。子串的起始位置是以“起點(diǎn)”確定,子串長(zhǎng)度由“長(zhǎng)度”指定。如果“長(zhǎng)度”沒(méi)有設(shè)定, 則子串將從“起點(diǎn)”到最后?!捌瘘c(diǎn)”和“長(zhǎng)度”均須為正整型數(shù)。如:(substr abcde 2) 返回 bcde(substr abcde 3 2) 返回 cd0YP 1XP 2七、表處理函數(shù)七、表處理函數(shù)1.list函數(shù)2.car函數(shù) 格式:(car 表) 返回一個(gè)列表中的第一個(gè)元素的數(shù)值(X元
9、素)。如果該列表中沒(méi)有任何元素,則返回空值nil。3.cadr函數(shù) 返回一個(gè)列表的第二個(gè)元素(Y元素)。4.last函數(shù) 返回一個(gè)列表的最后一個(gè)元素。5.(nth 表)返回表中第n個(gè)元素(n從0算起)。1.(setq p(getpoint“n輸入一點(diǎn):”)(setq x(car p) y(cadr p)舉例:舉例:2.(setq p( GPS1 3456.786 23415.674 34.567)(setq dh(car p) x(cadr p) y(nth 2 p) z(last p)八、八、CommandCommand函數(shù)函數(shù) Command函數(shù)是AutoLISP中唯一調(diào)用AutoCAD命
10、令實(shí)現(xiàn)繪圖的途徑,非常重要。1.作用:使用Command函數(shù)(唯一)可調(diào)用AutoCAD命令。 2.格式:(Command “AutoCAD命令及其選項(xiàng)”) 如: (setq p1 (100.453 100.567) p2 (200.254 201.587) (command line p1 p2 )3.注意事項(xiàng) (1)Command函數(shù)不能調(diào)用AutoLISP的輸入函數(shù),如getpoint、getangle、getstring、getint等。(2)AutoCAD命令名稱和選項(xiàng)必需放在雙引號(hào)中,并要求雙引號(hào)中不能有空格。( 3 ) 不 帶 “ A u t o C A D 命 令 及 其 選
11、項(xiàng) ” , 即(command),等效ESC鍵(中止)。(4)幾個(gè)命令和數(shù)據(jù)可以寫在一個(gè)command函數(shù)中,也可分開(kāi)寫在兩個(gè)或兩個(gè)以上的command函數(shù)中。如: (Command “l(fā)ine” p1 p2 p3 p4 “” ) 和 (Command “Pline” p1 p2) (Command p3 p4 “”)等效。(5)文字注記時(shí),字符串也要用“”括起來(lái)。如:(Command “Text” (100 100) 5 “” “AutoLISP”)(6)調(diào)用對(duì)話框命令時(shí),不顯示對(duì)話框,以提示方式執(zhí)行。如:新建“控制點(diǎn)”圖層,設(shè)置圖層為紅色。(command layer m 控制點(diǎn) c 1
12、)舉例:畫(huà)一個(gè)邊長(zhǎng)為L(zhǎng),中心點(diǎn)坐標(biāo)為P的正三角形,要求底邊水平。 (setq L (getrealn輸入邊長(zhǎng):)(setq P (getpointn輸入中心:)(setq r (* 0.288675134 L) ;求內(nèi)切圓半徑12r*r=L*L(command polygon 3 P c R)3.3 3.3 自定義命令和自定義函數(shù)自定義命令和自定義函數(shù) 一、自定義函數(shù)(一、自定義函數(shù)(defundefun) 用函數(shù)(defun)可以定義用戶自己的函數(shù),叫自定義函數(shù)。自定義函數(shù)象AutoLISP函數(shù)一樣可以被調(diào)用,比如說(shuō),把常用的符號(hào)定義成自定義函數(shù),實(shí)際用時(shí),帶入具體參數(shù)就可以得到圖形,不別再
13、繪制。 1. 1. 自定義函數(shù)格式自定義函數(shù)格式(defun (defun 函數(shù)名函數(shù)名 變?cè)碜冊(cè)?表達(dá)式表達(dá)式1 1表達(dá)式表達(dá)式2 2) )例:用自定義函數(shù)方式編寫例:用自定義函數(shù)方式編寫一個(gè)程序,繪制正三角形。一個(gè)程序,繪制正三角形。(defun sjx()(defun sjx()(setq L (getrealn(setq L (getrealn輸入輸入邊長(zhǎng)邊長(zhǎng):):)(setq P (getpointn(setq P (getpointn輸入輸入中心中心:):)(setq r (setq r (* * 0.288675134 0.288675134 L) ;L) ;求內(nèi)切圓半徑求內(nèi)
14、切圓半徑12r12r* *r=Lr=L* *L L(command polygon 3 P (command polygon 3 P c R)c R) )2.2.注意注意 (1)函數(shù)名是用戶自己設(shè)定的,不能與AutoLISP內(nèi)部函數(shù)名、變量名相同;(2)變?cè)淼男问接兴姆N:v(參數(shù)1 參數(shù)2),如上例。變?cè)頌榇诵问?時(shí),調(diào)用要帶參數(shù)。v( ),無(wú)參形式。調(diào)用時(shí)不帶參數(shù)。 v(參數(shù)1 參數(shù)2/局部變量1 局部變量2)。變?cè)頌榇诵问綍r(shí),調(diào)用要帶參數(shù)。v(/局部變量1 局部變量2)。調(diào)用時(shí)不帶參數(shù)。q/ 與參數(shù)、局部變量之間必須有空格。 (3)表達(dá)式是函數(shù)的定義體,完成計(jì)算和繪圖。(4)自定義函
15、數(shù)的作用:defun函數(shù)用于在AutoLISP程序中定義一個(gè)函數(shù)。它就象其它標(biāo)準(zhǔn)函數(shù)一樣,可以為我所用。使用時(shí),通過(guò)不同的參數(shù),可以繪制不同的圖形。調(diào)用自定義函數(shù)舉例:;度化弧度自定義函數(shù)(defun hd(af) (setq hhd(/ (* af pi) 180)(defun hsjx ()(defun hsjx () (setq L (getreal n (setq L (getreal n輸入邊長(zhǎng)輸入邊長(zhǎng):):) (setq P (getpoint n (setq P (getpoint n輸入中心輸入中心:):) (setq r ( (setq r (* * 0.288675134
16、L) 0.288675134 L) ; ;求內(nèi)切圓半徑求內(nèi)切圓半徑 (setq p1 (polar P (hd 210) (setq p1 (polar P (hd 210) (* * 2 r) 2 r) ; ;調(diào)用自定義函數(shù)調(diào)用自定義函數(shù) (setq p2 (polar p1 (hd 0) L)(setq p2 (polar p1 (hd 0) L) ; ;調(diào)用自定義函數(shù)調(diào)用自定義函數(shù) (setq p3 (polar p1 (hd 60) L)(setq p3 (polar p1 (hd 60) L) ; ;調(diào)用自定義函數(shù)調(diào)用自定義函數(shù) (command line p1 p2 p3 c)(c
17、ommand line p1 p2 p3 c) )PP1P2P3二、自定義命令二、自定義命令 自定義命令的作用是用defun函數(shù)為AutoCAD增加各種新命令。 1.1.格式格式(defun C:(defun C:()() 1 2) )或或(defun C:(defun C:(/(/)2) 1 2) )2.注意事項(xiàng)(1)自定義命令格式中是命令名稱;必須有C:(大小寫等效);與C:之間不能有空格。(2)不能和內(nèi)部或外部函數(shù)名相同;也不能和其它命令同名。 (3)注意與自定函數(shù)的區(qū)別。 3. 自定義命令調(diào)用加載(load)程序后,在命令行上輸入自定義命令名。 例.編寫計(jì)算三角高程的AutoLISP程
18、序。程序清單如下:;計(jì)算三角高程(defun c:sjgc() (hd) ;調(diào)用自定義函數(shù)hd (setq L(getreal”n斜邊邊長(zhǎng):”) (setq i(getreal”n儀器高:”) (setq v(getreal”n覘標(biāo)高:”) (setq h1 (* L (sin ard) (setq h2 (- i v) (setq h (+ h1 h2); ;把度分秒化成弧度把度分秒化成弧度(defun hd()(defun hd()(setq a (getstring nA:)(setq a (getstring nA:); ;輸入角度(按輸入角度(按6.36286.3628形式輸入)形式
19、輸入)(cond(cond (= (strlen a) 6) (= (strlen a) 6) (setq ad (substr a 1 1) (setq ad (substr a 1 1) (setq am (substr a 3 2) (setq am (substr a 3 2) (setq as (substr a 5 2) (setq as (substr a 5 2) ) ) (= (strlen a) 7) (= (strlen a) 7) (setq ad (substr a 1 2) (setq ad (substr a 1 2) (setq am (substr a 4 2
20、) (setq am (substr a 4 2) (setq as (substr a 6 2) (setq as (substr a 6 2) ) )(= (strlen a) 8)(= (strlen a) 8) (setq ad (substr a 1 3) (setq ad (substr a 1 3) (setq am (substr a 5 2) (setq am (substr a 5 2) (setq as (substr a 7 2) (setq as (substr a 7 2) ) ) (setq a1 (atof ad) (setq a1 (atof ad) (set
21、q a2 (atof am) (setq a2 (atof am) (setq a3 (atof as) (setq a3 (atof as) (setq ar (+ a1 (/ a2 60) (setq ar (+ a1 (/ a2 60) (/ a3 3600)(/ a3 3600) (setq ard (/ ( (setq ard (/ (* * ar pi) ar pi) 180)180) (princ ard) (princ ard) (princ) (princ)3.4 3.4 程序結(jié)構(gòu)函數(shù)程序結(jié)構(gòu)函數(shù) 程序結(jié)構(gòu)函數(shù)用于控制程序的進(jìn)程,把它叫程序結(jié)構(gòu)函數(shù)。包括:關(guān)系函數(shù)、邏輯函數(shù)、
22、謂詞函數(shù)、條件函數(shù)、循環(huán)函數(shù)。一、關(guān)系函數(shù)一、關(guān)系函數(shù) 1.1.等于等于 格式:(= atom1 atom2.) 等于函數(shù)(= )判斷數(shù)是否相等。如果相等則條件為真,返回值為T(真值)。同樣,如果不相等,則條件為假,返回值為nil(假值)。 2.不等于 格式:(/= atom1 atom2.) 不等于函數(shù)( / =)判斷數(shù)是否不相等。如果不相等,則條件為真,返回值為T。 3.小于 格式:( atom1 atom2 .) 小于函數(shù)( )判斷前一個(gè)數(shù)( atom1)是否小于后面的作數(shù)( atom2),如果小于,則條件為真,返回值為T,否則返回nil。 4.小于等于 格式:(= atom1 atom
23、2.)小于等于函數(shù)( atom1 atom2.)大于函數(shù)判斷第一個(gè)數(shù)是否大于第二個(gè)數(shù),如果大于,則條件為真,返回值為T,否則返回nil。 6.大于等于 格式:(= atom1 atom2.)二、邏輯函數(shù)二、邏輯函數(shù) 1.邏輯“與” 格式:(and 表達(dá)式1) 這個(gè)函數(shù)求出表達(dá)式之間的“與”運(yùn)算值,即當(dāng)所有表達(dá)式值同時(shí)為T時(shí),函數(shù)結(jié)果為T,如果其中任何一個(gè)表達(dá)式值為nil,函數(shù)結(jié)果為nil。例如:(setq a 10 b 20)(and ( a 5)( b 5)( b 15) 結(jié)果為nil 2. 邏輯“或” 格式:(or 表達(dá)式1) 這個(gè)函數(shù)求出表達(dá)式之間的“或”運(yùn)算值,即當(dāng)所有表達(dá)式值同時(shí)為n
24、il時(shí),函數(shù)結(jié)果為nil,如果其中任何一個(gè)表達(dá)式值為T,函數(shù)結(jié)果為T。例如:(setq a 10 b 20)(or ( a 15) 結(jié)果為nil(or ( b 15) 結(jié)果為T 3. 邏輯“非” 格式:(not 數(shù)或表達(dá)式) 這個(gè)函數(shù)求出表達(dá)式之間的“非”運(yùn)算值,即當(dāng)“數(shù)或表達(dá)式”值為nil時(shí),函數(shù)結(jié)果為T,否則函數(shù)結(jié)果為NIL。例如:(setq a 10 b 20 c nil)(not a) 結(jié)果為nil(not c) 結(jié)果為T(not (or ( a 15) 結(jié)果為T(not (or ( b 15) 結(jié)果為nil三、數(shù)據(jù)謂詞函數(shù)和等值謂詞函數(shù)三、數(shù)據(jù)謂詞函數(shù)和等值謂詞函數(shù)(自學(xué)自學(xué))四、條
25、件函數(shù)和順序處理函數(shù)四、條件函數(shù)和順序處理函數(shù) 1.If1.If函數(shù)函數(shù) 格式:格式: (If (If 1 2 ) )if流程圖式1式2nil測(cè)試式T舉例:舉例:(1 1) (If (= 1 3) “YES” “NO”) (If (= 1 3) “YES” “NO”) 結(jié)果為結(jié)果為“NO”NO”(2 2) (setq a 15)(setq a 15) (If (and (= a 10)(= a 10)(= a 18) (setq d 3) (setq d 3) (setq c 10) (setq c 10) ) ) 結(jié)果結(jié)果D D為為3 3。2.cond函數(shù)格式:(cond )是邏輯表達(dá)式,為
26、一個(gè)或多個(gè)表達(dá)式。執(zhí)行過(guò)程見(jiàn)圖。 cond流程圖TTT測(cè)試式nnil測(cè)試式2測(cè)試式1nil結(jié)果n結(jié)果2結(jié)果1舉例:(setq d 0.3)(cond (and(= d 0.2)(= d 0.5)(= d 1.0)(setq c 9.0) ( d 0.6)(setq c 9.0)運(yùn)行結(jié)果為C=10。 3.progn函數(shù)progn函數(shù)通常和If函數(shù)一道用,來(lái)控制計(jì)算順序。格式:(prong 表達(dá)式1)舉例:舉例:(setq a 15 b 15.0)(setq a 15 b 15.0) ( (if (= a b)if (= a b) (princ “ (princ “大家好大家好!”)!”) (se
27、tq a (+ a 1) (setq a (+ a 1) b (+ b 1) b (+ b 1) ) )運(yùn)行結(jié)果是:大家好運(yùn)行結(jié)果是:大家好! ! a=15a=15, b=15.0b=15.0(setq a 15 b 15.0)(setq a 15 b 15.0) ( (if (= a b)if (= a b) ( (prognprogn (princ “ (princ “大家好大家好!”)!”) (setq a (+ a 1) (setq a (+ a 1) b (+ b 1) b (+ b 1) ) ) ) )運(yùn) 行 結(jié) 果 是 : 大 家 好運(yùn) 行 結(jié) 果 是 : 大 家 好 ! ! a=16a=16, b=16.0
溫馨提示
- 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-2030年中國(guó)食品產(chǎn)業(yè)園行業(yè)現(xiàn)狀調(diào)研及發(fā)展?jié)摿Ψ治鰣?bào)告
- 2025-2030年中國(guó)隨車起重機(jī)市場(chǎng)前景趨勢(shì)及發(fā)展?jié)摿Ψ治鰣?bào)告
- 2025-2030年中國(guó)防火門行業(yè)發(fā)展策略規(guī)劃分析報(bào)告
- 2025-2030年中國(guó)鉆機(jī)電控系統(tǒng)市場(chǎng)十三五規(guī)劃與發(fā)展策略研究報(bào)告
- 2025-2030年中國(guó)訓(xùn)練健身器材行業(yè)需求現(xiàn)狀及發(fā)展趨勢(shì)分析報(bào)告
- 2025-2030年中國(guó)組合電器產(chǎn)業(yè)發(fā)展趨勢(shì)及前景調(diào)研分析報(bào)告
- 武漢體育學(xué)院《機(jī)制設(shè)計(jì)理論及應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 鄂爾多斯職業(yè)學(xué)院《功能表面設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 大同師范高等專科學(xué)?!堆芯啃詫W(xué)習(xí)指導(dǎo)與管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 合肥職業(yè)技術(shù)學(xué)院《社會(huì)企業(yè)》2023-2024學(xué)年第二學(xué)期期末試卷
- 新版統(tǒng)編版一年級(jí)道德與法治下冊(cè)全冊(cè)教案(完整版)教學(xué)設(shè)計(jì)含教學(xué)反思
- 城市開(kāi)放空間-課件
- 2025年春季學(xué)期學(xué)校德育工作計(jì)劃安排表(完整版)
- 湖南2024年湖南省水利廳所屬事業(yè)單位招聘57人筆試歷年參考題庫(kù)附帶答案詳解
- 2025年全球及中國(guó)調(diào)頻儲(chǔ)能行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2024年加氫站技術(shù)規(guī)范
- 《幼兒教育政策與法規(guī)》教案-單元4 幼兒園的保育和教育
- 小學(xué)思政培訓(xùn)
- 《森林火災(zāi)預(yù)防與撲救技術(shù)課件教程》
- 2025年度會(huì)計(jì)人員繼續(xù)教育會(huì)計(jì)法律法規(guī)答題活動(dòng)測(cè)試100題答案
- 第15課 人機(jī)對(duì)話的實(shí)現(xiàn) 說(shuō)課稿 六上信息科技浙教版(2023)001
評(píng)論
0/150
提交評(píng)論