autolisp凸輪設(shè)計(jì)與仿真_第1頁
autolisp凸輪設(shè)計(jì)與仿真_第2頁
autolisp凸輪設(shè)計(jì)與仿真_第3頁
autolisp凸輪設(shè)計(jì)與仿真_第4頁
autolisp凸輪設(shè)計(jì)與仿真_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、一、對話框的設(shè)計(jì)AutoCAD為用戶提供的可編程對話框技術(shù)是由專用的對話框描述語言(DCL)和AutoLISP驅(qū)動函數(shù)兩部分內(nèi)容組成的。 對話框由框架和包含在框架內(nèi)的控件組成。一個(gè)對話框由位于其中的按鈕(單選框、復(fù)選框、圖像、動作)、文本編輯框、彈出式列表框和滑動條等控件組成。 1. 控件的定義方式name : item1 : item2 : item3 attribute1=value1; attribute2=value2; ; 一般必須有key屬性,驅(qū)動時(shí)用。對話框例子:pianzhigunzi_dlg:dialog label=解析法設(shè)計(jì)偏置直動滾子推桿盤形凸輪; :column la

2、bel=繪圖類型; :image_button key=pianzhitulun;width=30;height=18;color=-2;/背景為黑色 :edit_box label=行程h:; key=key_h; width=20; :edit_box label=基圓半徑r:; key=key_r; width=20; :edit_box label=偏距e:; key=key_e; width=20; :edit_box label=滾子半徑rc:; key=key_rc; width=20; :edit_box label=推程運(yùn)動角alf1:; key=key_alf1; widt

