Aira CAD 核心建模基线与维护边界
状态:已验收 CAD 基线与维护边界;规则通孔阵列的工程关系闭环已完成,证据与限制见本文及工作进度的固定历史入口
文档版本:
0.2.5更新:2026-09-25
执行依据:产品结构与工程定义实施方案;本文件 §3.2 只维护已采纳边界
当前状态:工作进度
调查依据:CAD 底座复用调查、开源复用边界调查
1. 文档职责
Section titled “1. 文档职责”本文件只保留已验收 CAD 基线、成熟底座职责和后续维护边界。过去的分批任务、测试计数、提交号、 浏览器运行明细和阶段清单由 Git 历史及原始研究记录保存,不再作为当前待办重复维护。
此前一轮全项目数学化复杂度消元已完成,实施与保留边界见 §3.2;2026-09-08 设定的设计意图与确定性推导目标 已于 2026-09-09 按原范围核验完成,证据与限制见工作进度。 首发 AI 通用工业建模软件的系统能力差距及实施依赖见产品结构与工程定义实施方案;本基线完成不代表这些系统已全部交付。 发布候选与云运行验收保留为后续工作, 准入条件以上线计划为准。
2. 已关闭的产品基线
Section titled “2. 已关闭的产品基线”G-CAD 已在默认浏览器工作台和公开 Aira Interface 上完成本地工程验收:
- 从空白创建并编辑通用 Feature Graph,支持特征增删、连接、重连、参数修改和失败修复;
- 轮廓、拉伸、旋转、差集、薄壁、Fillet、Chamfer 共用共享 Session 与同一事务路径;
- Candidate/Revision Face 与 Edge 可直接 authoring,并由真实 BRep history、TNaming 与显式重绑定处理拓扑变化;
- OCAF/TFunction 保存会话级派生状态并计算受影响特征,Candidate 失败不会污染已提交状态;
- STEP 导入/导出、单位与容差诊断、三类工业零件及独立工具回读已通过;
- 预览、验证、CAS 提交、重开、撤销/重做和恢复共用现有 Revision/IndexedDB 权威。
这不是对任意模型、任意拓扑变化或完整 CAD 操作集的承诺。公开权威模型仍是 AMIR/Revision; 是否把完整持久 OCAF 文档提升为权威主文档,只能由具体需求、权威变更与当前历史恢复设计触发。
2.1 已关闭的 AI-CAD-1
Section titled “2.1 已关闭的 AI-CAD-1”默认 Agent 通过现有 SDK Gateway、公开 Aira Interface、共享 Session 和维护版 Replicad 完成六条冻结任务, 覆盖板件、壳体、旋转体、上游改参、下游关系保持、诊断修复、重开续改及独立 STEP/项目回读。 模型不依赖 Aira 实现源码、私有 fixture、Aira Skills 或答案生成 helper;错误引用、越权、半提交和静默近似为零。
真实模型运行只证明该锁定模型和任务集的本地结果,不自动满足 G1/G2、云部署或外部上线条件。
该阶段的资源分布和必要结论通过 git log -- docs/plans/ACTIVE_TASK.md 查阅;当前状态见工作进度。
3. 已采纳底座与职责
Section titled “3. 已采纳底座与职责”| 能力 | 现有实现基线 | Aira 现行职责 |
|---|---|---|
| Exact 几何构造与操作 | @aira/geometry-kernel(自主深度二次开发核心几何内核)/ OCCT |
AMIR 参数与接受域、语义选择、history 证据、验证和诊断 |
| 草图约束 | 维护版 PlaneGCS | 模型映射、独立残差检查和产品诊断 |
| 派生特征文档与依赖执行 | OCAF / TFunction / TNaming | AMIR 编译、操作分发、取消与异步证据 |
| 持久设计与提交 | AMIR / SemanticRef / Session / Revision | 权限、验证、CAS、IndexedDB、重开与恢复 |
| 模型适配与工具循环 | Vercel AI SDK | 原生 CAD 能力、预算、授权、事务与完成权 |
| 显示和命中 | Three.js | Exact→Mesh 身份证据和 authoring 语义校验 |
3.1 分层复用与自主创新
Section titled “3.1 分层复用与自主创新”按产品宪法 §0与 开发约定的分层原则执行:成熟数值、几何通用算法优先复用,避免重复发明; AI 设计语言、关系编译与求解组织、能力发现与组合、诊断恢复及能力演化鼓励自主创新, 不以穷尽上游实现或证明没有可用库为前置条件。本节的现有结构是演进基线,不限定新架构的职责范围。
产品几何底座统一由 @aira/geometry-kernel 承载。通用 OCCT builder、临时句柄、基础拓扑对象与生命周期必须在
@aira/geometry-kernel 中按模块化与低熵标准演进;几何产品适配负责参数、语义选择、history 证据、验证和诊断,
避免复制 builder 或增加纯转发层。单一权威与共享执行约束防止等价实现重复维护,允许更换权威模型和执行组织;
变更须明确语义、验证当前历史操作与恢复,并遵循已有授权范围。采用替代后,同批退役等价旧入口。
以下保留 2026-09-09 规则通孔阵列阶段的历史裁决,不作为新设计语言或关系架构的限制: 当时工程关系能力的复用边界为既有草图对象与 driving/reference 约束、参数绑定与差量修改、 OCAF 调度及 Session 持久断言继续复用;不另建同类对象图、参数解析、求解、缓存或事务系统。 规则通孔阵列复用 Replicad 圆柱、复合体与非破坏布尔;布局用封闭公式消元,无需新增 PatternStd/Expr 绑定。 其职责差异和采用边界已完成核对。FreeCAD 的驱动模式提供成熟语义参考,不引入其整套文档运行时。 调查源码、许可、已证实差异及未知项统一见复用核对; 建设顺序只在上线计划维护。
3.2 复杂度收敛规则
Section titled “3.2 复杂度收敛规则”只在语义和失败域可证明等价时合并重复实现。优先使用状态代数、共享 DAG fold、单一 canonical JSON/hash 内核和派生投影;历史 schema、错误优先级或兼容语义未冻结时,不为减少行数强行合并 reader。
按依赖顺序调查并实施:契约与图折叠 → Session/持久化 → Agent/Gateway → Workbench 派生状态 → 几何适配、数值求值与资源生命周期 → 构建和发布路径。既有改造先核对,不重复实施。 每项以接受域、失败语义和不变量约束合并,以重复状态/路径删除或可复现计算成本下降验收。 所有主要子系统必须有源码支持的审查结论;适用项实现并验证,必要保留项写明具体原因。 验收遵循开发约定:不新增 test/spec 或独立测试框架,复用构建、类型检查、lint、 真实原生 Interface、浏览器/性能工具及已授权的 capability-explorer,按下表核验受影响行为。 未执行或证据不足的检查明确报告为未验证;当前状态见工作进度。
首项:共享 DAG 的节点状态统一保存完成值与子图高度,满足
h(v) = 1 + max(h(child))(叶子高度为 1),每次缓存命中检查 depth + h(v) - 1 ≤ maxDepth。
需求是共享子图的所有路径均受深度约束;复用现有 foldBoundedDag 与标准 Map,
不引入上游图框架。已证实差异是旧缓存只检查共享节点入口深度,漏掉更深路径上的后代。
边界:合法图的值、顺序与身份不变;原先误接受的超深共享图现在拒绝,既有 reader 不迁移。
2026-09-05 的逐批实现、性能测量与旧测试结果见固定历史记录;不作为当前执行步骤。
- 锁定来源、修改位置和构建方式以
third_party/maintained为准; - 修改原生源码必须重建对应产物并更新来源证据,不能只改参考源码或 TypeScript 外壳;
- history 必须在 Replicad 持有 maker 时读取;借用输入、拥有输出和临时句柄必须确定释放;
- 零解、多解、过期和跨 actor 引用必须显式失败,不得猜选或静默回落;
- 新操作与架构演进保持原生 Interface、几何与事务执行的一致性,并通过实际产品验证;不冻结现有图或 Session 结构,不新建 Gate 包装器或报告树;
- 成熟通用算法的已接受选型,在需求、支持平台、锁定上游版本、可复现缺陷或实测预算发生相关变化时重开;AI CAD 架构创新按 §3.1 推进。
FEA 数值接受边界(2026-09-27):真实需求是拒绝未收敛、非法网格或无有效约束的结果,并正确恢复主应力。锁定 ml-matrix@6.15.0 的 Matrix、SingularValueDecomposition 与 EigenvalueDecomposition 分别承载 6×6 约束 Gram 矩阵秩检查及 3×3 应力张量特征值;已核对其 src/decompositions.js、src/matrix.js 和 src/dc/ 实现。该库的 solve/LU/Cholesky 使用稠密矩阵,存储随自由度平方增长,不直接接受现有 CSR;本批保留既有 CSR/Jacobi-PCG,仅补输入与重算自由自由度残差的接受检查,不新研求解算法。其他成熟稀疏求解器的替换收益尚未比较,不能据此宣称现有求解器最优。残差通过只证明离散方程在声明容差内成立,不证明全局正定谱、网格收敛或物理认证;失败不携带已接受假设,零应力的安全系数为 null。当前限小变形、各向同性线弹性及直边仿射 tet10,曲边单元明确拒绝;数值内核修复不构成模型绑定分析工具交付。
圆锥曲线复用边界:真实需求是让作者声明的椭圆及有限椭圆、双曲线、抛物线段通过同一约束、编辑与精确拉伸路径。维护版 @aira/planegcs@1.2.0-aira.1 的原生 conic rules、add_constraint_equal 和 Geo.cpp::Parabola::Value 已提供求解、短轴尺寸与参数语义;初始坐标和半径仍是种子,独立检查负责核验求解与重放证据。锁定 replicad-opencascadejs@1.0.0 / OCCT feature-graph v0.22 封装已暴露 gp_Elips、GC_MakeArcOfEllipse 及带正权重的 Geom_BezierCurve,未暴露 gp_Hypr、gp_Parab。有限双曲线、抛物线段可精确转换成有理/多项式二次 Bézier,直接扩展既有 makeBezierCurve 权重参数并复用 OCCT builder;不增加求解器、折线几何替代或平行 builder。Profile2D 负责共享局部坐标、参数和解析面积语义;OCCT 负责曲线、边、面与实体及其句柄生命周期。有限参数构造须保持正权重与有限坐标,体积实测受积分容差约束;该转换不证明任意曲线组合的可解性。
| 变更 | 最小验证范围 |
|---|---|
| 原生操作、绑定或所有权 | 真实几何、接受域、history、失败和释放 |
| 图调度或引用恢复 | 改参、重连、循环、split/merge/delete、零/多解和显式重绑 |
| Worker、Session 或持久化 | 取消、过期、CAS/存储失败、撤销/重做、重开、当前契约恢复和失败隔离 |
| 原生接口、权限或 UI | 同一路径的发现、查询、建模、诊断与恢复,以及受影响的授权、越权拒绝和状态隔离 |
| 发布产物 | 当前 runtime、构建、供应检查、Chrome 与独立 STEP 回读 |
3.3 已采纳的内核绑定扩展
Section titled “3.3 已采纳的内核绑定扩展”2026-09-12 新增 BRepClass3d_SClassifier、BRepClass3d_SolidClassifier 与 TopAbs_State
(248 → 251),为真实的点在材料内/外判定提供内核原语;sealed runtime 重建为
occt-feature-graph-runtime-v0.19.json,verify-sealed-occt-runtime-supply 通过。
真实需求:测量与验证需要“这个点是否在材料内部”的可信判定。上游差异:既有绑定里的
BRepExtrema_DistShapeShape.InnerSolution() 不是点内测试——2 mm 薄板上 z=0.001 与 z=1.999 都被判为
外部,边界附近有约 0.5 mm 不可靠带;BRepClass3d_SClassifier 的 State() 在同一批点上给出正确的
IN / OUT / ON。边界:只增加这一个判定原语,未改变任何既有绑定、公共 API 或几何行为;
ExactRuntime 以结构化成员声明它,因为预构建的 replicad-opencascadejs 类型描述的是完整参考构建。
同批确立的调用约定:BRepGProp_Face 必须接收真正的 TopoDS_Face(runtime.TopoDS.Face(...))。
传入泛型 TopoDS_Shape 不报错,但 Bounds() 会静默返回全零 UV 盒——这正是能力说明里强调的
“不可用不等于零”。