AutoCAD 产品设计:文字样式的字高为 0 的逻辑
创始人
2025-07-05 16:50:59
0

文字样式,是一个 描述文字的样式的配置对象。创建文字实体时,需要设置对应的文字样式(通过 id 的方式指定)。

为方便描述,后面会将 “字体样式” 简写为 “字样”。

AutoCAD 默认有一个名为 Standard 的标准文样,它不能被删除,这样保证有个兜底字样可以用。然后我们可以创建新的字样,将某个字样设置为当前。

我们看看文样的设置弹窗。

字样有很多属性,像是文字样式名称、字体(shx 字体)、大字体、是否使用 shx、字高、是否为当前、是否为标准字样、注释性、宽度因子、倾斜角度、颠倒、反向、垂直等等。

属性很多,本文只聚焦 字高(textSize) 这一个属性。另外还有一个让我无语的隐藏属性,后面会说。

当创建的实体涉及到文字,比如多行文字、文字(单行)、标注、引线时,里面的 文字实体会关联特定的字样,使用这个字样的样式,类似 CSS 的样式的逻辑。

字体高度

文字实体的 “文字高度” 其实和字样的 “高度” 重复了,这里就出现了优先级的概念,到底渲染时应该用哪个。

默认情况下,文字的 “文字高度” 的优先级高于字样的 “高度” 。

比如一个文字的字高是 6,使用的字样的字高是 2.5,最后渲染的字体高度就是 6。

字样字高为 0 的特殊情况

离谱的事情是,字样的字高可以为 0,这导致了多种情况。

根据输入的值设置文字高度。输入大于 0.0 的高度将自动为此样式设置文字高度。

如果输入 0.0,则文字高度将默认为上次使用的文高度,或使用存储在图形样板文件中的值。

当我们将字样字高设置为 0 时,原来的值会保存下来,保存在一个 隐藏属性 “原字高”(priorSize)上。

比如,你给字样字高设置为 2.5 保存,然后改成 0,保存。此时字样的 “字高” 是 0,“原字高” 是 2.5。

作为一名程序员,根据我多年的经验,我猜大概是做了新功能,以前的数据结构不合适了,但为了兼容旧版本,只好在原来的基础上去魔改。

这个 0 并不是没有意义的,接下来会说说字样字高为 0 的情况下在不同场景下的表现。

多行文字

创建多行文字,文字会使用一个默认字高,这个值会从 当前字样 中获取。

这个默认的字高,其值为:

  • 如果当前字样字高不为 0,使用字样字高;
  • 如果不为 0,使用字样的 “原字高”。

创建好的多行文字,使用自己的字高作为渲染字高。

文字(单行)

创建文字,也就是单行文字。

  • 如果当前字样字高不为 0,字高不需要额外指定,创建文字命令的第二个阶段 “指定高度” 会直接跳过;
  • 如果是 0,需要指定高度,当然这个高度会用 “原高度” 作为默认值。

创建好的多行文字,使用自己的字高作为渲染字高。

标注样式

创建一个标注,它的 默认字样和字体高度 来自 当前标注样式。

我们线讲讲标注样式。

标注样式里也有个 "文字 > 文字样式", "文字 > 文字高度"。

设定当前标注文字样式的高度。在文本框中输入值。如果在“文字样式”中将文字高度设定为固定值 (即文字样式高度大于 0),则该高度将替代此处设定的文字高度。如果要使用在”文字”选项卡上没定的高度,请确保“文字样式”中的文字高度设定为 0。(DIMTXT 系统变量)

当标注样式的字样字高为非 0 值时,这个值会盖住标注样式的字高输入框,且不可编辑;

如果标注样式的字样字高为 0,那你可以随意编辑文字高度。

标注

标注的话,实际渲染的字高。

  • 如果标注的字样字体不为 0,使用字样高度;
  • 如果标注的字样字体为 0,使用标准自己的字高。

标注虽然也关联标注样式,但是标注里面的字样和字高只会在创建新样式使用。对于一个已经创建好的标注,标注样式的字样和字高并不参与计算。

另外注意标注有缓存,将字样的字高修改后,已经绘制的标注不会立刻改变,你需要操作标注,比如双击标注的文字才会进行重渲染。我不是很懂为什么。

多重引线样式

多重引线样式基本上和标注样式一样,就不说了。

另外多重引线实体虽然形态上和标注很像,但渲染字高逻辑并不同,会使用自己的字高,不使用字样字高。

结尾

字高为 0 这个特例,在不同的实体有不同的表现,希望大家能好好掌握。

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
Intel将Moblin社区控... 本周二,非营利机构Linux基金会宣布,他们将担负起Moblin社区的管理工作,而这之前,Mobli...