(伙计,我真的需要自学编程技巧):wink: 谢谢大卫,但我不明白为什么我的不行 李,
当尚未定义文字样式时,ATTDEF(和文字)提示会有所不同。这已经存在很长时间了,一直是一种痛苦。
打开新的DWG并浏览提示
打开定义了样式的DWG
有一个额外的文字高度提示-大卫
PS我尽量不使用(命令)来表示文本或ATTDEF。太多了,这会变得很奇怪。
啊,我现在明白了,谢谢。难怪当我在我的机器上测试它时,它工作了,但在其他地方可能没有。
是的,我必须承认,我对文本有过这样的体验,所以我求助于entmake,但我不知道它也适用于ATTDEF。
非常感谢你的提醒
李
文本有空格时不工作
lisp可以用_或任何能够转换为attribute的东西替换空格吗
并添加txt字符串作为默认值 这应该涉及空间:
(defun c:txt2atta (/ ss i en ed)
(vl-load-com)
(while (not ss)
(princ "\nSelect TEXT to Convert to ATTDEF: ")
(setq ss (ssget (list (cons 0 "TEXT")
(cons 410 (getvar "CTAB"))))))
(setq i (sslength ss))
(while (not (minusp (setq i (1- i))))
(setq en (ssname ss i)
ed (entget en)
ed (subst (cons 1
(vl-string-subst "_" " "
(cdr (assoc 1 ed))))
(assoc 1 ed) ed))
(entmake (list (cons 0 "ATTDEF")
(assoc 8 ed)
(assoc 10 ed)
(assoc 11 ed)
(assoc 7 ed)
(assoc 40 ed)
(assoc 41 ed)
(assoc 50 ed)
(assoc 51 ed)
(cons 70 0)
(assoc 71 ed)
(assoc 72 ed)
(cons 74 (cdr (assoc 73 ed)))
(assoc 210 ed)
(assoc 1 ed)
(cons 2 (cdr (assoc 1 ed)))
(cons 3 (cdr (assoc 1 ed)))
(if (assoc 6 ed) (assoc 6 ed)'(6 . "BYLAYER"))
(if (assoc 39 ed) (assoc 39 ed)'(39 . 0))
(if (assoc 62 ed) (assoc 62 ed)'(62 . 256))))
(entdel en))
(redraw)
(prin1))
你真是个好人。
顺便说一下,我编辑了thr线程 以上代码已更新。 李
thanx公司 以上代码处理的是空格而不是空格
该例程可以处理txt
但不能使用txt
页:
1
[2]