跳转到内容

标准件库来源搜集:数据、几何实现、模型集合、属性字典与商业目录

状态:Research Note 版本:0.2.0 日期:2026-09-07 研究问题:如果 Aira 要让 AI 直接插入和编辑标准件(紧固件、轴承、型材、管件),哪些外部零件库可以真正被复用?各自的许可、数据形态、标准覆盖和再分发边界是什么? 对应文档:产品宪法、AMIR v0.1 §18 Operation Catalog、CAD 基线与维护边界 前置调研:开源底座与自研实现重叠审计、本地开源源码与研究参考基线 后续调研:标准件开源库整合基底设计(源码级取证,修正本文对 BOLTS 许可与 bd_warehouse 数据形态的判断) 后续变化(2026-09-14):M1 公共产品结构已于 2026-09-13 落地(方案、状态),本文三处前提随之移动,正文保留原判—— ① §1.11、§9、§11.3、§11.8 所依赖的 assembly.compose / assembly.transformInstance 从未实现,实例共享改经 set-product:Body 为共享零件定义,组件按完整路径引用定义与局部放置,位置修改不重算几何;② §1.5、§5、§5.1 的前提“AMIR v0.1 无 STEP import”已不成立,imported-brep / imported-product 是当前计划步骤,§5 对现成模型集合“无落点”的判定须按新前提重下,本文未重下;③ §9 所述 BOM 现有落点为 Body 的 item identity(partNumber + partRevision)。

本文只做来源搜集与许可判定,不改变当前产品目标,也不授权任何实现或依赖引入。仓库此前没有任何 标准件相关记录(docs/plans、docs/specs、docs/vision 全文检索无 标准件/fastener 命中), 本文是这条线上的第一份证据。

  1. “标准件库”不是一种东西,而是五层:尺寸数据 → 参数化几何实现 → 现成模型集合 → 分类与属性字典 → 商业目录 API。 选型必须分层做;混在一起谈,会把可复用的数据层和不可再分发的目录层判成同一件事。
  2. 唯一把标准号、等效替代关系、参数类型与量纲一起写进机器可读结构的开源来源是 BOLTS 的 .blt(YAML), 它的形状最接近 AMIR 的 typed parameter,是数据层的首选。
  3. 数据最全的是 FreeCAD Fasteners Workbench(DIN 40+、ISO 30+、ASME/ANSI 25+ 个 CSV 定义文件), 但仓库许可是 GPL-2.0,把数据文件并入产品分发物存在传染性风险,不能默认可用。
  4. 许可最干净的是 cq_warehouse / bd_warehouse(Apache-2.0):紧固件、轴承、螺纹、法兰、齿轮、挡圈、轴键、 链轮成套,且 cq_warehouse 把尺寸表外置成约 30 个 CSV,可以只取数据不取代码。
  5. 现成 3D 模型集合对 Aira 现阶段没有落点:AMIR v0.1 的 Operation Catalog 没有 STEP import(明确排到 v0.2), 导入型零件库进不了当前 exact 管线。
  6. 商业目录(TraceParts、CADENAS PARTcommunity/3Dfindit、3DSource)明确禁止再分发, CADENAS 写明超范围使用每次可主张 €20,000 合同罚金外加每文件 €500。它们只能是“用户自带模型”的下游,不能作为内置库。
  7. GB/T 在所有开源库中全部缺失:FastenersWB 的 FsData 里有 DIN/ISO/ASME/EN/GOST/BSP/NFE,没有 GB 文件; BOLTS 是 ISO/DIN/EN 体系。中文市场覆盖只能靠“ISO 尺寸表 + GB/T 标注映射”。
  8. 产品内置零件库的第一许可要求是“用户设计产物不被库许可约束”。KiCad 库的 CC-BY-SA 4.0 例外条款是这方面 唯一成熟的先例:库本身 copyleft,但用库数据做出的设计与导出文件不受该许可约束,只有再分发库集合本身才受约束。 没有同类豁免的 CC-BY-SA / GPL 数据,一旦进入用户模型输出就是风险。
  9. ISO 13584(PLIB)与 IEC 61360 共用同一数据模型,并有专门的紧固件本体 ISO 13584-511。 它规定的是“零件类别与属性字典”,不是几何;对 Aira 的价值在于 AI 可查询的属性命名与分类,不是模型来源。
  10. Aira 需要的是“表驱动的参数化模板”,不是静态模型目录,且这条路线成熟: Inventor Content Center(family 模板 + 尺寸表)与 SOLIDWORKS Toolbox(master part + 配置)是商业先例, FreeCAD Fasteners WB 与 cq_warehouse 是同为 OCCT 血统、正在出货的开源实现(见 §4.1)。 只有这条路线能同时给出可编辑参数与配合能力(间隙孔/攻丝孔/BOM)。
  11. 综合判断:数据层复用 BOLTS + cq/bd_warehouse,几何层在维护版 Replicad 内生成,发现层复用既有 AI SDK 工具, 实例化走 AMIR assembly.compose。不引入 GPL 数据文件,不集成商业目录,不新建平行的零件检索执行器。 默认按光圆柱建螺纹,真实螺纹是显式可选项。
