更新记录

1.0.0(2026-11-04)

首个版本:标准公差查询(0–500mm × IT1–IT18)、由等级与代号(H/h/JS/js)算上下偏差、配合判定(间隙/过渡/过盈 + 极限尺寸)、尺寸链极值法与概率法(含超差 ppm)、公差分配(等公差/等精度/加权 + 建议等级)、一张链表按链名分组批量校核、瓶颈环提示与 CSV 导出(带 BOM)。UTS→Kotlin 编译通过(index.kt 2072 行与 classes.dex 已生成),177 项回归测试全部通过;真机未执行(adb devices 为空),市场截图为 H5 渲染并标注示例数据。


平台兼容性

uni-app

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
× √ × × √ × √ × ×
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
× × × × × × × × × × × ×

尺寸链计算与公差分配

给机械设计、工艺、品质的人用:图纸上每个尺寸都给好了公差,装到一起却时松时紧 —— 先算一遍尺寸链,再决定卡哪一环。

三件事一次做完:查标准公差、判配合性质、算封闭环并分配公差。

购买前必读

  1. 只支持 Android(minSdkVersion 23,Android 6.0 起)。iOS 与鸿蒙本版本未实现,市场平台声明里已标不支持。
  2. 内置公差表覆盖公称尺寸 0–500mm、等级 IT1–IT18,取自 GB/T 1800.1—2009 的常用数值段。超过 500mm 或 IT01/IT0 不内置,插件会明确返回「超出范围」,不会猜一个值给你。
  3. 只自动算 H / h / JS / js 四种偏差代号。a–g、j–n、p–zc 这些代号的基本偏差没有内置 —— 它们随尺寸段变化且容易抄错,插件宁可让你直接填图样上的上下偏差,也不替你做半张表。填了代号又不支持时,会明确告诉你「请直接填上下偏差」。
  4. 概率法不是万能的。它假设各环尺寸服从正态分布、过程受控、中心不偏移。批量小、工序不稳、单边磨损明显时,极值法才是保守答案。插件两种都给,选哪个是你的工艺判断,不是插件的。
  5. 不做三维公差分析。它算的是一维(线性)尺寸链:增环、减环、封闭环。形位公差(同轴度、垂直度)折算成尺寸公差需要按你的基准体系换算,本插件不替你做这个折算。

解决什么问题

  • 「这套公差装得上吗?」 三个零件各 ±0.1,装起来间隙要求 0.05~0.30 —— 手工加一遍上下偏差,符号错一个结论就反了;
  • 「超差了多少?」 算出来封闭环 ±0.20、要求 ±0.15,是超 0.05 还是超 0.10?极值法说「一定超」,概率法说「大概多少 ppm 超」,两个答案含义完全不同;
  • 「该卡哪个环?」 五个环里总有一个占了一半以上公差,改它最省成本 —— 但手工算完往往看不出来是哪个;
  • 「允许 0.15 怎么分下去?」 等公差对大小件不公平(小件本来能做到 IT6,大件只能 IT10),等精度才符合同一台机床的真实能力。

与同类的边界

你可能已有的 它做什么 本插件做什么
应用商店的公差查询 App(机械公差 1.8 万下载、51机械、公差通,全部免费) 查表:给尺寸和等级,返回公差值;用户评论里明确在要「算公差补偿的计算器」,它们没有 查表只是入口,重点在配合判定、尺寸链封闭环、超差率、公差分配
SolidWorks TolAnalyst / CETOL 6σ / 3DCS($5,000–$40,000/席位/年) 基于三维模型做装配公差仿真,随 CAD 授权 不建模、不联 CAD;一维尺寸链 + 批量校核,装进自己的 App 离线用
Excel 模板(网上大量「尺寸链计算表」) 公式写死,改环数要重做;符号与单位靠人守 按链名分组批量算、自动挑瓶颈环、导出校核单,单位与符号由代码守
本店 szhzy-material-calc 卷材换算 材料有多少米、多重 与材料无关,算的是尺寸与公差
本店 szhzy-process-schedule 工序倒排 什么时候开工 与日期无关,算的是精度够不够

