edrise 发表于 2020-1-20 09:41:24

将属性定义文字批量转成单行文字出错

本帖最后由 edrise 于 2020-1-20 09:48 编辑

(defun c:aotp(/ cmd ss i ent nr zb zg zk tc ys cl)
      (defun *error* (msg)
                (princ "选择未包含属性定义文字")
                (command ".undo" "e")
    (princ)
                )
      (setq cmd (getvar "cmdecho"))
      (setvar "cmdecho" 0)
      (command ".undo" "be")
      (setq ss (ssget '((0 . "ATTDEF")))
                  i (sslength ss)
      )
      (while (> i 0)
                (setq ent (entget (ssname ss (1- i))));获取每个文字组码
                (setq nr (cdr (assoc 2 ent));获取内容
                      zb (assoc 10 ent);获取坐标
                      zg (assoc 40 ent);获取字高
                      zk (assoc 41 ent);获取字宽
                      tc (assoc 8 ent);获取图层
                      ys (assoc 7 ent);获取样式
                            cl (assoc 62 ent);获取颜色
                        )
          (entmake (list '(0 . "TEXT") (cons 1 nr) zb zg zk tc ys cl))
                (setq i (1- i))
      )
      (command "_.ERASE" "p" "")
      (command ".undo" "e")
      (setvar "cmdecho" cmd)
(princ)
)


以上为源码,加上获取颜色的代码和对应参数后批选就会报错,删除了就不会,不知道是什么原因,求大神解惑!

edrise 发表于 2020-1-20 10:34:07

已找到问题所在,属性定义颜色是bylayer时,组码里没有颜色项

satan421 发表于 2020-1-20 15:25:00

edrise 发表于 2020-1-20 10:34
已找到问题所在,属性定义颜色是bylayer时,组码里没有颜色项

确切的说,应该是颜色项没有对应组码。
页: [1]
查看完整版本: 将属性定义文字批量转成单行文字出错