层 内容 判定要点
L1 尺寸数据 标准号 → 规格 → 尺寸表 能否再分发;是否机器可读;是否带标准号与等效关系
L2 参数化几何实现 由尺寸表生成实体的代码 语言/内核绑定;能否移植到 OCCT/Replicad
L3 现成模型集合 STEP/FCStd/STL 成品 体积;来源可信度;能否进入当前管线
L4 分类与属性字典 零件类别、属性命名、单位 是否影响 AI 可查询语义
L5 商业目录与 API 厂商件、超大规格空间 再分发条款;是否要求上报用户数据
来源 许可 覆盖 数据形态 对 Aira 的可用性
BOLTS 工具链 GPL-3.0、bolttools/ LGPL-2.1;数据逐集合声明:13×LGPL 2.1+、4×MIT、1×Unlicense,无 GPL 螺母、六角、内六角、垫圈、轴承、型材(C/I/L/Z/空心)、法兰、管件、挤出型材、连接杆、真空件 data/*.blt(YAML):classes → standards(body/standard/replaces) → parameters(free/defaults/types/description) → tables(index/columns/data) 首选。标准号、替代关系(ISO 4035 的 replaces: DIN439B)、参数量纲(Length (mm))全部机器可读
FreeCAD Fasteners WB GPL-2.0 DIN 40+、ISO 30+、ASME/ANSI 25+、EN 3、GOST 2、BSP、NFE;另有 PEM 件、热熔螺母、钻孔/攻丝孔径表 FsData/*.csv,每个标准一个定义文件 覆盖最广,但 GPL-2.0 数据进入分发物需法务判断;可作为尺寸交叉核对来源
cq_warehouse Apache-2.0 六角头/内六角/盘头/沉头/半沉头/奶酪头/紧定螺钉、六角螺母/法兰螺母/方螺母/盖形螺母、平垫/倒角垫圈、轴承、通孔与攻丝孔径、公称长度 src/cq_warehouse/*.csv 约 30 个参数表 + fastener.py(82KB)/bearing.py/thread.py 许可最干净的可取数据集;CSV 与代码解耦,可只取表
bd_warehouse Apache-2.0 紧固件、轴承、法兰、齿轮、O 形圈、挡圈、轴键、链轮、管件、OpenBuilds 型材 src/bd_warehouse/data/ 下 48 个 CSV、1752 行 + Python 生成器 cq_warehouse 的严格超集,取数首选(见整合基底 §3)
BOSL2 BSD-2-Clause 公制/UTS 螺纹与螺钉、齿轮、球轴承、直线轴承 OpenSCAD .scad 许可最宽松,但数据与 OpenSCAD 语义强绑定,提取成本高
NopSCADlib GPL-3.0 vitamins/ 下的螺钉、螺母、垫圈、轴承、型材、电机等 OpenSCAD 许可与形态双重不利,仅作参考

关键证据(BOLTS 数据形态,直接取自 data/nut.blt):文件头是 LGPL 2.1+ 声明,YAML 体内每个 class 同时给出 standards(body: ISO / standard: ISO 4035 / replaces: DIN439B)、parameters.types(d1: Length (mm)) 与 tables.data(M1.6: [1.6, 3.2, 1, 3.48])。这一结构可以逐字段映射到 AMIR 的 typed parameter 与单位系统, 不需要另立一套零件参数模型。

  • cq_warehouse / bd_warehouse:Python + CadQuery/build123d,底层同样是 OCCT,按需生成而非预烘文件。 能生成真实螺旋螺纹,但默认不生成(见 §4.1)。移植到 Replicad 属于同内核换 API,不是重写内核。
  • FreeCAD Fasteners WB:screw_maker.py 由 CSV 驱动生成实体,同样是 OCCT 血统,但与 FreeCAD 文档模型耦合。
  • BOLTS:几何以 OpenSCAD 模块或 FreeCAD Python 函数表达,已有 OpenSCAD / FreeCAD / SolidWorks 三种后端; 数据与几何是分离的,这正是 Aira 可以只取数据层的前提。
  • PartCAD(Apache-2.0):不是零件库而是零件包管理器,用 partcad.yaml 声明包与零件,支持 STEP/BREP/STL/3MF/OBJ 与 CadQuery/build123d/OpenSCAD/Chili3D 多种零件类型,并提供 Claude Code 插件。 它解决“零件如何被寻址、版本化和组装”,与 Aira 的 AMIR + Document/Revision 体系职责重叠,不建议引入; 但其零件声明的分层值得在设计 Aira 零件目录时对照。公共 registry 的实际规模未证实 [待验证]。

4.1 程序化(表驱动参数化)路线的成熟度判断

Section titled “4.1 程序化(表驱动参数化)路线的成熟度判断”

结论:成熟,且是专业 CAD 三十年的主流形态;静态模型目录反而是 agent/web 生态的新做法。

  • 商业先例:Autodesk Inventor Content Center 的基本单位是 family(模板 + 尺寸表),换规格按标准尺寸表重新生成几何; SOLIDWORKS Toolbox 为每个标准维护 master part 加规格/配置信息,用到新尺寸时更新 master 或按尺寸生成零件文件。 两者都是“模板 + 表”,不是每个规格一个死文件。
  • 开源正在出货的同内核实现:FreeCAD Fasteners WB 由 FsData/*.csv 驱动 screw_maker.py 生成实体, v0.5.66 发布于 2026-09-06;cq_warehouse 覆盖螺钉 26 个标准(ISO 4014/4017/4762/7380/10642/14580 等 + ASME B18.3/B18.6.3 + DIN)、 螺母 7 个、垫圈 6 个,全部按需生成。两者都是 OCCT 血统,移植到 Replicad 属同内核换 API。
  • 配合能力只有这条路线给得了:cq_warehouse 提供 clearanceHole() / tapHole() / threadedHole(), 通孔与攻丝孔径随紧固件实例走,并能从装配体导出 BOM。静态目录只能交付文件,交付不了配合。
  • 必须照抄的工程教训——默认不建真实螺纹:cq_warehouse 紧固件的 simple 参数默认为 True, 螺纹按光圆柱建模,尺寸与装配/干涉检查仍然成立;simple=False 才生成真实螺纹并显著增加模型复杂度。 Aira 的 OCCT 运行在浏览器 WASM 上,螺旋扫掠加布尔是最慢的一类操作,这条只会更关键。 [待验证] 具体开销需在 Aira 自己的管线上实测。
  • 覆盖边界:有标准尺寸表的(紧固件、垫圈、轴承、型材、管件)适合程序化; 厂商件(伺服、电机、连接器、板卡)没有公式,只能是模型文件,须等 STEP import。二者是分工,不是二选一。
来源 许可 规模/格式 判定
FreeCAD-library CC-BY 3.0,逐件署名 约 5 GB,FCStd/STEP/STL 社区投稿,来源与精度不统一;当前管线无 STEP import,暂无落点
KiCad packages3D CC-BY-SA 4.0 + 设计豁免例外 STEP/WRL 电子封装 与机械标准件无关,但其许可例外条款是 Aira 内置库应当照抄的模式
step.parts MIT(仓库层面) API 实测 16,847 件静态 STEP + GLB/PNG 预览 目前发现的许可最宽松的静态目录;但逐件上游来源未在记录中暴露 [待验证];无 STEP import 则无落点

KiCad 例外条款要点(转述,非原文):用库数据做出的电子设计及其生成文件,不因此被当作衍生作品, 不需要以同一许可发布,也不要求在设计内部标注归属;只有再分发库集合本身(含修改版)才必须沿用同一许可并保留归属。 这条把“库的 copyleft”与“用户产物的自由”切开,是任何随产品分发的零件库都必须先解决的问题。

这是当前最受关注的 AI CAD agent 项目,它的分工恰好把“程序化建模”和“非程序化零件库”切开,是本文分层框架的现成反例:

  • 建模层是程序化的:packages/cadgen 的模型脚本写在 build123d(同样是 OCCT 血统)上,有 AssemblyHelper + build123d joints、#o1.2.f1 选择器、staleness store 与常驻 daemon。
  • 零件层不是程序化的:skills/step-parts 查询托管目录 API https://api.step.parts/v1/parts, 按 stepUrl 下载预先烘好的静态 STEP,用 sha256 校验;文件托在 GitHub LFS(commit 固定),预览另存对象存储。
  • 判定证据:iso10642_socket_countersunk_screw_m3x6 与 ..._m3x10 是两条独立记录、两个独立文件—— 2118 个紧固件是 2118 个烘好的文件,而不是一张尺寸表加一个生成器; packages/cadgen/src/cadgen/ 下 50 余个模块中没有任何紧固件/标准件生成模块。
  • API 实测(2026-09-07):目录 16,847 件;分类 electronics 7822、power-transmission 2488、fastener 2118、 stock 976、mechanical-hardware 826、motion 570、spacer 434、actuator 339、enclosure 294、thermal 275、 profile 185、pin 121、bearing 86。记录含 standard {body, number, designation}、 family 专属 attributes(如 thread/lengthMm/headStyle/driveStyle)、aliases、sha256, 并提供 /v1/catalog/schema 与 /v1/openapi.json。
  • 静态路线的代价:bearing_608zz 只有 bearingCode/sealType/shielded,没有内外径与宽度,也没有标准号。 拿不到可编辑参数,规格空间只能靠穷举文件覆盖。
  • 对 Aira 的判定:AMIR v0.1 无 STEP import,这条路当前走不通;且下载所得几何不可编辑,与“AI 可编辑标准件”的需求相反。 可借鉴的是其目录记录 schema(标准号三段式 + 别名 + family 属性 + facet 检索),它印证了 L4 的必要性—— 但它是自造属性字典,没有对齐 ISO 13584。另外该项目整体以 agent skills 插件形式交付, 正是产品宪法 §0排除的路线,作为对照样本比作为复用来源更有价值。
  • ISO 13584(PLIB,Parts Library):由 ISO/TC 184/SC 4 维护,定义零件库的数据模型与交换格式; 与 IEC 61360 共用同一数据模型;1998–2004 年间共发布 12 项国际标准,含紧固件本体 ISO 13584-511 与测量仪器本体 ISO 13584-501。
  • eCl@ss / UNSPSC:工业界实际使用的产品分类与属性体系,常被作为 PLIB 模型的实例化来源。
  • DIN 4000(Sachmerkmalleisten,标准件特征表):本轮检索未取得可引用证据 [待验证]。

对 Aira 的意义:这一层不提供几何,但提供属性命名与类别层级。宪法要求核心能力可发现、可查询; 零件属性若自造命名,AI 与外部系统都无法对齐,ISO 13584-511 是紧固件属性命名的现成参照。

7. L5 商业目录与 API(不可再分发)

Section titled “7. L5 商业目录与 API(不可再分发)”
来源 关键条款
TraceParts 数据仅限 CAD 设计或查看用途;未经书面同意不得作为外部服务分发、发布到网站、以任何存储介质分发,或用于与其服务竞争。API 使用方必须回传下载者的邮箱、姓名、公司与国家
CADENAS PARTcommunity / 3Dfindit 仅限 CAD/BIM 设计用途;禁止以复制或替代其数据库为目的的使用;免费额度 50 次下载/日;超范围使用每次可主张 €20,000 合同罚金,另加每个 CAD 文件 €500
3DSource 零件库(国内) 商业授权,宣称覆盖 10 亿+ 规格的标准件与厂商件,以主流三维 CAD 插件形式提供
McMaster-Carr 站点内容受版权保护,未检索到公开的 CAD 再分发授权条款;其 STEP 文件只应作为用户自带输入,不进入 Aira 分发物

注:third_party/reference-sources/evals/cad-bench/.../mcmaster/91290A111.step 属于被 .gitignore 排除的 只读克隆(.gitignore:4 的 third_party/reference-sources/*/),不在版本控制内,不构成分发。