3、h=20; :edit_box label=近休止角alf2:; key=key_alf2; width=20; :edit_box label=回程運(yùn)動角alf3:; key=key_alf3; width=20; :edit_box label=遠(yuǎn)休止角alf4:; key=key_alf4; width=20; :button label=繪制理論輪廓; key=draw_lilun; :button label=繪制工作輪廓; key=draw_gongzuo; :button label=繪制推桿運(yùn)動規(guī)律; key=draw_yundong; ok_cancel;二、對話框驅(qū)動(lo

4、ad_dialog dclfile)(new_dialog dlgname dcl_id)(start_dialog)(unload_dialog dcl_id)裝入一個(gè)DCL文件至內(nèi)存。成功: 正整數(shù) 否則:負(fù)整數(shù) 開始一個(gè)新的對話框,并顯示該對話框顯示一個(gè)對話框,并開始接受用戶的輸入。所有對話框的初始化工作,如:設(shè)置控件值、生成圖像、生成列表框的表以及將各個(gè)動作與特定的控件聯(lián)系起來(用action_tile函數(shù)完成)等等,都必須發(fā)生在調(diào)用new_dialog函數(shù)之后,同時(shí)也必須發(fā)生在調(diào)用Start_dialog函數(shù)之前。卸裝一個(gè)DCL文件(defun c:tulun( ) (setq id

5、 (load_dialog e:wlyautolisp xuexiautolisp studytulun1_dialog) /裝載對話框文件 (if ( id 0) (exit) /如文件不存在,退出 (if (not (new_dialog pianzhigunzi_dlg id) (exit) /對話框文件中名稱不存在,退出 (f_img pianzhitulun e:wlyautolisp xuexiautolisp studytulun1) (set_tile key_h 50) (set_tile key_r 50) (set_tile key_e 20) (set_tile key

6、_rc 10) (set_tile key_alf1 120) (set_tile key_alf2 30) (set_tile key_alf3 60) (set_tile key_alf4 150) (action_tile draw_lilun (getdata)(done_dialog 2) (action_tile draw_gongzuo (getdata)(done_dialog 3) (action_tile draw_yundong (getdata)(done_dialog 4) (action_tile accept (done_dialog 1) (action_til

7、e cancel (done_dialog -1) (setq value (start_dialog) )/顯示對話框,將得到關(guān)閉對話框是的狀態(tài)值 (if (= value 2) (draw_lilun) (if (= value 3) (draw_gongzuo) (if (= value 4) (draw_yundong) (princ) (unload_dialog id) /卸載對話框 )(defun f_img( key sld);定義初始化圖像按鈕函數(shù) 裝幻燈片函數(shù) (start_image key) (slide_image 0 0 (dimx_tile key) (dimy_

8、tile key) sld) (end_image) )函數(shù)定義(defun c:My-circle() (setq pt (list 100 100) ; 得到圓心坐標(biāo)(setq r 50) ; 得到半徑(command “circle” pt r) ; 繪制圓 )規(guī)則1:以括號組成表達(dá)式,左右括號“(”&“)”一定要配對。 表達(dá)式是AutoLISP的基本語句,所有表達(dá)式都具有以下形式: (函數(shù) 參數(shù)表) 即由一個(gè)函數(shù)名和調(diào)用這個(gè)函數(shù)所需的參數(shù)表組成。參數(shù)表中的參數(shù)也可以是表達(dá)式,即AutoLISP的表達(dá)式可以嵌套。規(guī)則2:注釋以分號“;”開頭,它可以單獨(dú)位于一行,也可以位于某一程序語句的后

9、面。 編寫AutoLISP程序時(shí),應(yīng)添加必要的注釋,以說明程序的功能、 規(guī)則3:“前綴表示法”。 AutoLISP語言的結(jié)構(gòu)與常用高級結(jié)構(gòu)有所區(qū)別。像BASIC、PASCAL、C等語言均采用“中綴表示法”。當(dāng)給變量a賦值12.0時(shí),通常為下面的形式:a=12.0; 即賦值運(yùn)算符“=”位于中間。 AutoLISP則采用,即把運(yùn)算符放在參數(shù)表的第一個(gè)元素的位置,后面為其參數(shù)。 例如,通常用到的表達(dá)式X=(A+B)C在AutoLISP中表示為:(setq X (* (+ A B) C)規(guī)則4:運(yùn)算順序“由內(nèi)而外、由左而右”。 在AutoLISP表達(dá)式中,函數(shù)參數(shù)表對表達(dá)式的執(zhí)行過程是從最內(nèi)層表開始逐

10、步到最外層表,每個(gè)表達(dá)式都會返回一個(gè)值,該值可以被變量或外層表達(dá)式引用。如果沒被引用,返回值會顯示在AutoCAD的命令窗口。(setq x (* h (+ a (* r (cos A)) x=h(a+rcosA)條件and 循環(huán)指令條件函數(shù) (if) 根據(jù)條件計(jì)算表達(dá)式。如果不為nil, 計(jì)算,并返回計(jì)算結(jié)果;否則計(jì)算 ,返回計(jì)算結(jié)果。(cond ( ) ( ) (T ) 從上往下判斷,一旦發(fā)現(xiàn)條件滿足,計(jì)算與 該條件對應(yīng)的表達(dá)式并返回計(jì)算結(jié)果,不再 繼續(xù)判斷條件。 循環(huán)函數(shù) (while ) 如果成立,執(zhí)行各, 執(zhí)行后再判斷是否成立。如果成立, 繼續(xù)執(zhí)行各,如此循環(huán)反復(fù),直 到條件不成立,

11、并返回最后得到的計(jì)算結(jié) 果。 (repeat ) 重復(fù)計(jì)算,計(jì)算次數(shù)由 確定,返回最后的計(jì)算結(jié)果。 賦值函數(shù)賦值函數(shù)是AutoLISP程序中最常用的函數(shù)之一。較為常用的賦值函數(shù)是setq,其使用格式為:(setq 符號2 表達(dá)式2) 功能:依次將各表達(dá)式的值賦給對應(yīng)的符號。 例(setq x 30 y 20 r 50) List五 對話框編程函數(shù): 1,對話框打開和關(guān)閉函數(shù)done_dialog一. 功能 終止一個(gè)對話框。二. 格式 (done_dialog status)三. 說明 你必須從一個(gè)動作表達(dá)式或一個(gè)回調(diào)函數(shù)中調(diào)用done_dialog函數(shù)(參見action_tile函數(shù)的介紹)。

12、 如果你指定了任選變元status它必須是一個(gè)正整數(shù)(2-32767之間)這個(gè)正整數(shù)將由Start_dialog函數(shù)返回而代替拾取OK按鈕返回1或拾取Cancel按鈕返回0。任何大于1的Status值的具體含義取決于你所編制的應(yīng)用程序。 Done_dialog函數(shù)返回一個(gè)2D點(diǎn)表該點(diǎn)表示當(dāng)你退出對話框時(shí)該對話框的位置坐標(biāo)(XY)。該返回點(diǎn)取自對話框上的哪一個(gè)點(diǎn)作為參考點(diǎn)是由平臺決定的參考點(diǎn)的坐標(biāo)單位同樣也是由平臺決定的。通常情況下參考點(diǎn)是對話框的左上角。你可以將這個(gè)點(diǎn)傳給隨后調(diào)用的new_dialog函數(shù)在重新打開對話框時(shí)將對話框定位在用戶指定的位置上。 如果你為關(guān)鍵字accept或cnace

13、l的(通常OK和Cancel按鈕)提供了一個(gè)回調(diào)函數(shù)那么該回調(diào)函數(shù)必須顯示地調(diào)用done_dialog函數(shù)如果不這樣做用戶就會被困在這個(gè)對話框中。如果你不為這些按鈕提供一個(gè)顯式地回調(diào)函數(shù)而使用標(biāo)準(zhǔn)的退出按鈕AutoCAD將自動處理它們。此外為accept按鈕提供的一個(gè)顯式的回調(diào)函數(shù)必須使其在調(diào)用done_dialog時(shí)將變元status指定為1(或由應(yīng)用程序定義的其它值);否則Start_dialog函數(shù)會返回隱含值0而0意味著用戶取消了該對話框。四. 實(shí)例 一個(gè)對話框通常均具有OK和Cancel按鈕。用戶選中這兩個(gè)按鈕的話均需調(diào)用done_dialog對話框。確定(OK)和取消(Cancel

14、)按鈕的回調(diào)函數(shù)通??梢杂脙煞N方法之一進(jìn)行編制下面給出代碼實(shí)例: 第一種形式: (action_tile accept (set-varabls)(done_dialog 1) (action_tile cancel done_dialog 0) 第二種形式: (action_tile accept done_dialog 1) (action_tile cancel done_dialog 0) (setq result (start_dialog) (if(=1 result) (set-variables) ) 上述代碼中的set-variables函數(shù)的功能是在退出對話框之前將需要保存

15、的局部變量值存儲在全局變量中。 load_dialog一. 功能 裝入一個(gè)DCL文件至內(nèi)存。 二. 格式(load_dialog dclfile)三.說明dclfile變元是指定要裝入的DCL文件的一個(gè)字符串。如果dclfile變元中沒有指定文件的擴(kuò)展名,則假定它的擴(kuò)展名是.dcl。如果本函數(shù)調(diào)用成功,它返回一個(gè)正整數(shù)值(假設(shè)存入變量dcl-id中);如果它不能打開指定的文件,它就返回一個(gè)負(fù)整數(shù)。四.實(shí)例 (if ( (setq index_value (load_dialog sample.dcl) 0) (progn (.) (.) (.) ) (prompt Unable to open

16、 dialog box) ) new_dialog一. 功能 開始一個(gè)新的對話框,并顯示該對話框,還能指定一個(gè)隱含動作。 二. 格式 (new_dialog dlgname dcl_id action screen_pt)三. 說明digname變元是指定對話框的一個(gè)字符串,而dcl_id變元用來識別一個(gè)對話框(它是在調(diào)用load_dialog函數(shù)時(shí)獲得的,相當(dāng)于一個(gè)對話框的名柄)。如果new_dialog調(diào)用成功,它返回T;否則,它返回nil。在您的應(yīng)用程序中,在調(diào)用Start_dialog函數(shù)之前,必須先調(diào)用new_dialog。所有對話框的初始化工作,如:設(shè)置控件值、生成圖像、生成列表框

17、的表以及將各個(gè)動作與特定的控件聯(lián)系起來(用action_tile函數(shù)完成)等等,都必須發(fā)生在調(diào)用new_dialog函數(shù)之后,同時(shí)也必須發(fā)生在調(diào)用Start_dialog函數(shù)之前。在應(yīng)用程序中應(yīng)該總是檢查由new_dialog函數(shù)返回的狀態(tài)。當(dāng)new_dialog函數(shù)調(diào)用失敗時(shí),調(diào)用Start_dialog函數(shù)將有可能導(dǎo)致無法預(yù)料的后果產(chǎn)生。 start_dialog一. 功能 顯示一個(gè)對話框,并開始接受用戶的輸入。 二. 格式 (start_dialog)三. 說明 在調(diào)用本函數(shù)之前,你必須通過調(diào)用new_dialog函數(shù),首先將對話框進(jìn)行初始化。對話框一直保持激活狀態(tài),直到一個(gè)動作表達(dá)式或

18、回調(diào)函數(shù)調(diào)用done_dialog函數(shù)。通常,done_dialog函數(shù)與關(guān)鍵字accept的那個(gè)控件相聯(lián)系(典型情況下是OK按鈕),也可以與關(guān)鍵字為cancel的那個(gè)控件相聯(lián)系(典型情況下是Cancel按鈕)。 調(diào)用start_dialog函數(shù)不帶變元。它返回一個(gè)傳遞給done_dialog函數(shù)的狀態(tài)代碼。如果用戶按下了OK按鈕,start_dialog函數(shù)返回隱含值1,如果用戶按下了Cancel按鈕,Start_dialog函數(shù)返回值0,而如果所有對話框被term_dialog函數(shù)中止,那么Start_dialog函數(shù)就返回-1,但是,如果done_dialog函數(shù)傳遞了一個(gè)大于1的整型狀

19、態(tài)代碼,Start_dialog函數(shù)就會將這個(gè)值返回,它的含義由應(yīng)用程序決定。 unload_dialog一. 功能 卸裝一個(gè)DCL文件。 二. 格式 (unload_dialog dcl_id)三. 說明 unload_dialog函數(shù)總是返加nil。2 控件和屬性處理函數(shù) action_tile一. 功能 為某一控件指定一個(gè)動作表達(dá)式。當(dāng)用戶在對話本框中選擇了這個(gè)控件時(shí),就會對這個(gè)動作表達(dá)式進(jìn)行求值。二. 格式 (action_tile key action_expression)三. 說明 變元key和action_expression都是字符串。變元key是觸發(fā)一個(gè)動作的控件名(這個(gè)控

20、件名是由該控件的key屬性指定的)。key變元是大小寫敏感的。當(dāng)該控件被選中時(shí),就會對action_expression(動作表達(dá)式)進(jìn)行求值。四. 實(shí)例 下面給出一個(gè)action_tile函數(shù)的應(yīng)用實(shí)例。(defun example_funciton() ;processing code. . . . ) (action_tile example_key (example_function) mode_tile一. 功能 設(shè)置一個(gè)對話框控件的狀態(tài)。 二. 格式 (mode_tile key mode)三. 說明key變元是指定某個(gè)控件的一個(gè)字符串(即關(guān)鍵字字符串),它對大小寫是敏感的。mod

21、e變元是一個(gè)整型數(shù)。mode變元的取值及其含義列出在下表中。mode變元的取值及含義mode的取值含義0 使該控件成為啟用態(tài)_ 1 使該控件成為禁用態(tài) _ 2 聚焦于該控件 _ 3 選擇編輯框的內(nèi)容 _ 4 圖像高亮度顯示的觸發(fā)開關(guān) _ set_tile 一. 功能 為一個(gè)對話框控件設(shè)置值。 二. 格式 (set_tile key value)三. 說明 key變元是指定控件的一個(gè)字符串,而value則是指定新值的一個(gè)字符串變量名(控件的初始值是由value屬性設(shè)置的。 set_tile函數(shù)設(shè)置和修改控件值的效果,它與控件的類型有關(guān)。四. 實(shí)例 下面的程序代碼改變關(guān)鍵字為Text_tile_k

22、ey的文本控件的值,當(dāng)文本控件的值被修改之后,顯示在該控件上的文字也做相應(yīng)的改變。 (setq new_text Look for change) ;初始化一個(gè)字符串變量 (setq_tile Text_tile_key new_text) ;賦新值3,圖象控件處理函數(shù) 3.1 dimx_tile和dimy_tile一. 功能 以對話框單位返回一個(gè)控件的尺寸。二. 格式 (dimx_tile key) (dimy_tile key)三. 說明 dimx_tile函數(shù)返回控件的寬度,而dimy_tile函數(shù)返回控件的高度。在這兩個(gè)函數(shù)中,變元key都是指定控件的一個(gè)字符串。key這變元是大小寫敏

23、感的。 四. 實(shí)例 例1.在指定的控件image_key即關(guān)鍵字上,繪制幻燈片庫SLIB中名為test.sld的幻燈片。 (start_image image_key) (setq max_x (dimx_tile image _key) (setq max_y (dimy_tile image_key) (fill_image 0 0 max_x max_y SLIB(test) (end_image) 例2.在指定的控件image_key(即關(guān)鍵字)上,繪制兩個(gè)黃色的向量(顏色碼為2), 構(gòu)成形狀為X的圖案。 (start_image image_key) (setq max_X (dim

24、x_tile image_tile) (setq max_Y (dimx_tile image_tile) ; ; ; 從左上角至右下角繪制一矢量 (vector_image 0 0 max_x max_y 2) ; ; ; 從右上角至左下角繪制一矢量 (vector_image max_x 0 0 max_y 2) (end_image)3.2 end_image一. 功能 約束現(xiàn)行激活對話框圖像的生成。二格式 (end_image)三說明 本函數(shù)是Start_image函數(shù)的配套函數(shù)。它關(guān)閉由Start_image函數(shù)所打開的圖像控件。在Start_image函數(shù)調(diào)用之后一定要調(diào)用end_

25、image函數(shù)。四實(shí)例 下面這緞代碼在關(guān)鍵字為Image_key的控件上繪制一個(gè)藍(lán)色的矩形。 (start_image image_key) (start max_x (dimx_tile image_key) (start max_y (dimy_tile image_key) (file_image 0 0 max_x max_y 5) (end_image) )3.3. fill_image一. 功能 在現(xiàn)行激活框的圖像控件上劃一個(gè)填充矩形。二. 格式 (fill_image x1 y1 wid hgt color)三. 說明 fill_image函數(shù)必須用在start_image和en

26、d_image兩個(gè)函數(shù)調(diào)用之間。Color參數(shù)可以是AutoCAD的一個(gè)顏色代碼也可以是取自下表中的一個(gè)邏輯顏色代碼之一。 顏色屬性所用的符號的名稱表 _顏色代碼 ADI助記符 說明_-2 BGLCOLOR AutoCAD圖形屏幕的現(xiàn)行背景 _-15 DBGLCOLOR 現(xiàn)行對話框背景顏色-16 DFGCOLOR 現(xiàn)行對話框前景顏色(文本)_-18 LINELCOLOR 現(xiàn)行對話框線的顏色_ (x1,y1)坐標(biāo)指定填充矩形第一個(gè)角(左上角)的位置。該填充矩形的第二個(gè)角(右下角)由(wid,hgt)指定它是相對于第一個(gè)角第一個(gè)相對距離其值必須為正數(shù)。源點(diǎn)(0,0)是該圖像的左上角。通過調(diào)用控件尺

27、寸函數(shù)dimX_tile和dimY_tile您可以獲得圖像控件右下角的坐標(biāo)。四. 實(shí)例 下面的程序代碼在關(guān)鍵字為image-key的圖像控件上繪制一個(gè)紅色的矩形。 (star_image image_key) (setq max-x (dimx_tile image-key) (setq max-y (dimy_tile image-key) (fill-image 0 0 max-x max-y 1) (end_image)3.4. slide_image 一. 功能 在現(xiàn)行激活對話框圖象控件上顯示一個(gè)autocad的幻燈片。 二. 格式 (slide_image x1 y1 wid hgt

28、 sldname)三. 說明 幻燈即可以是一個(gè).sld類型的幻燈文件,也可以是幻燈庫文件(.slb)中的一個(gè)幻燈,sld_name用于指定要顯示的幻燈片名,可以用如下兩種格式之一指定。sldname或libname(sldname) 幻燈的第一個(gè)角(左上角),也就是它的插入點(diǎn)。其坐標(biāo)是(x1,y1),而它的第二個(gè)角(右下角)是離第一個(gè)角的相對距離(wid,hgt),wid和hgt必須是正值。原點(diǎn)(0.0)是圖像的左上角。通過調(diào)尺寸函數(shù)dimx_tile和dimy_tile,您可以獲得右下角的坐標(biāo)值?;脽艟拖窭L有圖形的膠片一樣好用,用戶可以將多個(gè)幻燈片疊加起來構(gòu)成一幅復(fù)雜的圖像。在圖像控件顯示幻

29、燈時(shí)要注意兩點(diǎn)。第一,幻燈片上的圖像有可能是在與先前控件底色相同的其它背影色相同,該矢量就顯示不出來,從而造成丟失。第二,要考慮到時(shí)間因素,由于顯示幻燈片需要裝入和繪制時(shí)間,所以要盡量使用簡單的幻燈。四.實(shí)例下面的程序代碼在關(guān)鍵字為my_key的圖像控件上繪制幻燈片庫MYLIB中的XYZ幻燈。 (start_image my_key) (setq hax_x (demx_tile my_key) (setq max_y (dimy_tile my_key) (slid_image 0 0 max_x max_y MYLIB(XYZ)3.5. start_image一. 功能 開始對話框控件中一

30、個(gè)圖像的生成。 二. 格式 (start_image key)三. 說明 在調(diào)用這個(gè)函數(shù)之后,就可以調(diào)用fill_image、slide_image和vector_image等函數(shù)對圖像控件進(jìn)行各種處理了,直到應(yīng)用程序調(diào)用end_image函數(shù)才會結(jié)束對指定的圖像控件的處理。key變元是指定對話框控件的一個(gè)字符串。key變元是大小寫敏感的。239. vector_image一. 功能 在現(xiàn)行激活對話框的圖像控件上畫一條矢量。 二. 格式 (vector_image x1 y1 x2 y2 color)三. 說明 本函數(shù)在現(xiàn)行激活的圖像近控件(該圖像控件由Start_image函數(shù)所打開)上,從

31、(x1,y1)到(x2,y2)畫一條矢量。變元color指定畫些矢量時(shí)所使用的顏色代碼,也可以是由下表中給出的邏輯顏色代碼之一。 顏色屬性的符號名表_顏色代碼 ADI助記符 所代表的意義_ -2 BGLCOLOR AutoCAD圖形屏幕的現(xiàn)行背景顏色_ -15 DBGCOLOR 現(xiàn)行對話框背景顏色_ -16 DFGLCOLOR 現(xiàn)行對話框前景顏色(也就是文字的顏色)_ -18 LINELCOLOR 現(xiàn)行對話框線條顏色_ 圖像控件的原點(diǎn)(0,0)位于該圖像的左上角,通過調(diào)用尺寸函數(shù)(dimx_tile和dimy_tile),您可以獲得圖像控件的右下角坐標(biāo)。四. 實(shí)例 下面的程序?qū)嵗痉读巳绾卧陉P(guān)

32、鍵字為image_key的圖像控件上繪制一個(gè)紅色的矩形。 (start_image image_key) (setq max_x (dimx_tile image_key) (setq max_y (dimy_tile image_key) (vector_image 0 0 0 max-y 1) (vector_image 0 max-y max-x max-y 1) (vector_image max-x may-y max-x 0 1) (vector_image max-x 0 0 0 1) (end_image)注意事項(xiàng):每個(gè)人的對話框及驅(qū)動程序避免雷同如何簡單對話框的驅(qū)動 myca

33、l.lsp e:autolisp studywlycal.dcl如何進(jìn)行嵌套對話框的驅(qū)動Example2.lsp e:autolisp studyexample2.dcl如何保證下拉列表框與列表框互動Example3.lsp e:autolisp studyexample3.dcl如何進(jìn)行圖像控件的驅(qū)動1 制作幻燈片 autocad繪圖環(huán)境里:先繪圖,再調(diào)用mslide命令存儲為后綴為.sld的文件即可。2 圖像控件的初始化(如裝載幻燈片) Example4.lsp e:autolisp studyexample4.dcl-(Example4.lsp本例程只包含裝載幻燈片)3 圖像按鈕的使用(

34、動作表達(dá)式) Example5.lsp e:autolisp studyexample5.dcl4 圖像按鈕的使用(二級子對話框 用戶輸入) qian_imgbutt_draw e:autolisp study qiantao_main.dcl綜合實(shí)例 screw.LSP e:autolisp study screwdcl.dcl要求:圖像控件與列表框互動 對話框嵌套選擇螺釘種類(保持圖像按鈕與列表框互動)選擇插入點(diǎn)(方法1:編輯框輸入 法2:鼠標(biāo)拾?。┚庉嬁蚍从呈髽?biāo)拾取坐標(biāo)值螺釘大徑和長度(法1:列表框選取 法2:自定義尺寸)這兩種方法互鎖(利用控件設(shè)置函數(shù))選擇角度(方法1:編輯框輸入 法

35、2:鼠標(biāo)拾?。┚庉嬁蚍从呈髽?biāo)拾取角度值設(shè)置線的顏色(利用圖像按鈕)繪圖(本例只是示范畫圓)AutoLISP數(shù)據(jù)類型1.整型數(shù)2.實(shí)型數(shù) 3.字符串 4.符號(或變量) 5.表6.文件描述符 1.AutoCAD選擇集 8.AutoCAD圖元名 9.VLA對象 字符串 字符串是由一對雙引號(”)括起來的字符序列。通常又把構(gòu)成字符串的雙引號對稱為字符串界定符。AutoLISP對字符串有如下約定: 字符串中,同一字母的大小寫認(rèn)為是不同 的字體,空格也是一個(gè)有意義的字符。 字符串的長度指位于雙引號之間的字符個(gè) 數(shù)(不包括雙引號對)。 如果在字符串的定界符之間無任何字符,稱其為空串,它的長度為零。字符串中

36、可以包含ASCII碼中任一字符,通用的表示形式為“nnn”,其中nnn為八進(jìn)制形式的ASCII碼。例如“101102103”表示”ABC”,二者的作用完全相同。 由于反斜杠“”已作為字符串中的前導(dǎo)轉(zhuǎn)義符,因而當(dāng)字符串中要使用反斜線時(shí),必須加轉(zhuǎn)義符,即用雙反斜線“”表示字符串中一個(gè)反斜線“”。表 AutoLISP的表指包含在一對相匹配的左、右圓括號之間的相關(guān)數(shù)據(jù)的集合。表中的每一項(xiàng)稱為表的元素,這些元素可以是整型數(shù)、實(shí)型數(shù)、字符串、符號,也可以是另一個(gè)表,且各元素間要用空格隔開。表提供了保存各種數(shù)據(jù)的有效方法。AutoLISP基本函數(shù)1. 計(jì)算函數(shù) (+ ) 返回所有的和。其中, 可以是整型數(shù),

37、也可以是實(shí)型數(shù)。 (- ) 返回第一個(gè)與后面所有數(shù)的差。 (* ) 返回所有的乘積。(/ )返回除以后的商。 (1+ ) 返回加1后的值。 (注意:1與+號之間不能有空格)(1- ) 返回減1后的值。 (注意:1與-號之間不能有空格) (abs ) 返回的絕對值。 (sin ) 返回的正弦值,單位 為弧度。 (cos ) 返回的余弦值,單位 為弧度。 (atan ) 如果沒有,返回的反正切, 單位為弧度,范圍從。如果有 , 返回/后的反正切。如果 為零,返回。(max )返回中的最大值。(min )返回中的最小值。 (exp ) 返回e的次冪的值。 (expt )返回的次方的值。 (log )

38、 是exp函數(shù)的反函數(shù)。返回值為的自 然對數(shù)值,其數(shù)據(jù)類型為實(shí)型數(shù)。 2. 關(guān)系運(yùn)算函數(shù)= ) 如果所有在數(shù)值上相等,返 回T,否則返回nil。 (/= ) 如果所有在數(shù)值上均不相等, 返回T,否則返回nil。 ( ) 第一個(gè)小于后面的原子,返回 T,否則返回nil。 ( ) 第一個(gè)大于后面的原子,返回 T,否則返回nil。 (= ) 第一個(gè)大于或等于第二個(gè)原 子,返回T,否則返回nil。 (= ) 第一個(gè)小于或等于第二個(gè)原子, 返回T,否則返回nil。 3. 邏輯運(yùn)算函數(shù) (and ) 返回所有的與邏輯: 只要有一個(gè)的結(jié)果 為nil,返回nil,否則返回T (or ) 返回所有的或邏輯: 如果所有的結(jié)果為 nil,返回nil (not ) 返回的非邏輯:如果 的結(jié)果為nil,返回T, 否則返回ni

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論