ymcui 发表于 2014-5-27 10:31:01

求修改程序单选改批量修改

能否改成批量改属性(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)
)

ymcui 发表于 2014-5-27 17:25:11

求各位大神帮帮忙,谢谢

429014673 发表于 2014-5-27 23:01:05

基础命令不熟悉

ZZXXQQ 发表于 2014-5-28 07:55:53

(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)
)

ymcui 发表于 2014-5-28 08:10:58

ZZXXQQ 发表于 2014-5-28 07:55 static/image/common/back.gif


谢谢ZZXXQQ 的回复,程序还有一点问题显示:; 错误: 参数太少

ymcui 发表于 2014-5-29 08:30:07

再顶等好人帮忙谢谢.
页: [1]
查看完整版本: 求修改程序单选改批量修改