开源库全部缺 GB/T。可行路径是尺寸走 ISO 表、标注走 GB/T 号,依据是主要紧固件的等效关系:

GB/T 对应 ISO 件型
GB/T 5782 ISO 4014 六角头螺栓(半螺纹)
GB/T 6170 ISO 4032 1 型六角螺母
GB/T 70.1 ISO 4762 内六角圆柱头螺钉

[待验证]:GB/T 对 ISO 多为“修改采用”,个别尺寸、公差与材料等级并不逐项相同; 把等效关系写进产品之前必须核对标准正文,不能以检索结果为准。ISO/DIN/GB 标准正文受版权保护, 可复用的是既有开源数据集里已整理好的尺寸表,不是自行转录标准文本。

9. 与 Aira 的接入判断(复用四项)

Section titled “9. 与 Aira 的接入判断(复用四项)”
  • 真实需求:AI 在建模过程中插入、替换和参数化标准件(紧固组、轴承座配合、型材框架), 并让规格标注(如 GB/T 5782 M8×30)、配合孔径与 BOM 可被查询和编辑。
  • 上游设施:BOLTS .blt(LGPL 2.1+,标准号与量纲齐全)、cq_warehouse CSV(Apache-2.0)、 bd_warehouse(Apache-2.0,覆盖更广);几何生成落在维护版 @aira/replicad; 发现走既有 aira_library_reference 与同一套 AI SDK 工具;实例化走 AMIR assembly.compose / assembly.transformInstance(AMIR §18.3)。
  • 已证实差异:三家的数据与几何耦合度不同——BOLTS 数据独立且带标准语义;cq_warehouse 数据独立但标准号散在代码里; bd_warehouse 数据内嵌 Python;FastenersWB 覆盖最全但 GPL-2.0;全部缺 GB/T; 没有任何一家提供 AMIR 需要的 typed parameter、单位与诊断语义,这部分是 Aira 自己的职责。
  • 决定与边界:复用尺寸数据层(Apache-2.0 / LGPL 优先),不复制上游 builder,不把 GPL 数据文件放进产品分发物, 不集成商业目录,不新建零件检索执行器或平行工具声明。Aira 只负责参数与单位建模、语义选择、标注映射与诊断。 几何默认按光圆柱建螺纹(对齐 cq_warehouse 的 simple 默认值),真实螺纹只在用户显式要求时生成。
  1. BOLTS 数据文件的 LGPL 2.1+ 声明与仓库 GPL-3.0 的关系 → 已取证:18 个集合逐个声明许可(13 LGPL 2.1+ / 4 MIT / 1 Unlicense), GPL-3.0 只覆盖工具链,见整合基底 §1.1。剩余法律关系问题在该文 §10.1。
  2. [待验证] GPL-2.0 的 CSV 尺寸表并入闭源分发物的传染性判断。
  3. [待验证] GB/T 与 ISO 的逐项尺寸差异,需标准正文。
  4. [待验证] PartCAD 公共 registry 的实际内容与规模;DIN 4000 的现行状态。
  5. [待验证] step.parts 逐件模型的上游来源:仓库整体声明 MIT,但抽查的记录未暴露 stepSource/productPage; 电子件、伺服与执行器大概率来自厂商模型,仓库层面的 MIT 声明不必然覆盖上游条款。
  6. 若需要进一步取证,按 third_party/reference-sources/SOURCES.lock.json 既有约定, 以 depth-1 只读克隆 pin 住 BOLTS、cq_warehouse、bd_warehouse、FreeCAD_FastenersWB 四个源并记录 licenseEvidence。 该动作需要显式授权,本文不代表已授权。

