匹配不包括rot的属性
最近,我对图形中的文本元素进行了一些匹配属性的研究,发现在尝试在整个图形中同步文本样式时,matchprop按钮是一个真正的拖拽。当使用matchprop匹配多个文本时,它们都会朝选定文本设置的方向抛出。我想这样做,这样我就可以在不匹配旋转的情况下使用匹配属性。我试图切换设置,但没有用-我希望其他一切都是一样的,除了几何。希望有人能帮忙!! 哇,我从未使用过匹配属性,但我一直认为可以禁用旋转设置。听起来你得自己动手了。您想要匹配哪些属性? 从不使用匹配属性?!我很震惊。我不敢去想没有它我会在哪里。当我只能说我需要它完全像正常的matchprop一样工作时,除了模仿旋转之外,解释我想要它做的一切很可能是非常冗长的。你说的对,设置是可以调整的,但是当我这样做的时候,它不仅会忽略旋转,还会忽略文本样式/大小等。这对我来说绝对没有好处!我打算将其与Lee Mac的“MacAlign”命令结合使用,该命令创建一段与选定对象完全对齐的文本。完成此操作后,能够快速将新创建的文本的样式与现有文本的样式相匹配将是非常棒的。
正确,但与文字,重要的匹配层,颜色,样式,大小,旋转。
一般来说,我只想匹配层,所以所有与匹配属性一起提供的附加组件都是不必要的。
我自己写了LayerPut。
Command: LP
Select object(s) to be changed:
Select objects: Specify opposite corner: 1 found
Select objects:
Select object on destination layer or :
1 object(s) moved to layer "CNTR", the current layer.
我可以肯定地看到它的用途,但遗憾的是,对我来说,款式/尺寸等的匹配非常重要 试试这个,完全没有经过测试:
;;; Match Text/Mtext Style and Height of source Text/Mtext object
;;; Alan J. Thompson, 11.03.09
(defun c:MS (/ *error* #Obj #SS #Style #Size)
;;; error handler
(defun *error* (#Message)
(and *AcadDoc* (vla-endundomark *AcadDoc*))
(and #Message
(not (wcmatch (strcase #Message) "*BREAK*,*CANCEL*,*QUIT*"))
(princ (strcat "\nError: " #Message))
) ;_ and
) ;_ defun
(or *AcadDoc* (setq *AcadDoc* (vla-get-activedocument (vlax-get-acad-object))))
(vla-startundomark *AcadDoc*)
(cond
((and (setq #Obj (car (entsel "\nSelect source text object: ")))
(vl-position (cdr (assoc 0 (entget #Obj))) '("MTEXT" "TEXT"))
(setq #Obj (vlax-ename->vla-object #Obj))
;; (setq #Obj (AT:Entsel nil "\nSelect source text object: " '("V" (0 . "MTEXT,TEXT")) nil))
(setq #SS (ssget "_:L" '((0 . "MTEXT,TEXT"))))
) ;_ and
(setq #Style (vla-get-stylename #Obj)
#Size(vla-get-height #Obj)
) ;_ setq
(vlax-for x (setq #SS (vla-get-activeselectionset *AcadDoc*))
(vl-catch-all-apply 'vla-put-stylename (list x #Style))
(vl-catch-all-apply 'vla-put-height (list x #Size))
) ;_ vlax-for
(vl-catch-all-apply 'vla-delete (list #SS))
)
) ;_ cond
(*error* nil)
(princ)
) ;_ defun
此处更新了更强大的版本:http://www.cadtutor.net/forum/showthread.php?t=41669 看起来很有前途!尽管有什么事情导致了程序出错;
命令:
MS
选择源文本对象:
选择对象:找到1个
选择对象:
; 错误:ActiveX服务器返回错误:未知名称:TextStyle
命令:
命令:
MS
选择源文本对象:
选择对象:找到1个
选择对象:
; 错误:ActiveX服务器返回错误:未知名称:TextStyle
命令:
文本样式?我用的是罗马人,尽管我尝试的任何其他风格都会产生相同的结果。。。 我完全支持在必要时编写自定义程序,但在这种情况下,使用AutoCAD的“属性”对话框和“快速选择”不是同样容易吗?
哎呀,上面固定了。
这是一个有效的论点,尽管比我希望的方法稍微慢一点。尤其是如果我要在一天中的某个地方多次使用它来处理单个文本!我知道,在一些人看来,这可能有点小,但我确实喜欢只需点击一下就可以实现
页:
[1]
2