給autolisp腳本創建按鈕
① 在autocad裡面我編寫了很多lisp命令,我想新增一個菜單工具欄(如:文件(F)編輯(E)utj...
編輯一個菜單文件,後綴名為mnu的文件,文件格式如下:
/
// 實用工具擴展程序
// 開發者:
// 2007年11月
//
***MENUGROUP=實用工具
***POP12
**實用工具
[實用工具(&D)]
[--]
ID_dm [->地畝工具(&L)]
ID_TEST_A [多義線方向修改]^C^C_DRev
ID_TEST_B [多義線標注折點號]^C^C_BZ
ID_TEST_C [多義線折點號坐標輸出]^C^C_CXY
***HELPSTRINGS
ID_TEST_A [可以修改多義線起終點的前進方向:DREV]
ID_TEST_B [沿多義線方向標注折點號:BZ]
然後在CAD裡面用menuload命令載入這個菜單文件就行了,具體的還是自己多試幾次就明白了
② CAD AUTOLISP 當中 (action_tile "accept" (done_dialog 1))
action_title (done_dialog 0) 外面要加上雙引號。
③ 在cad中如何創建lisp程序以及大神們所說的lisp解決重復性勞動問題是怎麼回事
CAD支持AutoLisp程序設計語言, AutoLisp代碼可以在任意的文本編輯器中創建.不過AutoCAD也提供了Visual Lisp編輯器,可以支持語法高亮,調試編譯什麼的.打開Visual
Lisp編輯器有兩種方式:
1.
AutoCAD2008及之前的版本,在菜單欄「工具(Tools)"下面,選擇」AutoLisp"---->"Visual
Lisp編輯器".(」AutoLisp"---->"導入應用"這個命令是用來載入AutoLisp腳本的.
2.
AutoCAD2009及之後的版本, 在功能區的」管理「選項卡里可以直接打開Visual Lisp編輯器。
首先,AutoLisp也是一個程序設計語言,作為一個編程語言,AutoLisp能做的很多:
擴充AutoCAD的原有命令。任何帶有C:前綴的AutoLisp函數,在AutoCAD中都可以像"line"
"circle" "dim"等命令一樣使用。編寫代碼直接根據國標圖庫要求來繪出一些常用圖庫標准件什麼的,或是代替人查找各種設計手冊中的相關數據並繼續使用。
進行參數化繪圖,對於一些不特別復雜的系統,提供窄范圍、大深度的專業設計自動化或者輔助系統,如發動機裝配工具設計、縱使機主軸箱設計等。
以上這些功能都可以解決重復性勞動,前提是你得先學會AutoLisp編程語言.
④ autolisp怎麼往CAD里添加自定義菜單項和按鈕
方法:
工具--自定義--界面,然後添加自定義菜單項和按鈕或對現有的菜單項進行修改加工組合,最後達到自己使用方便滿意的菜單。
⑤ 如何在AutoCAD Visual Lisp編輯器中創建與編譯lisp程序
打開Visual Lisp編輯器有兩種方式:
1.AutoCAD2008及之前的版本,在菜單欄「工具(Tools)"下面,選擇」AutoLisp"---->"Visual
Lisp編輯器"。(」AutoLisp"---->"導入應用"這個命令是用來載入AutoLisp腳本的)
2.AutoCAD2009及之後的版本,在功能區的」管理「選項卡里可以直接打開Visual Lisp編輯器。
如何在AutoCAD Visual Lisp編輯器中創建與編譯lisp程序
打開Visual Lisp編輯器之後新建一個文件,並另存為Lisp源文件。然後就可以在編輯窗口裡輸你的代碼了。
代碼編輯並調試確認無錯誤後,就可以在AutoCAD中使用了。
如何在AutoCAD Visual Lisp編輯器中創建與編譯lisp程序
左邊的按鈕表示立即運行當前代碼,如果有錯誤就會提示出來,右邊按鈕是切換到CAD窗口。
如果不需要再修改代碼了還可以將代碼進行編譯以加速運行。
如何在AutoCAD Visual Lisp編輯器中創建與編譯lisp程序
根據向導一步步進行編譯很簡單的。
如果在其他CAD圖形文件中需使用當前代碼文件或編譯後的文件,就按上面第一點的,或者在命令行輸入」ap",打開導入應用的對話框。
如何在AutoCAD Visual Lisp編輯器中創建與編譯lisp程序
1是用來臨時導入的,2是將程序加入CAD的啟動組。
lisp解決重復性勞動問題
在設計和繪圖中,你覺得都是簡單粗暴的重復性工作,就可以考慮用AutoLisp來代替你做。
首先,AutoLisp也是一個程序設計語言,屬於Common
Lisp的子集,同時加入了很多自定義的函數。即然是一個程序語言,就是其他編程語言能做的,它也能做,只是他的lisp語法跟一般的語言有些差另就是了,但是如果是一個沒有VB、C#、C++(對應於AutoCAD的開發方式分別是VBA,.net,ObjectArx)的基礎的人來說,AutoLisp是很簡單而且特別容易上手的一個語言。
作為一個編程語言,AutoLisp能做的很多:
1、擴充AutoCAD的原有命令。任何帶有C:前綴的AutoLisp函數,在AutoCAD中都可以像"line" "circle"
"dim"等命令一樣使用。
2、編寫代碼直接根據國標圖庫要求來繪出一些常用圖庫標准件什麼的,或是代替人查找各種設計手冊中的相關數據並繼續使用。
3、進行參數化繪圖,對於一些不特別復雜的系統,提供窄范圍、大深度的專業設計自動化或者輔助系統,如發動機裝配工具設計、縱使機主軸箱設計等。
4、DWG文件本質上是AutoCAD在圖形生成和編輯中使用的資料庫,可以將一些非圖形信息的數據(粗糙度,高度,厚度。。)等存於DWG文件中作
為非圖形資料庫文件,然後利用Lisp程序進行讀取等。
各種AutoCAD二次開發方式的比較:
由於 .net語言和c++的學習曲線比較陡峭,所以簡單易學的AutoLisp經常與VBA進行對比。(當然如果有VB的基礎還是直接學VBA好了。)
AutoLISP擅長建立新命令和產生已有命令的連接。VBA擅長執行包括在其他應用程序中的組件,如Microsoft的Excel和Access。AutoLISP是基於表處理的編程體系,它允許程序員隨意地存儲和操作傳送信息,然而VBA部件包括數據和對復雜情況的各種有效操作,這就是問題變得復雜的地方。
不過,在AutoCAD2000開始,Autodesk公司就在AutoCAD中加入了Visual
Lisp編輯器,引入了許多新函數擴充AutoLisp的功能,並支持ActiveX對象的訪問方式,所以使用AutoLisp來與Word\Excel等程序進行交互也是變簡單了。
另外,在創建帶GUI圖形界面的應用程序上,VBA當然是所見即所得的了,而AutoLisp是通過DCL文件來實現GUI的(語法很簡單,但做不到所見即所得).這點是AutoLisp略遜一籌了。原文出自[
CAD自學網 ] 轉載請保留原文鏈接:http://www.cadzxw.com/1873.html
⑥ 怎麼用autolisp寫一個插入塊的程序,插入後這個塊的比例隨標注比例變化,謝謝!!
和CAD一樣 可以 自定義的
CAD快捷鍵一覽
創建三維陣列 3A
創建三維面 3F
在三維空間創建由直線段組成的多段線 3P
在二維和三維空間中將某對象與其他對象對齊 AL
載入 AutoLISP、ADS 和 ARX 應用程序 AP
創建圓弧 A
計算對象或定義區域的面積和周長 AA
創建按指定方式排列的多重對象拷貝 AR
執行外部資料庫命令的管理功能 AAD
輸出選擇對象的鏈接信息 AEX
管理對象和外部資料庫之間的鏈接 ALI
顯示並編輯表數據並創建鏈接和選擇集 ARO
從鏈接到文字選擇集和圖形選擇集的行中創建選擇集 ASE
執行結構查詢語言 (SQL) 語句 ASQ
創建屬性定義 -AT
改變不依賴於塊定義的屬性信息 -ATE
用圖案填充封閉區域 H或BH
根據選定對象創建塊定義 -B
用對話框定義塊 B
用封閉區域創建面域或多段線 BO
(使用命令行)用封閉區域創建面域或多段線 -BO
部分刪除對象或把對象分解為兩部分 BR
給對象加倒角 CHA
修改現有對象的特性 -CH
根據圓心和直徑或半徑繪制圓 C
復制對象 CO或CP
創建屬性定義 AT
編輯單個塊的可變屬性 ATE
修改對象的顏色、圖層、線型和厚度 CH
設置新對象的顏色 COL
編輯文字和屬性定義 ED
顯示夾點並設置顏色 GR
創建並修改標注樣式 D
插入塊或另一圖形 I
控制現有對象的特性 MO
修改對象名稱 REN
設置繪圖輔助工具 RM
設置對象選擇模式 SE
管理已定義的用戶坐標系 UC
選擇預置用戶坐標系 UCP
控制坐標和角度的顯示格式及精度 UN
創建和恢復視圖 V
設置三維觀察方向 VP
創建對齊線性標注 DAL或DIMALI
創建角度標注 DAN或DIMANG
從前一個或選擇的標注的第一尺寸界線處連續標注 DBA或DIMBASE
創建圓和圓弧的圓心標記或中心線 DCE
從前一個或選擇的標注的第二尺寸界線處連續標注 DCO或DIMCONT
創建圓和圓弧的直徑標注 DDI或 DIMDIA
編輯標注 DED或DIMED
創建線性尺寸標注 DLI或DIMLIN
創建坐標點標注 DOR或DIMORD
替換標注系統變數 DOV或DIMOVER
創建圓和圓弧的半徑尺寸標注 DRA或DIMRAD
在命令行創建和修改標注樣式 DST或DIMSTY
移動和旋轉標注文字 DIMTED
測量兩點之間的距離和角度 DI
將點對象或塊沿對象的長度或周長等間隔排列 DIV
繪制填充的圓和環 DO
修改圖像和其他對象的顯示順序 DR
打開鳥瞰視圖窗口 AV
輸入文字時在屏幕上顯示 DT
定義平行投影或透視視圖 DV
創建橢圓或橢圓弧 EL
從圖形刪除對象 E
將組合對象分解為對象組件 X
以其他文件格式保存對象 EXP
延伸對象到另一對象 EX
通過拉伸現有二維對象來創建三維實體 EXT
給對象加圓角 F
創建根據特性選擇有關對象時用到的過濾器列表 FI
創建對象的命名選擇集 G
使用命令行創建選擇集 -G
用圖案填充一塊指定邊界的區域 -H
修改現有的圖案填充對象 HE
重生成三維模型時不顯示隱藏線 HI
以多種格式向 AutoCAD 圖形文件中插入圖像 IM
使用命令行插入圖像 -IM
控制選定圖像的亮度、對比度和褪色度 IAD
向當前圖形中定義並附著新的圖像對象 IAT
為單個圖像對象創建新剪切邊界 ICL
向 AutoCAD 輸入3DS/DXF/EPS /SAT/WMF等文件 IMP
將命名塊或圖形插入到當前圖形中 -I
插入鏈接或嵌入對象 IO
找出兩個或多個三維實體的干涉區並用公用部分創建三維組合實體 INF
從兩個或多個實體或面域的交集創建組合實體或面域 IN
管理圖層 LA
在命令行上執行 LAYER 命令 -LA
創建一條引出線將注釋與一個幾何特徵相連 LE或LEAD
拉長對象 L
創建、載入和設置線型 LT
使用命令行創建、載入和設置線型 -LT
顯示選定對象的資料庫信息 LI或LS
設置線型比例因子 LTS
把某一對象的特性復制到其他若干對象 MA
將點對象或塊按指定的間距放置 ME
創建對象的鏡像副本 MI
創建多線 ML
在指定方向上按指定距離移動對象 M
從圖紙空間切換到模型空間視口 MS
創建多行文字 T或MT
使用命令行創建多行文字 -T
創建浮動視口和打開現有的浮動視口 MV
創建對象的等距線,如同心圓、平行線和平行曲線 O
設置運行對象捕捉模式並修改靶框大小 OS
使用命令行設置運行對象捕捉模式並修改靶框大小 -OS
移動顯示在當前視口的圖形 P
使用命令行移動視口 -P
插入剪貼板數據並控制數據格式 PA
編輯多段線和三維多邊形網格 PE
創建二維多段線 PL
將圖形列印到繪圖儀、列印機或文件 PLOT
創建點對象 PO
創建用多段線表示的正多邊形 POL
自定義 AutoCAD 系統參數的設置 PR
顯示列印圖形的效果 PRE
從模型空間視口切換到圖紙空間 PS
刪除資料庫中未用的命名對象,例如塊或圖層 PU
退出 AutoCAD EXIT
繪制矩形多段線 REC
刷新顯示當前視口 R
刷新顯示所有視口 RA
重生成圖形並刷新顯示當前視口 RE
重新生成圖形並刷新所有視口 REA
從選擇的一組現有對象中創建面域對象 REG
修改對象名 -REN
創建三維線框或實體模型的具有真實感的渲染圖像 RR
沿軸旋轉二維對象以創建實體 REV
繞基點旋轉對象 RO
設置渲染系統配置 RPR
在 X、Y 和 Z 方向等比例放大或縮小對象 SC
從腳本文件執行一系列命令 SCR
用剖切平面和實體截交創建面域 SEC
列出系統變數並修改變數值 SET
顯示當前視口圖形的著色圖像 SHA
用平面剖切一組實體 SL
規定游標按指定的間距移動 SN
創建二維填充多邊形 SO
檢查圖形中文字的拼寫 SP
創建二次或三次樣條曲線 SPL
編輯樣條曲線對象 SPE
移動或拉伸對象 S
創建命名樣式 ST
用差集創建組合面域或實體 SU
校準、配置、打開和關閉已安裝的數字化儀 TA
設置當前三維實體的厚度 TH
控制對圖紙空間的訪問以及控制視口的行為 TI
創建形位公差標注 TOL
顯示、隱藏和自定義工具欄 TO
創建圓環形實體 TOR
用其他對象定義的剪切邊修剪對象 TR
通過並運算創建組合面域或實體 UNI
設置坐標和角度的顯示格式和精度 -UN
保存和恢復已命名的視圖 -V
設置圖形的三維直觀圖的查看方向 -VP
將塊對象寫入新圖形文件 W
創建三維實體使其傾斜面尖端沿 X 軸正向 WE
將一個外部參照附加到當前圖形中 XA
將外部參照依賴符號綁定到圖形 XB
使用命令行執行XBINDW命令 -XB
定義外部參照或塊剪裁邊界,並且設置前剪裁面和後剪裁面 XC
創建無限長的直線,稱為參照線 XL
控制圖形中的外部參照 XR
使用命令行執行XREF命令 -XR
放大或縮小當前視口對象的外觀尺寸 Z
⑦ 如何使用AutoLISP語言常式
AutoLISP語言是AutoCAD的內置的編程語言。 它可以用來創建新的命令或重新定義現有的。AutoLISP語言是一個非常強大的定製工具。本文旨在說明如何載入AutoLISP語言。
你可以復制和粘貼,如下面的例子,或者你可以下載一個*.LSP的文件。開始你需要使用記事本, 因為AutoLISP *.LSP的文件只是普通的文本文件。看其他人的編寫的AutoLISP語言代碼是一個很好的學習方法,網上有很多提供.LSP的文件下載的。
基本過程是非常簡單,如下。 有3個主要步驟(或如果有*.LSP的文件僅僅需要2步),創建lisp文件,載入lisp文件和日常運行lisp程序。
註:AutoLISP語言常式將只在完整版本的AutoCAD運行,他們不會在AutoCADLT版本運行。
創建lisp文件
復製程序代碼並粘貼到Windows中的記事本。
(defunc:zone(/ss la rv i tv op en)
(while(notss)
(princ" Pick any object on the required layer: ")
(setqss(ssget)))
(initget"Length Area")
(setqrv(getkword" Would you like to measure Length/Area <Area>: "))
(and(notrv)
(setqrv"Area"))
(setqla(cdr(assoc8(entget(ssnamess0))))
ss(ssget"X"(list(cons0"*POLYLINE")
(cons8la)))
i(sslengthss)
tv0
op0)
(while(not(minusp(setqi(1-i))))
(setqen(ssnamess i))
(command"_.AREA""_E"en)
(cond((=rv"Length")
(setqtv(+tv(getvar"PERIMETER"))))
(T
(setqtv(+tv(getvar"AREA")))
(if(/=(logand(cdr(assoc70(entgeten)))1)1)
(setqop(1+op))))))
(princ(strcat" Total "rv
" for layer "la
" = "(rtostv22)
" in "(itoa(sslengthss))" polylines "
(if(/=rv"Length")
(strcat(itoaop)" with open polylines")"")))
(prin1))
現在保存文件為zone.lsp,給予它適當的文件名,並確保它有一個.LSP的文件擴展名。
載入lisp文件
打開AutoCAD選擇菜單Tools——AutoLISP——Load Application….彈出對話框(如下圖所示):
load unload apps
使用下面的操作來載入已保存lisp文件:
找到該lisp文件已保存的文件夾。
從列表中選擇所需的文件。
單擊 Load按鈕。如果一切順利,將出現一條消息說「*.lsp成功載入」。
單擊Close按鈕關閉對話方塊。
運行AutoLISP程序
一旦lisp文件被載入,它可以在命令行運行。在運行時只需輸入命令的名稱(而不是文件名)。在lisp文件中開始是(defunc:zone ,所以在命令行輸入zone。
⑧ 如何在CAD中自定義用戶界面
自定義用戶界面
使用本程序時,可使用多種功能區面板、菜單、工具欄、快捷鍵和其他用戶界面元素,來有效地完成任務。通過自定義這些元素還可以改善工作環境。本節內容
「自定義用戶界面」概述使用AutoCAD 的自定義工具,可以調整圖形環境使其滿足用戶的需求。 使用自定義文件自定義 (CUI) 文件用於存儲命令、用戶界面元素以及局部 CUI 文件和 AutoLISP 文件的參照。可以將 CUI 文件指定為主 CUI 文件、局部 CUI 文件或企業 CUI 文件。CUI 文件指定可以確定載入文件的順序。可以在 CUI 文件之間傳輸用戶界面元素,這使得移植過程更加輕松。自定義命令用戶可以輕松地創建、編輯和重復使用命令。「自定義用戶界面」(CUI) 編輯器中的「自定義」選項卡將顯示產品中已載入命令的主列表。可以將此列表中的任何命令添加到工具欄、菜單和其他用戶界面元素。 創建宏宏用於定義選擇某個界面元素後將發生的動作。宏可以完成用戶需要執行一系列操作才能完成的繪圖任務。宏可以包含命令、特殊字元、DIESEL(直接解釋求值字元串表達式語言)或 AutoLISP 編程代碼。 自定義「快捷特性」對於選定對象,用戶可以使用「快捷特性」面板訪問「特性」選項板中可訪問的特性的子集。自定義滑鼠懸停工具提示滑鼠懸停工具提示顯示選定特性的當前值。自定義工具欄工具欄自定義可以僅僅是在繪圖區域中放置工具欄或調整工具欄大小,以便獲得最佳繪圖效率或最大空間。用戶還可以創建和修改工具欄和彈出型工具欄、添加命令和控制項元素,以及重新定位和刪除工具欄按鈕。自定義快速訪問工具欄快速訪問工具欄位於菜單瀏覽器的右側,可讓用戶直接訪問已定義的命令集。創建下拉菜單和快捷菜單下拉菜單顯示為菜單欄下的列表或菜單瀏覽器的一部分。在圖形窗口、文本窗口、命令窗口、工具欄區域或功能區中單擊滑鼠右鍵時,在十字游標或游標位置或該位置附近將會顯示快捷菜單(也稱為關聯菜單)。自定義功能區面板和選項卡用戶可以通過創建和修改功能區面板並使用功能區選項卡將功能區面板組織到基於任務的工具組中來自定義功能區。添加快捷鍵和臨時替代鍵用戶可以為常用命令指定快捷鍵(有時稱為加速鍵),還可以指定臨時替代鍵,以便通過按鍵來執行命令或更改設置。 創建雙擊動作當游標放到圖形中的對象上並從定點設備中產生雙擊時,雙擊動作用於使命令變為可編輯狀態。雙擊動作區分對象類型,使用戶可以設置要用於特定對象類型的特定命令。 自定義滑鼠按鈕用戶可以更改定點設備在程序中的標准行為方式。 自定義傳統界面元素術語「傳統項」是指當前版本的程序中不常使用但仍支持的那些用戶界面元素,因為有些用戶喜歡使用這些元素,而不喜歡現在提供的替代用戶界面元素。 載入AutoLISP 文件AutoLISP(LSP 或 MNL)文件包含用於將自定義動作和行為添加到界面的腳本。可以使用「自定義用戶界面」(CUI) 編輯器的「自定義」選項卡將 AutoLISP 文件載入到 CUI 文件中。 自定義工作空間用戶可以自定義工作空間以創建圖形環境,在該環境中僅顯示用戶選定的快速訪問工具欄、工具欄、菜單、功能區選項卡和選項板上的那些命令。 自定義用戶界面 FAQFAQ 將幫助用戶找到有關使用「自定義用戶界面」(CUI) 編輯器的最普遍問題的答案。
返回CAD技術文章專題列表>>>
⑨ 簡述autolisp使用的七種數據類型
第一篇關於LISP的參考文獻是由JohnMcCarthy在1960年4月的《ACM通訊》中發表的。
除了FORTRAN和COBOL,大多數在六十年代早期開發出來的語言都過時了,可是LISP卻生存下來,並且已經成為人工智慧(AI)的首選程序序言。AutoLISP解釋程序位於AutoCAD軟體包中,然而AutoCADR2.17及更低版本中並不包含AutoLISP解釋程序,這樣,只有通過AutoCADR2.18及更高版本才可以使用AutoLISP語言。
開發軟體編輯
AutoCAD軟體包中包含大多數用於產生圖形的命令,但仍有某些命令未被提供。例如,AutoCAD中沒有在圖形文本對象內繪制矩形及作全局改變的命令。通過AutoLISP,你可以使用AutoLISP程序語言編制能夠在圖形文本對象內繪制矩形或作全局選擇性改變的程序。事實上,可以用AutoLISP編制任何程序,或把它嵌入到菜單中,這樣定製你的系統會取得更高的效率。
現在,已經有數以百計的第三方軟體開發人員使用AutoLISP語言編制各種應用程序軟體包,例如,本文作者開發了一個名為SMLayout的軟體包,用它可以產生各種復雜幾何圖形的平面布局圖,這些幾何圖形包括管道的交叉部、過渡都、圓柱、彎管接頭、圓錐以及罐頂。目前社會上非常需要AutoLISP程序員為應用軟體及客戶菜單的開發提供顧問。
在本章中,我們假定讀者已經熟悉了AutoCAD命令及AutoCAD的系統變數。但是,在開始學習AutoLISP時,卻並不需要你是一位AutoCAD或編程專家。同時,本章還假定讀者並無編程方面的知識。如果你熟悉任何一種編程語言,那麼學習AutoLISP就會很容易。對各種函數的評細探討以及對例題的逐步講解會使你學起來很有興趣。本章討論常用的AutoLISP函數以及它們S程序編制中的應用。對於本章中未涉及的函數,請參閱Autodesk公司的《AutoLISP程序員參考手冊》。AutoLISP對硬體沒有任何特殊要求。如果系統能夠運行AutoCAD,那麼同樣也可以運行AutoLISP。AutoLISP程序可以使用任何文本編輯器進行編制。
數學運算編輯
任何編程語言都提供數學函數。在AutoLISP中,同樣提供了編程以及數學計算所需的大部分數學函數,你可以使用AutoLISP對數字進行加、減、乘、除運算,還可以得到以弧度表示的角度的正弦值、餘弦值及反正切值等。使用AutoLISP還可以進行許多其他計算。這一節主要討論AutoLISP程序語言支持的常用數學函數。
加法
格式(+num1num2num3...)
此函數(+)計算加號(+)右邊所有數字的和(+num1num2num3...)。這些數字可以是整數或實數。如果均為整數,則和為整數;如果均為實數,則和為實數。但是如果既有整數又有實數,則和為實數。如下所示,在前兩個例子中,所有數字均為整數,所以結果是整數。在第三個例子中,一個是實數(50.0),故結果為實數。
示例:
Command:(+25)返回7
Command:(+230450)返回86
Command:(+230450.0)返回86.0
減法
格式(-num1num2num3...)
此函數(-)從第一個數中減去第二個數(num1-num2)。如果多於兩個數,就用第一個數字減去其後所有數字的和[num1-(num2+num3...)]。在下面的第一個例子中,28減去14後返回14。因為兩個數均為整數,結果亦為整數。在第三個例子中20與10.0相加,並用50減去兩數的和(30.0),返回一個實數20.0。
示例:
Command:(-2814)返回14
Command:(-25711)返回7
Command:(-502010.0)返回20.0
Command:(-2030)返回-10
Command:(-20.030.0)返回-10.0
乘法
格式(*num1num2num3…)
此函數(*)計算乘號右邊所有數字的乘積(num1×num2×num3...)。若均為整數,它們的乘積亦為整數;若其中含有一個實數,乘積即為實數。
示例:
Command:(*25)返回10
Command:(*253)返回30
Command:(*2532.0)返回150.0
Command:(*2-5.5)返回-11.0
Command:(*2.0-5.5-2)返回22.0
除法
格式(/num1num2num3…)
此函數(/)用第一個數除以第二個數。如果多於兩個數,就用第一個數除以其後所有數的乘積[num1/(num2×num3×...)]。在下面的第四個例子中,用200除以5.0與4的乘積[200/(5.0×4)]。
示例:
Command:(/30)返回30
Command:(/32)返回1
Command:(/3.02)返回1.5
Command:(/200.05.04)返回10.0
Command:(/200-5)返回-40
Command:(/-200-5.0)返回40.0
增量數字編輯
格式(1+number)
此函數(l+)使數字與1(整數)相加,返回一個增加1的數。在下面的第二個例子中,1與-10.5相加返回-9.5。
示例:
(1+20)返回21
(1+-10.5)返回-9.5
減量數字編輯
格式(1-number)
此函數(1-)從數字中減去1(整數),並返回一個減去1的數。在下面的第二個例子中-10.5減去1返回-11.5。
示例:
(1-10)返回9
(1--10.5)返回-11.5
絕對數字編輯
格式(absnum)
abs函數返回一個數的絕對值。該數可以是整數或者實數。在下面的第二個例子中,由於-20的絕對值為20,故函數返回20。
(abs20)返回20
(abs-20)返回20
(abs-20.5)返回20.5
三角函數編輯
sin函數
格式(sinangle)
sin函數計算一個角(以弧度表示)的正弦值。在下面的第二個例子中,sin函數計算Pi(180度)的正弦值並返回0。
示例:
Command:(sin0)返回0.0
Command:(sinPi)返回0.0
Command:(sin1.0472)返回0.866027
cos函數
格式(cosangle)
cos函數計算一個角(以弧度表示)的餘弦值。在下面的第三個例子中,cos函數計算Pi(180度)的餘弦值並返回-1.0。
示例:
Command:(cos0)返回l.0
Command:(cos0.0)返回1.0
Command:(cosPi)返回-1.0
Command:(cos1.0)返回0.540302
atan函數
格式(atannum1)
atan函數計算數的反正切值,返回角度以弧度表示。下面的第二個atan函數計算1.0的反正切值並返回0.785398(弧度)。
示例:
Command:(atan0.5)返回0.463648
Command:(atan1.0)返回0.785398
Command:(atan-1.0)返回-0.785398
兩個參數的atan函數
格式(atannum1num2)
還可以在atan函數中再指定一個數。若指定了第二個數,函數將以弧度形式返回(num1/num2)的反正切值。在下面的第一個例子中,第一個數(0.5)除以第二個數(1.0),atan函數計算商(0.5/1=0.5)的反正切值。
示例:
Command:(atan0.51.0)返回0.463648弧度
Command:(atan203.0)返回0.588003弧度
Command:(atan2.0-3.0)返回2.55359弧度
Command:(atan-2.03.00)返回-0.5880033弧度
Command:(atan-2.0-3.0)返回-2.55359弧度
Command:(atan1.00.0)返回1.5708弧度
Command:(atan-0.50.0)返回-1.5708弧度
angtos函數
格式(angtosangle[made[precision]])
angtos函數以字元串格式返回以弧度表示的角度值。字元串格式由made和precision的設置決定。
示例:
Command:(angtos0.58800304)返回「33.6901"
Command:(angtos2.5535904)返回「145.3099"
Command:(angtos1.570804)返回「90.0000"
Command:(angtos-1.570802)返回「270.00"
注意在(angtosangle[mode[precision]])中:
angle是以弧度表示的角度值。
mode是與AutoCAD系統變數AUNITS相對應的angtos模式。
AutoCAD中可用模式如下:
ANGTOS模式編輯格式
0十進制角度
1度/分/秒
2梯度
3弧度
4測量單位
precision是一個整數,用於控制小數的位數,與AutoCAD系統變數AUPREC相對應。其最小值為0,最大值為4。
在上面的第一個例子中,angle為0.588003弧度,mode為0(十進制角度),precision為4(小數點後有四位)。函數返回33.6901。
表達式編輯
在程序中,通常都需要測試某些特定的條件。若條件為真,程序執行某些功能,若不為真,執行另外一些功能。例如,條件表達式(if(<X5)),若變數x的值小於5,測試結果為真。編程過程中經常要用到這種類型的測試條件。本節討論在AutoLISP編程中要用到的各種關系表達式。
等於
格式(=atom1atom2…)
該函數(=)檢查兩個元素是否相等。若相等,條件為真,函數返回T。同樣,若指定的元素不相等,條件為假,函數返回nil。
示例:
(=55)返回T
(=549)返回nil
(=5.55.55.5)返回T
(="yes"「yes」)返回T
(=「yes""yes"「no」)返回nil
不等於
格式(/=atom1atom2…)
該函數(/=)檢查兩個元素是否不相等。若不相等,條件為真,函數返回T。同樣,若指定的元素相等,條件為假,函數返回nil。
示例:
(/=504)返回T
(/=5050)返回nil
(/=50-50)返回T
(/=「yes」「no」)返回T
小於
格式(<atom1atom2…)
該函數(<)檢查第一個元素(atoml)是否小於第H個元素(atomZ)。若為真,函數返回T,否則返回nil。
示例:
(<35)返回T
(<534)返回nil
(<「x」「y」)返回T
小於等於
格式(<=atom1atom2...)
該函數(<=)檢查第一個元素(atom1)是否小於等於第二個元素(atom2),若是,函數返回T,否則返回nil。
示例:
(<=1015)返回T
(<=「c」「b」)返回nil
(<=2.00)返回T
大於
格式(>atom1atom2…)
該函數(>)檢查第一個元素(atom1)是否大於第二個元素(atom2)。若是,函數返回T,否則返回nil。在下面第一個例子中,15大於10,因此,關系表達式為真,且函數返回T。在第二個例子中,10大於9,但9並不大於其後的9,因此函數返回nil。
示例:
(>1510)返回T
(>1099)返回nil
(>「c」「b」)返回T
大於等於
格式(>=atom1atom2…)
該函數(>=)檢查第一個元素(atom1)的值是否大於等於第二個元素(atom2)。若是,函數返回T,否則返回nil。在下面第一個例子中,78大於但木等於50,因此,函數返回T。
示例:
(>=7850)返回T
(>="x"「y")返回nil
abs返回參數的絕對值
(absnumber)
參數number
返回值參數的絕對值
示例(abs100)返回100
(abs-3)返回3
8.acad_colordlg
顯示標準的AutoCAD顏色選擇對話框
(acad_colordlgcolornum[flag])
參數
colornum
整數,其取值范圍是0-256(包括0和256),它用於指定顏色對話框的預設的顏色代碼。
flag
如可選參數flag設為nil,禁用「隨層」和「隨塊」按鈕;省略flag參數或將其設為非nil值,則可啟用「隨層」和「隨塊」按鈕。
colornum為0時代表BYBLOCK(隨塊),為256時代表BYLAYER(隨層)。
返回值
用戶所選擇的顏色代碼,如果用戶取消該對話框則返回nil。
示例
下列代碼提示用戶選擇一種顏色,如果不選則指定綠色為預設顏色:
(acad_colordlg3)
9.acad-pop-dbmod
恢復DBMOD系統變數的值到最近用acad-push-dbmod保存的值
(acad-pop-dbmod)該函數使用acad-push-dbmod控制DBMOD系統變數。DBMOD系統變數跟蹤圖形的修改狀態和觸發保存圖形請求。
返回值
如果成功時返回T;否則,如果堆棧為空時,返回nil。
10.acad-push-dbmod
儲存DBMOD系統變數的當前值
(acad-push-dbmod)
該函數使用acad-pop-dbmod來控制DBMOD系統變數。用戶可使用該函數來更改圖形而保持DBMOD系統變數不變。DBMOD系統變數跟蹤圖形的修改狀態和觸發保存圖形請求。
該函數在acapp.arx中實現,acapp.arx默認狀態下是載入的。該函數可將DBMOD系統變數的當前值轉到內部堆棧。要使用acad-push-dbmod和acad-pop-dbmod,必須先進行acad-push-dbmod操作,再使用acad-pop-dbmod來恢復DBMOD系統變數的初始狀態。
返回值
總是返回T。
示例
以下例子顯示了怎樣儲存圖形的修改狀態,接著對圖形進行修改,最後恢復初始狀態。
(acad-push-dbmod)(setqnew_line'((0."LINE")(100."AcDbEntity")(8."0")(100."AcDbLine")(101.02.00.0)(112.01.00.0)(2100.00.01.0)))(entmakenew_line);DBMOD被設置標志1(command"_color""2");DBMOD被設置標志4(command"_-vports""_SI");DBMOD被設置標志8(command"_vpoint""0,0,1");DBMOD被設置標志16(acad-pop-dbmod);DBMOD被設置回初始值
嵌入目的編輯
AUTOLISP嵌入AutoCAD的目的使用戶充分利用AutoCAD進行二次開發;實現直接增加、修改AutoCAD的命令,隨意擴大圖形編輯功能,建立圖形庫和資料庫並對當前圖形進行直接訪問和修改,開發CAD軟體包等。
數據類型編輯
符號(SYM)
字元串(STR)
表(LIST)
文件描述符(FILE)
AutoLISP的內部函數(SUBP)
AutoCAD的選擇集(PICKSET)
AutoCAD的實體名(ENAME)
函數分頁表(PAGETB)
典型應用編輯
一、實現參數化繪圖程序設計,包括尺寸驅動程序、滑鼠拖動程序等。到目前為止,大多數參數化程序都是針對二維平面圖形編制的。實際上,立體圖同樣可以實現參數化繪圖,AutoCAD中編制實體的立體圖參數化程序比其三維視圖程序更簡單,而且立體圖生成後,可以很方便地生成三視圖、剖面圖和軸測圖。
二、構成DCL文件創建自己的對話框。驅動利用AutoCAD提供的PDB模塊構成DCL文件創建自己的對話框。
命令特點編輯
可以直接調用AutoCAD中的全部命令;
具備一般高級語言的基本結構和功能;
具有強大的圖形處理功能。
功能編輯
1.AutoLISP語言是在普通的LISP語言基礎上,擴充了許多適用於CAD應用的特殊功能而形成的,一種僅能以解釋方式運行於AutoCAD內部的解釋性程序設計語言。
2.AutoLISP語言中的一切成分都是以函數的形式給出的,它沒有語句概念或其他語法結構。執行AutoLISP程序就是執行一些函數,再調用其他函數。
3.AutoLISP把數據和程序統一表達為表結構,即S-表達式處理,故也可把程序當作數據來處理,也可把數據當作程序來執行。
4.AutoLISP語言中的程序運行過程就是對函數求值過程,是在對函數求值過程中實現函數功能。
5.AutoLISP語言的主要控制結構是採用遞歸方式。遞歸方式的使用,使得程序設計簡單易懂。
主要工具編輯
文本編輯器、格式編排器、語法檢查器、源代碼調試器、檢驗和監視工具、文件編譯器、工程程序系統、上下文相關幫助與自動匹配功能和智能化控制平台。
⑩ autolisp 怎麼新建圖形文件,AUTOCAD中已設定默認模板。
《AutoCAD2002試題匯編》本書題啊考ATA
操作步驟(我都寫菜單命令便找選擇按鈕):
1、文件——新建——acadiso.dwt
2、格式——圖形界限——0,0(車)——120,90(車)
3、格式——圖層——框選擇白色位置——新框選擇紅色——確定——確定
4、文件——保存——彈圖形另存"框——文件類型改AutoCAD板文件(*.dwt)——
候路徑已經變要保存於改考試存檔位置
5、接著寫文件名KSCAD1-1.DWT——保存
6、考試候定要關閉AutoCAD軟體做題
本書100道題都做完遍考試沒問題