11. 算法机会:以最小描述为原则的效率、性能与压缩

Section titled “11. 算法机会:以最小描述为原则的效率、性能与压缩”

本节是调研之后的架构推论,不是已验证结论,也不授权实施。证据标签沿用 外部先例扫描的约定:[实测]、[架构推论]、[待验证]。

step.parts 的 iso10642_socket_countersunk_screw_m3x6 是 89,574 字节的 STEP,但它的全部信息是三个符号 (ISO 10642, M3, 6)。生成器一次性摊销后,每个零件的最小描述只有几个字节:2118 个紧固件文件约 190 MB, 等价于二十来个生成器加 200 KB 尺寸表,相差四个数量级。[实测]

这不只是存储问题。它意味着标准件应当以“最小描述”的形态存在于每一层——AI 的 prompt、AMIR 节点、hash、 缓存键。以下每条都是这个原则在不同层的展开。

11.1 尺寸表的预测编码:公式 + 残差

Section titled “11.1 尺寸表的预测编码:公式 + 残差”

对 BOLTS data/hex_socket.blt 中 ISO 4762 的表(27 行 × 7 列 = 189 个数)逐列拟合:[实测,2026-09-07]

列 规律 残差
头高 k k = d 27/27 行零残差
螺纹长 b b = 2d + 12(ISO 888 的形式) 仅 M1.6 一处舍入(15.2 → 15)
头径 d2 d2 = 1.5d M12 及以上全部精确;M12 以下系统性偏大(M3 为 1.83d)
沉孔深 t_min t_min = 0.5d M2–M24 精确
内六角 s ≈ 0.75d 量化到扳手格 {2.5, 3, 4, 5, 6, 8, 10, 12, 14, 17, 19, 22, 24, 27, 32, 36, 41, 46} 残差即量化误差

