宏用字段替换文本
有人见过选择MTEXT然后单击将插入SheetSet标题以替换Mtext值的按钮或命令的方法吗?谢谢
**** Hidden Message ***** 我相信您所要做的就是将文本替换为:%
%
所有字段表达式都可以在字段对话框的底部找到。 我不认为宏可以改变多行文字实体的值。
(defun c:TextChange (/ a b)
(vl-load-com)
(while T
(setq a
(car
(nentsel "\nSelect text or mtext entity to change")))
(if (or a
(setq b(entget a))
(= (cdr (assoc 0 b)) "TEXT")
(= (cdr (assoc 2 b)) "MTEXT")
) ; end check
(vla-put-TextString(vlax-ename->vla-object a) "%% ")
(princ "\n Invalid Selection")
); end if
) ; end while
(princ)
); end
又快又脏。 或者,将该文本替换为标题栏、块…中的属性,然后将该属性设为字段…
attsync…并保存/重新保存。所有工作表都应达到所需的结果
我确实尝试了上面的方法,我得到了著名的 (####). 当我双击该字段时,它会在对话框字段类别的左上方显示为(未知)。除此之外,它很棒。 这张纸是一套纸的一部分吗?
如果不是,那么人们应该期待#### 它是图纸集的一部分。我只是尝试了这个命令,保存了文件,关闭了它,然后通过图纸集管理器重新打开了图纸。还有著名的(##。CAD版本不重要,对吗? 只需快速查看一下,但实体检查永远不会在上面的代码中使用OR进行评估:
(or a (setq b (entget a)) (= (cdr (assoc 0 b)) "TEXT") (= (cdr (assoc 2 b)) "MTEXT")) ; end check相反,我会使用:
(wcmatch (cdr (assoc 0 (entget a))) "*TEXT") 感谢您查看。我想我发现了这个问题。在上面的lisp中,它要求完整的“%
%”。但是当我去编辑字段时,它将字段表达式显示为“%
%”,其中没有(\)。 使用:“%
%”
页:
[1]
2