CAD怎麼自己編lisp程式
做了隱藏和顯示兩個指令.
我寫的簡單,功能不太全.你看著用吧
複製下列程式碼,建立acad.lsp.放在在CAD安裝目錄第一層資料夾下,可自動載入啊:
;在命令列輸入該指令hidsel,然後選擇圖元,結果沒選的被改到隱藏層
(defun C:hidsel(/ all;所有圖元
xs;非隱藏圖元
yc;隱藏圖元
n nam dat)
(setvar "CMDECHO" 0);關閉指令回顯
(command "_layer" "n" "暫時隱藏圖層" "")(command "_layer" "off" "暫時隱藏圖層" "")
##(setvar "CMDECHO" 1)(setq all (ssget "x"));選擇所有
(setq xs (ssget));選擇非隱藏圖元
(setq n -1 yc all);運算隱藏圖元#(repeat (sslength xs)
(setq n ( n 1))
(setq nam (ssname xs n));傳回第N個圖元的名稱
(setq yc (ssdel nam yc))
)
(setq N -1);隱藏
(repeat (sslength yc)
(setq N ( n 1))
(setq nam (ssname yc n));傳回第N個圖元的名稱
(setq dat (entget nam));DAT儲存第N個圖元資料
(entmod (subst (cons 8 "暫時隱藏圖層") (Assoc 8 dat) dat));將yc集合隱藏#)
(setq all nil xs nil yc nil n nil nam nil dat nil);清除資料佔用記憶體
(princ)
)
;顯示所有圖元
(defun c:shoal(/ all n nam dat)
(setq all (ssget "x"));選擇所有
(setq N -1);隱藏
(repeat (sslength all)
(setq N ( n 1))
(setq nam (ssname all n));傳回第N個圖元的名稱
(setq dat (entget nam));DAT儲存第N個圖元資料
(entmod (subst (cons 8 "0") (Assoc 8 dat) dat));將yc集合隱藏
)
(setvar "CMDECHO" 0)
(COMMAND "PURGE" "LA" "暫時隱藏圖層" "Y" "Y" "")
(setvar "CMDECHO" 1)
(setq all nil n nil nam nil dat nil);清除資料佔用記憶體
(princ)
)
CAD裡面的lisp有什麼作用啊怎麼用要具體的能讓我明白加分
lisp本身就是cad所屬的開發程序,他提供一些簡單的函數計算,剩下的就全是針對autocad的繪圖功能了。 lisp程式類似與資料庫中的預存過程,可以批量的處理繪製cad圖形。
學習lisp是很簡單的,只要掌握了幾個主要命令的使用就行,就是對語句格式要很研,本身lisp的函數相當多,不必去記。
載入LISP
1. 可以使用APPLOAD指令,然後去找到要載入的LISP文件,載入即可。
2. 可以自己從檔案總管把LISP檔案拖曳到ACAD的圖形窗口,也可以載入
3. 在命令列後使用,(load "c:\\temp\\xxx.lsp")也可以載入,路徑名請輸入實際的路徑。
另:對於一個LSP程序,(defun 後面的既是命令或函數,一般程序應該有提示,若沒有,標誌符c:後面的單字是可以在ACAD下使用的命令,既可以在COMMAND:後面直接輸入,即可執行。
有幾個CAD中的LISP語言怎麼程式設計
AutoLISP語言是在普通的LISP語言基礎上,又擴充了許多適用於CAD應用的功能而形成的一種程式設計語言。它是一種解釋性值語言,速度較慢,難以保密,可用任何文字編輯軟體編輯,以純文字的格式儲存。例如:
(setq i 1);就是程式碼i值是1
(command "CIRCLE" '(0 0) 100);指令在座標原點繪製半徑100的圓。
AutoLISP語言中的一切成分都是以函數形式給出的,它沒有語句概念或其他語法結構。執行AutoLISP程式就是執行一些函數,再呼叫其它函數。例如:
(setq pt1 (getpoint "\n請選擇圓心插入點"))
(command "CIRCLE" pt1 100);指令這個插入點繪製圓,半徑為100
AutoLISP把資料和程序統一表達為表格結構,故可把程式當作資料來處理,也可把資料當作程式來執行。
例如:一條直線,起點座標'(0 0),端點座標'(1000 0),圖層為0層,顏色為1【紅色】這個是一條直線的一些數據,怎麼執行變成程式碼如下:
(entmake (list '(0 . "LINE") '(8 . "0") '(62 . 1) '(10 0 0) '(11 1000 0)))
以上可以直覺的看數據,也可以貼到AutoCAD的命令列,就繪製出以上要的直線。
AutoLISP語言中程式運行過程就是對函數值的過程,是在對函數值的過程中實現函數的功能。在AutoCAD裡面,所有的物件可以看成是由無數的點構成,每個點都有自己的座標,函數的運作就是計算出這些點的數值,根據得到的數值來判斷。
AutoLISP語言的主要控制結構是採用遞歸方式。遞歸方式的使用,使得程式設計簡單易懂。例如:
(setq &k1 (entsel));選擇物件
(setq &k1 (car &k1));提取圖元
############ ###(setq #g1 (entget &k1));取得屬性清單### ###(setq c0 (cdr (assoc 0 #g1)));取得圖元名稱### ###以上是一個個的寫下來,可以寫成以下:### ###(setq c0 (cdr (assoc 0 (entget (car (entsel))))));簡單易懂### ###由於autolisp簡單,容易,所以上手很快。寫程式後,可以大大的提升繪圖效率,有名的【天正】插件,就是繪圖的好幫手。 ### ###autolisp程式也有不足的地方,如提取座標,這個只能在圖元屬性裡面提取,這樣的話會有局限性,法向座標1與-1的座標值相同,但是圖形的位置不同,造成計算座標的困難,所以提取座標值,最好使用VLAX函數來提取。 ###以上是自學編寫CAD的Lisp程序的詳細內容。更多資訊請關注PHP中文網其他相關文章!

您是否想知道如何找到《生化危機4儲蓄》?如何備份《生化危機4節》? PHP.CN的這篇文章為您提供了3種備份《生化危機4節》的方法。現在,繼續閱讀。

如果有人試圖通過輸入大量關鍵組合來訪問計算機,則您的計算機的打開風險更高。因此,很需要限制登錄嘗試的數量。怎麼做?閱讀此php.cn帖子。

cfgmgr32.dll丟失的錯誤通常會惹惱人們很多,並且在窗戶中留下了更嚴重的問題。那麼,當您遇到CFGMGR32.DLL時,您該怎麼辦? PHP.CN網站上的這篇文章將告訴您一些方法。

您是否曾經遇到過Windows鎖定屏幕超時的問題?幸運的是,該帖子可從PHP.CN.提供幾種可行的解決方案。應用這些修復程序,您可以有效地解決這個煩人的問題。

微軟已經發布了Windows 11 23H2(Windows 11 2023更新)。您要在設備上安裝此更新嗎?其中有什麼新功能?如何立即獲取此更新?現在,您可以從此php.cn獲取信息

Windows Defender可以保護您的計算機和設備上的文件免受惡意軟件和病毒的攻擊或感染。但是,有時,由於某種原因,您需要繞過Windows Defender。在PHP.CN網站上的這篇文章中,我們將介紹3 W

在嘗試將文件從移動電話複製或將文件傳輸到計算機時,您可能會得到錯誤的類型錯誤消息。如果您不知道如何解決它,則PHP.CN網站上的這篇文章可以為您提供幫助。

是否要恢復您對Microsoft Excel的更改?在這裡,有關PHP.CN軟件的本文旨在向您展示如何以最有效的方式將Excel重置為Windows 10中的默認設置。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

Dreamweaver Mac版
視覺化網頁開發工具

禪工作室 13.0.1
強大的PHP整合開發環境

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器