快速上手

import { itQuery, fitCalc, chainCheck, chainAllocate, checkChains } from '@/uni_modules/szhzy-tolerance-chain'

// 1) 查标准公差:φ30 的 IT7
const t = itQuery({ size: 30, grade: 7 })
// → tolUm: 21(μm),range: ">18~30"

// 2) 判配合:φ30 H7/h6
const f = fitCalc({ nominal: 30, holeUpper: 21, holeLower: 0, shaftUpper: 0, shaftLower: -13 })
// → type: "clearance",maxGap: 34,minGap: 0

// 3) 尺寸链:A0 = A1 − A2 − A3
const c = chainCheck({
  method: 'worst',
  target: 300,
  links: [
    { name: 'A1', type: '增', size: 50, upper: 100, lower: -100 },
    { name: 'A2', type: '减', size: 20, upper: 50, lower: -50 },
    { name: 'A3', type: '减', size: 28, upper: 50, lower: -50 }
  ]
})
// → nominal: 2,upperUm: 200,lowerUm: -200,tolUm: 400,within: false

// 4) 允许 300μm 怎么分
const a = chainAllocate({ target: 300, method: 'grade', links: [...] })

// 5) 批量:一张链表按链名分组
const batch = checkChains({ csv: text, method: 'rss', target: 300 })

链表格式

带表头,列名认这些别名:

列 别名 说明
链名 尺寸链 / chain 同一个值的行归为一条链;留空自动编号
环名 名称 / name 报告与 CSV 里用它标识
类型 增减 / type 增/增环/+/1 为增环,减/减环/-/-1 为减环
基本尺寸 尺寸 / size mm
上偏差 ES / es / upper μm,带符号
下偏差 EI / ei / lower μm,带符号
等级 IT / grade 与代号配合时,可代替上下偏差
代号 letter 只支持 H / h / JS / js
权重 难度 / weight 加权分配用,留空按 1

无表头时按 链名,环名,类型,基本尺寸,上偏差,下偏差 的位置读。

链名,环名,类型,基本尺寸,上偏差,下偏差,等级,代号
主轴间隙,A1,增,50,100,-100,,
主轴间隙,A2,减,20,50,-50,,
主轴间隙,A3,减,28,50,-50,,
端盖台阶,B1,增,80,,,IT9,H
端盖台阶,B2,减,60,,,IT8,h

口径与公式(可手算核对)

极值法(最坏情况,任意一件都不该超差):

A0 = Σ增环 − Σ减环
ES0 = ΣES(增) − ΣEI(减)
EI0 = ΣEI(增) − ΣES(减)
T0  = ES0 − EI0 = ΣT(增) + ΣT(减)

上例手算:ES0 = 100 − (−50) − (−50) = 200,EI0 = −100 − 50 − 50 = −200,T0 = 400, 即封闭环 2 ±0.200mm。

概率法(大数互换,各环正态、取 6σ 为公差带):

T0 = k · √(Σ Ti²)          k 默认 1
Δ0 = Σ(ξi · Δi)            ξ=+1 增环、−1 减环,Δi 为中偏差
ES0 = Δ0 + T0/2,EI0 = Δ0 − T0/2
σ0 = T0 / 6

上例手算:T0 = √(200² + 100² + 100²) = 244.9μm,中偏差 0,即 ±0.122mm。 允许 300μm 时余量 300 − 244.9 = 55.1μm;按 σ0 = 40.8、限 ±150 算, 超差约 2 × (1 − Φ(3.67)) ≈ 240ppm(约万分之 2.4)。

配合:Xmax = ES − ei,Xmin = EI − es; Xmin ≥ 0 为间隙配合,Xmax ≤ 0 为过盈配合,跨零为过渡配合;配合公差 Tf = Th + Ts。