189 个数压成 4 个公式加一张稀疏残差表,无损:公式 + 残差精确重现标准值。价值不在存储(全部表约 200 KB),而在:

  • AI 通道:AI 不需要看表,只需要几个 token 的先验(头高等于直径、头径约 1.5 倍)做合理性判断,精确值由工具返回。 任务成本以 AI 通道计量,熵应被推出 prompt、进入确定性工具。
  • 残差可解释:M12 以下头径偏大是标准委员会为小螺钉制造性与扳手强度做的让步;残差表是“规律被打破的地方”。
  • 交叉校验:BOLTS / FastenersWB / cq_warehouse 三源对表时,偏离公式的值优先怀疑录入错误——预测编码当异常检测用。

边界:规范值以表为准,公式永远不能覆盖表。

11.2 优先数格:把标准当码本,把 AI 输出当噪声

Section titled “11.2 优先数格:把标准当码本,把 AI 输出当噪声”

ISO 3 的 Renard 系列 R10 / R20 / R40 是 10^(k/n) 的等比格,在对数尺度上是等距格;螺纹公称直径、长度、 扳手尺寸都落在这种格上。AI 会生成 M3×7、M5×23 这类不存在的规格。信息论视角:标准定义码本,AI 输出是带噪声的码字, 解码 = 投影到最近码字,纠正量作为诊断返回——宪法要求诊断可见,不得静默修改意图。[架构推论]

