# 限制与适用范围

初次使用无需设置数值算法。库负责把几何关系转成方程并求解，使用者通过尺寸、初值、状态和残差控制编辑流程。内部算法及高级数值设置见[技术说明](ARCHITECTURE.md#数值求解)。

默认 `SolveOptions`：长度容差 `1e-7`、角度 / 方向容差 `1e-8`、最多 200 次迭代。长度沿用调用者单位；`Angle` 使用弧度。固定坐标同样受长度容差约束，并非精确算术常量。

- 面向小型草图：最多 256 个标量变量、512 条线、512 条现存约束（包括禁用项，不包括已删除项）。点占 2 个变量，圆半径另占 1 个变量；同一中心点可复用。累计添加删除可以超过 512 次，编号不复用。
- 坐标及长度输入必须有限，绝对值不超过 `1e100`。距离非负、半径严格为正；角度在 `[-2π, 2π]`。
- `LengthRatio` 的比例必须有限、为正且不超过 `1e12`；残差为 `length(a)-ratio*length(b)`，按长度容差判断。极端比例仍受退化线长和浮点精度限制。
- 长度容差 / 草图尺度需在 `[1e-14, 1e6]`；角度容差 `[1e-14, 0.1]`，迭代预算 `1..1000`。其他高级设置见[技术说明](ARCHITECTURE.md#数值求解)。
- 初始线长不得为零。迭代中线长必须大于草图尺度的 `1e-12`，半径必须大于尺度的 `1e-14`。极端大小混合的模型可能被拒绝。
- 非线性问题可能多解、翻转或停滞。初始几何应接近所需构型；改尺寸时可分小步求解。两点重合时再要求正距离，是可能停滞的奇异初值，可先分开两点。
- 欠约束草图没有“离初值最近”的优化目标，自由方向可能漂移较远。应添加必要的定位关系；残差达标不等于最小位移。
- 当前面向小型草图，没有增量求解、全局搜索、拖拽优先级、几何对象删除、最小冲突证明和大型装配求解。
- 这是一套库及命令行示例，尚未提供完整 CAD 编辑器、文件导入导出或 DXFKIT 集成。

## 交付状态

版本 `0.2.1` 通过 [Mooncakes](https://mooncakes.io/docs/mik1e80/cad_sketch) 分发；`moon package` 本身仍只生成本地源码归档，正式上传使用 `moon publish`。安装说明见 [QUICK_START](QUICK_START.md#安装与版本)，待完成验收项见 [ACCEPTANCE](ACCEPTANCE.md)。

只支持点、线、圆与当前 24 种等式关系。圆弧为可选后续工作，未实现椭圆、样条、实体建模或通用文件交换。项目定位见 [POSITIONING](POSITIONING.md)，相关库的分工见 [ECOSYSTEM](ECOSYSTEM.md)。

验证报告只描述其记录的语料、环境和源码指纹。[历史批量数据](VALIDATION.md)、[随机实验](RANDOM_TRIANGLE.md)、[SciPy 对照](SCIPY_REFERENCE.md)及 [Benchmark](BENCHMARK.md)不构成任意草图成功率或跨机器性能保证。
