reynaldomalasag 发表于 2022-7-5 17:24:42

David Bethel,这是你的代码吗?即使属性已经在块上,它也会起作用吗?对不起,我的英语:(

David Bethel 发表于 2022-7-5 17:27:39

简而言之,“不”
 
最初的请求是转换ATTDEF。不是属性。
 
可以这样做,但必须制定某些标准。
 
[列表]
[*]是要分解块还是只剥离属性?
[*]是按原样保留的所有属性,还是与插入匹配
[/列表]
 
相当复杂的操作-大卫

reynaldomalasag 发表于 2022-7-5 17:33:15

 
谢谢你的rply。。先生,你能帮我吗。。我需要一个代码,将属性转换为多行文字的
*块不会分解
*所有要按原样保留的属性。
 
我有一些密码给她。。但他们的错误。。呵呵呵呵

David Bethel 发表于 2022-7-5 17:37:28

对不起,我对多行文字几乎一无所知。我有一些程序可以将正则文本属性转换为正则文本。
 
我担心,如果其中任何一个是多行文字样式的实体,它都会失败或崩溃。希望有人能帮忙。
 
我会在一段时间内发布我的内容-大卫

David Bethel 发表于 2022-7-5 17:40:27

这是相当危险的事情。请备份原始文件
 
要将标准文本属性转换为独立的文本实体并将属性设置为“”:
 

(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]
查看完整版本: 转换属性定义t