最初的请求是转换ATTDEF。不是属性。
可以这样做,但必须制定某些标准。
[列表]
[*]是要分解块还是只剥离属性?
[*]是按原样保留的所有属性,还是与插入匹配
[/列表]
相当复杂的操作-大卫
谢谢你的rply。。先生,你能帮我吗。。我需要一个代码,将属性转换为多行文字的
*块不会分解
*所有要按原样保留的属性。
我有一些密码给她。。但他们的错误。。呵呵呵呵 对不起,我对多行文字几乎一无所知。我有一些程序可以将正则文本属性转换为正则文本。
我担心,如果其中任何一个是多行文字样式的实体,它都会失败或崩溃。希望有人能帮忙。
我会在一段时间内发布我的内容-大卫 这是相当危险的事情。请备份原始文件
要将标准文本属性转换为独立的文本实体并将属性设置为“”:
(defun c:att2txt (/ ss i en an ad av td)
(defun remove (expr lst);;;TonyT or VNesterowski
(apply 'append (subst nil (list expr) (mapcar 'list lst))))
(and (princ "\nSelect ATTRIBute INSERTs")
(setq ss (ssget (list (cons 0 "INSERT")
(cons 66 1)
(cons 70 0)
(cons 71 0))))
(setq i 0)
(while (setq en (ssname ss i))
(setq an (entnext en)
ad (entget an)
av (cdr (assoc 1 ad)))
(while (= "ATTRIB" (cdr (assoc 0 ad)))
(entmod (subst (cons 1 "") (assoc 1 ad) ad))
(setq td ad)
(setq td (remove (assoc2 td) td))
(setq td (remove (assoc 70 td) td))
(setq td (subst(cons 1 av) (assoc 1 td) td))
(setq td (subst(cons 0 "TEXT") (assoc 0 td) td))
(setq td (subst(cons 73 (cdr (assoc 74 td)))
(assoc 74 td) td))
(entmake td)
(setq an (entnext an)
ad (entget an)))
(entupd en)
(setq i (1+ i))))
(command "_.REGENALL")
(prin1))
没有考虑多行文字(因为我对它们一无所知)
块定义没有修改,只有插入数据
祝你好运-大卫
页:
1
[2]