为什么用格式刷的用途,为什么无法匹配文字的字体和颜色?
格式刷在很多软件里都有,例如WORDEXCEL,CAD中也有格式刷。但CAD中对象的类型比较多样,每种对象的特性各不相同,因此并不是所有特性都能进行匹配。这个大家应该能理解,但很多人不理解的是:同样是文字,为什么用格式刷就字体和颜色都不能匹配呢?我在百度贴吧和知道里已经看到不少人提这个问题了,要想了解这个问题,首先要了解特性匹配能匹配哪些特性,同时要了解文字有哪些特性。
一、特性匹配的基本概念和相关操作
特性匹配从字面上讲很简单,就是将选定对象的特性应用到其他对象
命令matchprop或单击工具栏上的特性匹配按钮,就会出现下面的提示:
选择源对象:选择要复制其特性的对象
选择目标对象或[设置(S)]:输入s或选择一个或多个要复制其特性的对象
1、目标对象
指定要将源对象的特性复制到其上的对象。可以继续选择目标对象或按ENTER键应用特性并结束该命令。
2、设置(S)
输入S,可以打开“特性设置”对话框,从中可以选择要将哪些对象特性复制到目标对象。默认情况下,将选择“特性设置”对话框中的所有对象特性进行复制。选项通常有下面这些:
颜色
将目标对象的颜色更改为源对象的颜色。此选项适用于所有对象。
图层
将目标对象的图层更改为源对象的图层。此选项适用于所有对象。
线型
将目标对象的线型更改为源对象的线型。此选项适用于除属性、图案填充、多行文字、点和视口之外的所有对象。
线型比例
将目标对象的线型比例因子更改为源对象的线型比例因子。此选项适用于除属性、图案填充、多行文字、点和视口之外的所有对象。
线宽
将目标对象的线宽更改为源对象的线宽。此选项适用于所有对象。
厚度
将目标对象的厚度更改为源对象的厚度。此选项仅适用于圆虎属性、圆、直线、点、二维多段线、面域、文字和宽线。
打印样式
将目标对象的打印样式更改为源对象的打印样式。如果正在使用颜色相关打印样式模式(系统变量PSTYLEPOLICY设置为1),此选项将不可用。适用于所有对象(应用抖动边修改器的对象除外)。
标注
除基本的对象特性之外,将目标对象的标注样式更改为源对象的标注样式。此选项仅适用于标注、引线和公差对象。
多段线
除基本的对象特性之外,将目标多段线的宽度和线型生成特性更改为源多段线的宽度和线型生成特性。源多段线的拟合/平滑特性和标高不会传递到目标多段线。如果源多段线具有不同的宽度,则其宽度特性不会传递到目标多段线。
材质
除基本的对象特性之外,将更改应用到对象的材质。如果没有为源对象而是为目标对象指定了材质,则将从目标对象中删除材质。
文字
除基本的对象特性之外,将目标对象的文字样式更改为源对象的文字样式。此选项仅适用于单行文字和多行文字对象。
浩辰CAD专门提供了针对文字的格式刷,不仅可以刷字体、颜色、还可以刷文字的内容。
视口
除对象的基本特性,还更改以下目标图纸空间视口的特性以匹配源视口的相应特性:开/关、显示锁定、标准或自定义比例、着色打英捕捉、栅格以及UCS图标的可见性和位置。
剪裁设置和每个视口的UCS设置,图层的冻结/解冻状态不会传递到目标对象。
阴影显示
除基本的对象特性之外,将更改阴影显示。对象可以投射阴影、接收阴影、投射和接收阴影或者可以忽略阴影。
填充图案
除基本的对象特性之外,将目标对象的图案填充特性更改为源对象的图案填充特性。要与图案填充原点相匹配,请使用HATCH或HATCHEDIT命令中的“继承特性”。此选项仅适用于填充对象。
表格
除基本的对象特性之外,将目标对象的表样式更改为源对象的表样式。此选项仅适用于表格对象。
二、为什么有时文字的字体和颜色无法匹配
进行特性匹配时,只能匹配目标对象和源对象之间的公共特性,例如源对象是文字,目标对象是填充,就只能匹配图层、颜色、线型、线宽这些通用的对象属性。而文字和文字之间显然可以匹配得更多,如文字样式、字体高度等等,但有时在使用格式刷的时候并不如愿,这是为什么呢?要知道原因,首先要对文字的特性有所了解。
首先,文字分单行文字和多行文字,多行文字具有很多单行文字所不具备的特性;其次,多行文字对象可以设置总体的颜色和文字样式,也可以为每行甚至每个文字设置字体、颜色,这些在多行文字编辑器内部设置的特征,是无法匹配的。
我们看一下单行文字和多行文字匹配的例子:
从上图看,上面ddd几个字,完全继承了单行文字的特性,cc两个字母继承了单行文字的高度,但没有继承多行文字的字体和颜色,字母E高度按比例发生了变化,字体和颜色也没变。为什么会这样呢?因为ddd三个字母使用了多行文字对象的文字样式和颜色设置,cc和E几个字母在多行文字编辑器里设置成了其他字体,并修改了颜色和高度。我们可用用LIST命令看一下多行文字的编码:
dddP{fSimHei|b0|i0|c134|p2;C1;ccH0.4831x;E}
从编码可以看出ddd三个字母没有设置特殊格式,而CCE三个字母设置了SimHei(黑体)的字体,到字母E,又设置了一个高度比例(我们在多行文字编辑器里设置的是文字的绝对高度,但实际文字编码记录的是相对整体高度的一个比例值)。
通过上面这个例子应该可以理解为什么有时用格式刷后文字没有按预想的方式变化了,当你发现这种现象时,可以用LIST命令看一下文字的编码,或者直接双击多行文字查看文字的设置。
如果发现多行文字内部单独设置了颜色和字体,又希望用格式刷来改变他的特性怎么办?有两种方法:
一种双击进入多行文字编辑器,选中所有文字,然后右键,在菜单中选择“删除格式”(高版本提供了更多选项,例如文字格式、段落格式等),
第二种就是将多行文字炸开成单行文字(这种方式可以批量处理,但多行文字的一些段落或其他特殊设置就丢失了,而且不方便后续的编辑排版)。
目前还真没找到什么方法可以批量处理类似的文字,如果想后续可以方便使用格式刷来批量修改文字格式,最佳的解决办法就是养成良好的习惯,多行文字内部不要再单独设置特殊的字体和颜色。当然有时图纸是别人画的,你就没法控制了。
除了文字之间特性匹配遇到的问题比较多,其他对象也有类似的问题。例如多段线,有的多段线设置的是全局宽度,有的每段宽度不同,全局宽度是可以匹配到宽度不同的多段线,但宽度不同的多段线的全局宽度为空,如果他作为源对象,匹配时是无法改变其他多段线的全局宽度的。