跳到主要内容
浏览器
导航
工程图纸浏览器

尺寸标注与公差渲染

尺寸标注由尺寸线、尺寸界线、箭头与文字组成,公差在文字上以对称公差、极限偏差、极限尺寸或公差代号等形式呈现。本文说明标注样式参数的作用对象、关联标注的重新测量机制、上下偏差的堆叠排版,以及测量值、比例因子与文字替代之间的关系。

发布于 5 分钟阅读 1851 字

尺寸标注在图纸上承担两类信息:几何量本身,以及该量的允许变动范围。前者由标注的测量结果得到,后者以公差的形式附在文字上。渲染标注时要同时处理这两者,并在图形符号与文字之间维持一致的排版。

标注不是单纯的图形符号,它与被标注的几何之间可能存在关联关系:几何变化时,标注的数值需要随之更新,位置也可能需要重新排布。这一点使标注的解析与渲染比普通实体多出若干状态。

标注的构成

一条线性标注通常由以下要素组成:

  • 尺寸线:表示测量方向的线,两端带终止符号
  • 尺寸界线:从测量起点引出、连接到尺寸线的线
  • 终止符号:位于尺寸线两端,形状由标注样式指定,常见的有箭头与斜线
  • 标注文字:测量值,可能带前后缀、公差与检验框
  • 附加要素:圆心标记、引线、折弯等

这些要素的位置由被测点、文字放置点与样式参数共同决定。当可用空间不足时,尺寸线与文字可能被移到标注外部,并在必要时补画一段引线;若指针跨越尺寸界线,多数实现会按样式指定做翻转处理。

标注样式参数

样式是一组命名参数的集合,解析时需要按作用对象区分它们:

参数类别典型参数作用于
文字文字高度、文字样式、放置方向文字的尺寸与形态
符号终止符号类型与大小、圆心标记大小箭头与标记
间距尺寸界线超出量、起点偏移量、文字与尺寸线间距要素之间的相对位置
单位单位格式、小数位数、前后缀、零的取舍数值的显示形式
公差公差形式、公差精度、上下偏差值公差的显示形式与数值
比例总比例、长度测量比例、角度测量比例换算系数

比例参数的语义容易混淆:总比例作为整体乘数,作用于尺寸线与文字等要素的尺寸;测量比例因子则作用于测量值本身。两者作用对象不同,因此在解析时应当分开放置,避免在换算时互相干扰。

关联标注与手动标注

关联标注保存了指向被测对象的引用,多数以句柄表达。几何变化后,这类标注可以重新测量并刷新数值。手动标注只保存测量点的坐标,几何变化后数值保持不变。多数文件格式允许两种标注并存,因此在解析时需要记录每个标注属于哪一类。

由此可以区分两件不同的事:重新计算关联标注的测量值,以及按当前几何重排标注的排版。前者改变文字中的数值,后者只改变尺寸线与文字的位置。把两者混在一起处理,往往会导致手动标注的数值被意外覆盖。

公差的表现形式

公差在文字上的呈现方式由标注样式指定,常见形式如下:

形式文字示例说明
对称公差20±0.1上下偏差数值相同、符号相反,只写一个数
极限偏差20 +0.05 与 −0.02 分行上下偏差不等,分两行上下堆叠
极限尺寸20.05 与 19.98 分行不写基准值,直接给出上下界限尺寸
基本尺寸加公差代号20 H7以公差带代号表示,偏差数值需由标准表查得

对称公差只需在数值后追加正负号与一个数;极限偏差需要把两行文字堆叠在尺寸线附近,并各自对齐;极限尺寸取消基准值,只显示两个界限值。公差带代号由字母与数字构成:字母位置表示偏差相对基本尺寸所处的位置,数字表示公差等级。代号对应的偏差数值不在图纸中给出,渲染时需要能访问相应的标准数据,否则只能原样显示代号。

公差文字的堆叠排版

上下偏差的堆叠通常按下述规则处理:

  • 两行文字共用一个水平中心,或按小数点对齐,取决于样式的对齐设置
  • 两行之间的行距由文字高度与行距参数决定,一般小于一个文字高度
  • 上偏差空缺时保留占位,使基准值在不同标注之间保持同一高度
  • 某一偏差为零时,多数实现省略其符号,只写一个 0
  • 公差精度独立于基本尺寸的小数位数,两者可以不同
// 由基本尺寸与上下偏差生成堆叠文字所需的字符串
function toleranceLines(base, upper, lower, decimals) {
  const fmt = (v) => v === 0
    ? "0"
    : (v > 0 ? "+" : "−") + Math.abs(v).toFixed(decimals);
  return {
    base: base.toFixed(decimals),
    upper: upper == null ? "" : fmt(upper), // 空串表示该行留空占位
    lower: lower == null ? "" : fmt(lower),
  };
}

排版时还要考虑尺寸线的位置:若文字被放在尺寸线之上,堆叠的两行整体上移;若放在尺寸线之中,尺寸线会在文字处断开。断口宽度需要按堆叠后的文字包围盒计算,而不是按单行文本计算。

测量值、比例因子与换算

标注文字显示的不一定是实测值。样式可以指定文字替代,用固定文本覆盖测量值;也可以对测量值施加测量比例因子,使其对应图纸上按比例缩放的标注长度。因此解析时需要把测量值、比例因子与文字替代三者分开保存:直接读取文字内容无法还原测量值,反之亦然。

标注比例则用于把标注要素的尺寸从模型空间换算到输出尺寸。多数实现的规则是:文字高度、箭头大小与间距等参数在样式中以图纸单位给出,渲染到模型空间时乘以总比例;测量值本身只受测量比例因子影响。这种分离使同一标注可以适配不同的输出比例。对带公差的标注,换算还要考虑小数位数:不足位补零,超出位按指定方式截断或舍入,舍入规则依赖具体实现。

小结

标注渲染包含三条相对独立的链路:几何链路决定尺寸线、尺寸界线与终止符号的位置;数值链路决定测量值、比例换算与单位格式;文字链路决定公差、前后缀与堆叠排版。关联标注在此之上额外维护了指向被测对象的引用,使几何变化后数值能够重新计算。把这三条链路分开处理,才能在图层过滤与图层管理与坐标系变换所述的变换链之下,正确显示公差的两行堆叠以及不同输出比例下的换算结果。

工程图纸浏览器 · 相关文章