求修改程序单选改批量修改
能否改成批量改属性(defun c:tt()(SETQ K1(GETDIST "\n请输入厚度:"))
(SETQ K2(GETDIST "\n请输入长度:"))
(SETQ K3(GETDIST "\n请输入宽度:"))
(setq rev (strcat (rtos k1 2 1) " x "(rtos K2 2 1)" x "(rtos K3 2 1)))
(SETQ ENT (ENTGET (CAR (ENTSEL)))
ENT1 ENT)
(setq SS (Cdr (Assoc -1 ent1)))
(IF (/= "SEQEND" (cdr (assoc 0 ENT)))
(WHILE (= (CDR (ASSOC 0 (SETQ ENT1 (ENTGET (ENTNEXT (CDR (ASSOC -1 ENT1)))))))
"ATTRIB")
(cond
((= (CDR (ASSOC 2 ENT1)) "零件规格")
(SETQ ENT1 (SUBST (CONS 1 REV) (ASSOC 1 ENT1) ENT1))
(ENTMOD ENT1))
)
)
)
(entdel SS)
(entdel SS)
(setvar "cmdecho" 1)
(setvar "osmode" 247)
) 求各位大神帮帮忙,谢谢 基础命令不熟悉 (defun c:tt()
(setq K1(getdist "\n请输入厚度:"))
(setq K2(getdist "\n请输入长度:"))
(setq K3(getdist "\n请输入宽度:"))
(setq rev (cons 1 (strcat (rtos k1 2 1) " x "(rtos K2 2 1)" x "(rtos K3 2 1))))
(princ "\n选择属性块: ")
(if (setq ss (ssget '((0 . "INSERT") (66 . 1))))
(repeat (setq n (sslength ss))
(setq ENT (entget (setq en (ssname (setq n (1- n)))))
ENT1 ENT)
(while (/=(cdr(assoc 0 (setq ENT1 (entget(entnext(cdr(assoc -1 ENT1))))))) "SEQEND")
(if (and (= (cdr (assoc 0 ENT1)) "ATTRIB")
(= (cdr (assoc 2 ENT1)) "零件规格")) (progn
(entmod (subst REV (assoc 1 ENT1) ENT1))
(entupd en)
))
)
)
)
(setvar "cmdecho" 1)
(setvar "osmode" 247)
(princ)
)
ZZXXQQ 发表于 2014-5-28 07:55 static/image/common/back.gif
谢谢ZZXXQQ 的回复,程序还有一点问题显示:; 错误: 参数太少 再顶等好人帮忙谢谢.
页:
[1]