(DEFUN C:J()
(PRINC "\n請您選取要和的標註:)")
(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標註個數) " 個標註,\n共有" (itoa T對齊標註) " 個對齊標註參與了相加,總和為:" (RTOS ZS總數和2) "。"))
);END OF DEFUN
(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 "\n請輸入前綴/c(為空): " ))
(cond
((= nqz "c") (setq qz ""))
(T (if (/= nqz "")(setq qz nqz)))
)
(setq hz "")
(if (not (setq n1 (getint "\n請輸入起始順序編號 : ")))
(setq n1 1)
)
(setq zn 1)
(if (not (setq h1 (getreal "\n請指定文字高度 : ")))
(setq h1 2.5)
)
(setq sxh1 (strcat qz (itoa n1) hz))是一段Lisp程式碼,它的作用是將三個字串連接起來形成一個新的字串。其中qz、n1和hz是變量,分別代表前綴、數字和後綴。透過使用strcat函數和itoa函數,我們可以將數字n1轉換為字串,並將前綴和後綴與之連接起來,最終得到一個新的字串sxh1。這樣的操作可以在程式設計中很方便地產生
(setq p1 (getpoint "\n請指定插入點: "))
(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 "\n請指定下一插入點: ")
)
)
(setvar "cmdecho" oce1)
(vlax-release-object ms)
(princ)
)###
以上是cad lisp腳本修改的詳細內容。更多資訊請關注PHP中文網其他相關文章!