将属性定义文字批量转成单行文字出错
本帖最后由 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)
)
以上为源码,加上获取颜色的代码和对应参数后批选就会报错,删除了就不会,不知道是什么原因,求大神解惑! 已找到问题所在,属性定义颜色是bylayer时,组码里没有颜色项 edrise 发表于 2020-1-20 10:34
已找到问题所在,属性定义颜色是bylayer时,组码里没有颜色项
确切的说,应该是颜色项没有对应组码。
页:
[1]