(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中文网其他相关文章!