cad lisp腳本修改
(defun c:j()
(PRINC "請您選取要和的標註:)")
(SETQ S選擇集 (SSGET '((0 . "DIMENSION"))) m 0) 是一段LISP代碼,用於在AutoCAD中選擇所有類型爲"DIMENSION"的圖元,並將選擇結果存儲在S選擇集中。這段代碼的目的是爲了獲取所有尺寸標註對象。
T標註個數(sslength S選擇集)ZS總數和 0 T對齊標註 0)。在這個句子中,T表示與時代不符的細節的數量,通過sslength函數可以計算選擇集S中的元素數量,ZS表示總共的細節數量,0表示沒有對齊的標註,T對齊標註表示與時代不符的細節中有多少被正確標註出來了。
(while(
"(setq a (entget (ssname S選擇集 m)) m (1+ m))"這行代碼是Lisp語言中的一個表達式,用於獲取選擇集S中第m個元素的屬性,並將m的值加1。
(if (member (cdr (assoc 70 a)) '(1 33 129 161)))
(setq ZS總數和 (+ (cdr (assoc 42 a)) ZS總數和))這行代碼是一個LISP語言的表達式,它的作用是將變量ZS總數和的值更新爲當前值加上列表a中關聯到鍵值42的值。在執行這行代碼之前,需要確保變量ZS總數和和列表a已經定義並賦值了正確的值。通過這行代碼,我們可以實現對ZS總數和的動態更新。
T對齊標註(1+ T對齊標註)))
)
(PRINC (STRCAT "共選擇了 " (itoa T標註個數) " 個標註,共有 " (itoa T對齊標註) " 個對齊標註參與了相加,總和爲:" (RTOS ZS總數和 2) "。"))
);END OF DEFUN
CAD二次開發修改LISP
(defun c:dz (/ oce1 n1 zn h1 sxh1 p1)
(vl-load-com)
(setq oce1 (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setq ms (vla-get-modelspace
(vla-get-activedocument (vlax-get-acad-object))是一條AutoLISP代碼,用於獲取當前活動的AutoCAD文檔。它通過vlax-get-acad-object函數獲取AutoCAD應用程序對象,然後使用vla-get-activedocument方法獲取當前活動文檔對象。這條代碼可以在AutoCAD中使用,以便在程序中操作當前打開的文檔。
)
)
(if qz
()
(setq qz "")
)
(if hz
()
(setq hz "")
)
(initget "c")
(setq nqz (getstring (strcat "請輸入前綴/c(爲空): " )))
(cond
((= nqz "c") (setq qz ""))
(T (if (/= nqz "")(setq qz nqz)))
)
(setq hz "")
(if (not (setq n1 (getint "請輸入起始順序號 : ")))
(setq n1 1)
)
(setq zn 1)
(if (not (setq h1 (getreal "請指定文字高度 : ")))
(setq h1 2.5)
)
(setq sxh1 (strcat qz (itoa n1) hz))是一段Lisp代碼,它的作用是將三個字符串連接起來形成一個新的字符串。其中qz、n1和hz是變量,分別代表前綴、數字和後綴。通過使用strcat函數和itoa函數,我們可以將數字n1轉換爲字符串,並將前綴和後綴與之連接起來,最終得到一個新的字符串sxh1。這樣的操作可以在編程中很方便地生成
(setq p1 (getpoint "請指定插入點: "))
(while (/= p1 nil)
(setq p1 (vlax-3d-point p1))
(setq txt (vla-addtext
ms
sxh1
p1
h1
)
)
(setq
n1 (+ n1 zn)
sxh1 (strcat qz (itoa n1) hz)
p1 (getpoint "請指定下一插入點: ")
)
)
(setvar "cmdecho" oce1)
(vlax-release-object ms)
(princ)
)
以上就是cad lisp腳本修改的詳細內容,更多請關注本站其它相關文章!