lisp CAD 选中指定范围数值的所有文字
请高手帮忙改一下两个都报错“参数太少”,下面的代码,想实lisp CAD 选中指定范围数值的所有文字都是ai自动生成的。
(defun c:SelectTextInRange (/ ss value-min value-max ent text-value)
(setq value-min (getreal "\nEnter the minimum value: "))
(setq value-max (getreal "\nEnter the maximum value: "))
(setq ss (ssget '((0 . "TEXT")))) ; 获取所有 TEXT 对象
(if ss
(progn
(setq ss (ssdel ss)) ; 创建一个新的选择集,因为 ssdel 会修改原始选择集
(repeat (sslength ss)
(setq ent (ssname ss (setq i 0))) ; 从选择集中获取第一个实体
(setq text-value (cdr (assoc 1 (entget ent)))) ; 获取文本实体的值
(setq text-value (atof text-value)) ; 将文本值转换为浮点数
; 如果文本值在指定范围内,则将实体添加到新的选择集中
(if (and (<= value-min text-value) (<= text-value value-max))
(ssadd ss (entget ent))
)
)
(if (not (ssnull ss)) ; 如果选择集中有实体
(progn
(princ "\nSelected texts within range: ")
(princ value-min)
(princ " to ")
(princ value-max)
(princ "\n")
(command "_.select" ss "") ; 选择这些实体
)
(princ "\nNo texts found within the specified range.")
)
)
(princ "\nNo texts found.")
)
(princ)
)
这个lisp CAD 选中指定数值的所有文字
(defun c:Se(/ ss value ent text-value)
(setq value (getreal "\n输入值以选择文本: "))
(setq ss (ssget '((0 . "TEXT")))) ; 获取所有 TEXT 对象
(if ss
(progn
(setq ss (ssdel ss)) ; 创建一个新的选择集,因为 ssdel 会修改原始选择集
(repeat (sslength ss)
(setq ent (ssname ss (setq i 1))) ; 从选择集中获取第一个实体
(setq text-value (cdr (assoc 1 (entget ent)))) ; 获取文本实体的值
(if (= (atof text-value) value) ; 如果文本值等于指定数值
(ssadd ss (entget ent)) ; 将实体添加到新的选择集中
)
)
(if (not (ssnull ss)) ; 如果选择集中有实体
(progn
(princ "\nSelected texts with value: ")
(princ value)
(princ "\n")
(command "_.select" ss "") ; 选择这些实体
)
)
)
)
(princ)
)
(defun c:SelectTextInRange (/ ss value-min value-max ent text-value)
(setq value-min (getreal "\nEnter the minimum value: "))
(setq value-max (getreal "\nEnter the maximum value: "))
(setq ss (ssget '((0 . "TEXT")))) ; 获取所有 TEXT 对象
(setq i 0)
(if ss
(progn
(setq ss0 (ssadd))
(repeat (sslength ss)
(setq ent (ssname ss i)) ; 从选择集中获取第一个实体
(setq text-value (cdr (assoc 1 (entget ent)))) ; 获取文本实体的值
(setq text-value (atof text-value)) ; 将文本值转换为浮点数
; 如果文本值在指定范围内,则将实体添加到新的选择集中
(if (<= value-min text-value value-max)
(ssadd ent ss0)
)
(setq i (1+ i))
)
(if ss0 ; 如果选择集中有实体
(progn
(princ "\nSelected texts within range: ")
(princ value-min)
(princ " to ")
(princ value-max)
(princ "\n")
(sssetfirst nil ss0) ; 选择这些实体
)
(princ "\nNo texts found within the specified range.")
)
)
(princ "\nNo texts found.")
)
(princ)
) (defun c:Se(/ ss value ent text-value)
(setq value (getreal "\n输入值以选择文本: "))
(setq ss (ssget '((0 . "TEXT")))) ; 获取所有 TEXT 对象
(setq i 0)
(if ss
(progn
(setq ss0 (ssadd)) ; 创建一个新的选择集,因为 ssdel 会修改原始选择集
(repeat (sslength ss)
(setq ent (ssname ss i)) ; 从选择集中获取第一个实体
(setq text-value (cdr (assoc 1 (entget ent)))) ; 获取文本实体的值
(if (equal (atof text-value) value 1e-5) ; 如果文本值等于指定数值
(ssadd ent ss0) ; 将实体添加到新的选择集中
)
(setq i (1+ i))
)
(if ss0 ; 如果选择集中有实体
(progn
(princ "\nSelected texts with value: ")
(princ value)
(princ "\n")
(sssetfirst nil ss0) ; 选择这些实体
)
)
)
)
(princ)
) 请教下你们用AI写代码用什么软件写的呀 很是好奇 飞雪神光 发表于 2024-4-12 20:57
太棒了,谢谢你! 本帖最后由 359321852 于 2024-4-13 13:15 编辑
love1030312 发表于 2024-4-12 21:55
请教下你们用AI写代码用什么软件写的呀 很是好奇
https://chat18.aichatos.xyz/#/chat/1712984900585
页:
[1]