等精度分配:公差单位 i = 0.45·∛D + 0.001·D(μm), a = T0 / Σi,各环 Ti = a·i,再按 Ti 反查最接近的 IT 等级。

API

方法 入参 返回
itQuery(options) size, grade tolUm / tolMm / range / unitUm
devByGrade(options) size, grade, letter upperUm / lowerUm / tolUm
fitCalc(options) nominal, holeUpper, holeLower, shaftUpper, shaftLower fit.type / maxGap / minGap / maxInterf / fitTol / 极限尺寸
chainCheck(options) links[], method, k, target chain.*(公称、上下偏差、公差、余量、ppm、瓶颈环)+ warnings[]
chainAllocate(options) links[], method(equal/grade/weighted), target, weights[] rows[](每环公差与建议等级)
checkChains(options) csv 或 path, method, k, target chains[] / warnings[] / skipped[] / text / csv / detailCsv
exportChains(options) 同上 + fileName / dir / bom path / bytes
toleranceDefaults() — 默认方法、输出目录、上限

所有 API 返回统一信封 { ok, code, message, ... },不抛异常。错误码见下。

错误码

code 含义
OUT_OF_RANGE 尺寸超出 0–500mm 或等级不在 IT1–IT18
LETTER_UNSUPPORTED 偏差代号不在 H/h/JS/js 内,请直接填上下偏差
BAD_NOMINAL 公称尺寸 ≤ 0
BAD_DEV 上下偏差缺失,或上偏差小于下偏差
DEV_REVERSED 上偏差小于下偏差
NO_LINK 没有任何可用环
TOO_MANY 单链超过 40 环 / 单次超过 80 条链
BAD_SIZE 某环基本尺寸读不出来
EMPTY / READ_FAILED / FILE_NOT_FOUND 文件读取问题

体检提示(warnings)

kind 触发条件 为什么值得看
ONE_LINK_DOMINATES 某一环公差占封闭环 ≥60% 改它一招见效,改别的都是白费
TOO_TIGHT 某环公差比 IT7 还紧 10 倍 大概率是抄错单位(μm 写成 mm)或工艺做不到
ZERO_TOL 某环公差为 0 不存在零公差尺寸,通常是只填了一个偏差
OUT_OF_RANGE 某环大于 500mm 内置表不覆盖,不能凭它下结论
NO_INCREASE / NO_DECREASE 缺增环或减环 通常是把「类型」列写反了,封闭环符号会整体错
CHAIN_FAILED 某条链算不出来 该链的上下偏差不全

能力边界与已知限制

  • 一维线性尺寸链;角度尺寸链、平面尺寸链不适用。
  • 只算尺寸公差,不含形位公差与表面粗糙度的影响。
  • 概率法假定过程受控且分布对称;偏态分布需自己用 k 放大。
  • 公差表为常用段整理值,正式图样与验收以 GB/T 1800.1 原文为准。
  • 分配结果是建议值,落图前要过一遍你的工艺能力(设备精度、夹具、刀具)。

验证状态

项 结果
Android 编译(cli launch app-android --compile true,真跑 kotlinc) 通过,见 测试记录.md
纯逻辑回归测试(Node 真实执行) 全部通过,项数见 测试记录.md
真机运行(安装、点击、导出文件) 未执行 —— 本机无在线 Android 设备,未做任何真机断言
iOS / 鸿蒙 未实现,声明为不支持

授权

普通授权 ¥9.9 / 源码授权 ¥99,见 license.md。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

无系统权限。读取调用方用系统文件选择器交过来的文件(路径或 content:// 授权),写出走应用外部私有目录。

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集、不上传任何数据,不访问网络,不写日志。尺寸链表只在本机内存中解析与计算;校核结果由调用方决定是否落盘,默认写应用外部私有目录。

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

无

暂无用户评论。