首頁 電腦教學 電腦知識 自學編寫CAD的Lisp程序

自學編寫CAD的Lisp程序

Jan 08, 2024 pm 02:02 PM
cadlisp基礎教學doc cad怎麼自己編lisp程序 cad裡面的lisp有什麼作用啊怎麼

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中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何修復蒸汽雲錯誤?嘗試這些方法 如何修復蒸汽雲錯誤?嘗試這些方法 Apr 04, 2025 am 01:51 AM

蒸汽雲錯誤可能是由於許多原因引起的。要順利玩遊戲,您需要採取一些措施來刪除此錯誤,然後才能啟動遊戲。 PHP.CN軟件在這篇文章中介紹了一些最佳方法以及更多有用的信息。

Windows元數據和Internet服務問題:如何解決? Windows元數據和Internet服務問題:如何解決? Apr 02, 2025 pm 03:57 PM

您可能會看到“無法建立與Windows Metadata和Internet Services(WMI)的連接”。事件查看器的錯誤。 PHP.CN的這篇文章介紹瞭如何刪除Windows元數據和Internet服務問題。

如何解決KB5035942更新問題 - 崩潰系統 如何解決KB5035942更新問題 - 崩潰系統 Apr 02, 2025 pm 04:16 PM

KB5035942更新問題 - 用戶通常發生崩潰系統。受到的人們希望找到擺脫困境的出路,例如崩潰系統,安裝或聲音問題。針對這些情況,這篇文章由Php.cn Wil發表

修復 -  OneDrive不在PC上上傳照片 修復 - OneDrive不在PC上上傳照片 Apr 02, 2025 pm 04:04 PM

OneDrive是Microsoft的在線雲存儲服務。有時,您可能會發現OneDrive無法將照片上傳到雲。如果您在同一條船上,請繼續閱讀PHP.CN軟件的帖子,以獲取有效的解決方案!

刪除PC App Store惡意軟件 - 適合您的完整指南! 刪除PC App Store惡意軟件 - 適合您的完整指南! Apr 04, 2025 am 01:41 AM

如果您在計算機上有一個名為PC App Store的程序,並且沒有故意安裝它,則可能會感染惡意軟件。 PHP.CN的這篇文章介紹瞭如何刪除PC App Store惡意軟件。

修復:兄弟:兩個兒子重製的故事不推出/加載 修復:兄弟:兩個兒子重製的故事不推出/加載 Apr 02, 2025 am 02:40 AM

兄弟是:兩個兒子重製的故事沒有發起嗎?遇到兄弟:兩個兒子重製黑屏的故事?在這裡,有關PHP.CN的這篇文章為您提供了測試的解決方案,以幫助您解決此問題。

核心隔離是否被ew_usbccgpfilter.sys阻止?這是修復程序! 核心隔離是否被ew_usbccgpfilter.sys阻止?這是修復程序! Apr 13, 2025 am 12:47 AM

許多Surfacebook用戶報告說,他們符合Windows 11/10上的“由EW_USBCCGPFILTER.SYS阻止的核心隔離”問題。 PHP.CN的這篇文章有助於解決煩人的問題。繼續閱讀。

hacktool:win64/explorerPatcher! mtb-如何刪除? hacktool:win64/explorerPatcher! mtb-如何刪除? Apr 04, 2025 am 01:23 AM

ExplorerPatcher是一種開源可行可執行文件,可讓您自定義Windows 11開始菜單,任務欄,文件資源管理器等。但是,許多用戶會收到有關HackTool的Trojan警告:Win64/ExplorerPatcher! MTB。為什麼會發生

See all articles