附带收益:R20 上一个索引约 5 bit,比浮点便宜且每个码字都有制造意义;对数格上的量化误差是相对误差(乘性), 与工程公差直觉一致。推广到自由尺寸后,Plan–Compile 路线的搜索空间也随之收缩。

11.3 几何 hash-consing:静态目录是生成器的 memo 表

Section titled “11.3 几何 hash-consing:静态目录是生成器的 memo 表”

现状:feature cache 按 nodeId 键控(third_party/maintained/replicad/src/aira/exact-feature-graph.ts 的 aira.ocaf-feature-cache/0.2),增量按文档内节点粒度(exact-feature-graph-session-v0.4.ts 的 executedNodeIds)。 往前一步:按节点语义投影的内容 hash + 上游 artifact hash 键控,feature DAG 变成 Merkle DAG,相同子树按构造共享。 [架构推论]

  • 20 颗相同螺栓 = 1 次求值 + 20 个 transform(依赖 assembly.compose 先落地;该 op 目前只有 spec,无实现)。
  • 跨文档、跨会话、跨用户,相同 (生成器版本, 参数) 命中同一键;本地 IndexedDB 与远端 CDN 都可按 hash 分发。 安全性由既有确定性机制保证:只有 topologyStable 及以上且 executionManifestHash 相同的条目允许命中 (AMIR §14.2)。
  • 标准件参数域有限离散(标准 × 规格 × 长度 ≈ 10^5),可离线一次算完、按 hash 分发 tessellation。

这条消解了 §5.1 的二分法:step.parts 的 16,847 个静态文件正是一个生成器在其有限定义域上的 memo 表。 静态目录不是替代方案而是派生物,真源永远是生成器 + 参数。

风险:OCCT 面编号跨构建不是 bitwise 确定的,缓存命中必须走既有的 rebindCachedArtifactGraph 重绑定路径, 不得直接复用面索引。

11.4 家族级证书:有限格上的穷举验证

Section titled “11.4 家族级证书:有限格上的穷举验证”

Geometry Certificate(AMIR §13)目前逐 artifact 签发。 标准件定义域有限,“对所有参数 p ∈ D,生成器 G(p) 产出有效实体”是可穷举检验的命题:10^5 个实例 × 毫秒级, 离线一次跑完,结果按 hash 存,与 §11.3 共用键;浏览器内插入标准件不再重新验证。[架构推论]

许多断言有闭式解:六角螺栓体积是表值的多项式,assert.volumeBetween 的边界可以符号地算出而非数值估计, 紧到足以抓内核回归。有限性 + 闭式 = 证书可以精确,而不只是“在容差内”。证书绑定内核构建,内核升级时重跑(成本低)。

11.5 螺纹作为螺旋不变场(Lane F 候选)

Section titled “11.5 螺纹作为螺旋不变场(Lane F 候选)”

螺纹在螺旋运动群 (θ, z) ↦ (θ + α, z + (p/2π)·α) 下不变。取不变坐标 u = z − (p/2π)·θ (mod p), 螺纹实体即 {(r, θ, z) : r ≤ R(u)},其中 R 是 ISO 60° 牙型的二维折线(H = (√3/2)·p,牙顶牙底截平)。 一条螺纹 = 二维轮廓 + 螺距 + 旋向 + 长度,几十字节;每个采样点 O(1),无扫掠、无布尔。[架构推论]

落点:B-Rep 层按 §4.1 保持光圆柱(精确内核、可导出、可制造);显示层用同一份参数记录生成隐式场做装饰螺纹, 两层由同一参数派生,一致性由构造保证。螺纹配合检查是符号运算(designation 相等),不碰几何。 分类上它不是 TrueSDF(螺旋扭曲畸变距离),是带 Lipschitz 界的 GeneralImplicit,AMIR 已有该 kind。

状态:Lane F 尚在 F1 之前,Field3D 还不能作为 committed node 的端口类型;本条是 F2 IR 的候选节点,不是当前事项。[待验证] 距离误差界需要推导。

11.6 对称群商:规范化与稳定命名

Section titled “11.6 对称群商:规范化与稳定命名”

六角头有 D6 对称,旋转 60° 是同一物体。把放置变换模零件的对称群规范化:modelHash 不再因等价旋转而变化, diff 与重求值少一批假阳性。持久命名随之自然——六个平面是一个轨道,“头顶面”由家族定义,SemanticRef 基数先验已知。 只对家族声明的理想对称适用;倒角、标记会破坏对称。优先级最低。[架构推论]

近期提交在“拒绝整体重写、把编辑引向增量”。可形式化为:一次编辑的代价 = patch 相对当前程序的描述长度 ΔL, 而非几何相似度。库调用天然便宜(一个标准件调用约 3 个符号),这是程序化零件库的 Kolmogorov 论证。 patch 已是结构化的,ΔL 可计算,可直接进入既有成本计量。[架构推论]

按对当前目标(AI 复杂建模 + 连续编辑 + 成本可测)的杠杆:11.3 → 11.2 + 11.1 → 11.7 → 11.4 → 11.5 → 11.6。

  • 11.1、11.2、11.3、11.7 不依赖标准件库先存在;
  • 11.3 的实例共享依赖 assembly.compose 实现;
  • 11.4 依赖标准件生成器存在;
  • 11.5 依赖 Lane F 进入 F2。

以上全部是算法模式(hash-consing、预测编码、格量化、群规范化、MDL),不是要引入的库; 符合“先复用,再自研”——复用的是数学。任何一条进入实施前,须按 AGENTS.md 只保留一个当前产品目标的纪律另行排期。