Skip to content

Roadmap #1

@CreeperIsASpy

Description

@CreeperIsASpy

🚀 Phase 1: 几何建模能力的补完(Completed in v0.3.0)

为了让 AI 能设计真正的零件,需要覆盖基础的实体和操作。

  • 丰富实体库 (Primitives Expansion)

  • 基础体: Box (立方体), Sphere (球体), Cone (圆锥), Torus (圆环), Wedge (楔形)。

  • 特征操作封装: 不仅仅是创建实体,还需要封装 Hole (打孔), Slot (槽), CounterBore (沉头孔) 等工业常用特征,通过简单的参数(如 depth, diameter)调用。

  • 2D 草图与成型操作 (Sketching & Forming)

  • 封装 Sketch: 支持 Rectangle, Circle, Polygon, Text (文字刻字很常用)。

  • 成型操作: 封装 Extrude (拉伸), Revolve (旋转成型), Sweep (扫掠), Loft (放样)。

  • AI 接口设计: 让 AI 可以说 "Draw a rectangle on the top face of 'pole' and extrude it cut"(在'pole'顶面画矩形并拉伸切除)。

  • 布尔运算与修改 (Booleans & Modifiers)

  • 布尔: Union (加), Difference (减/切割), Intersection (交)。(Completed in v0.2.1)

  • 修饰: Fillet (倒圆角), Chamfer (倒角), Shell (抽壳), Offset (偏移)。(Completed in v0.2.2)


🧠 Phase 2: 语义化选择器(Completed in v0.3.1)

文件:selectors.py + mixins.py--EntitySelectorMixin
这是 IgnisCAD 最核心的进阶特性。AI 很难说出 "Edge #42",它通常会说 "the top edge" 或 "the edge near the hole"。

  • 基于方位的选择器 (Positional Selectors)

  • 实现类似于 entity.faces().top(), entity.edges().closest_to(point), entity.vertices().filter_by(Axis.Z) 的方法。

  • 让 AI 可以写:model.find("pole").faces().top().fillet(2) (给柱子顶面做2mm圆角)。

  • 基于拓扑的选择器 (Topological Selectors)

  • 选择 "与...相连的面" (faces_touching(...))。

  • 选择 "面积最大的面" (faces().sort_by_area().last).

  • Tagging System (标签系统)
  • 允许 AI 在建模过程中给特定的面或边打标签(例如 tag("mounting_hole")),后续操作直接引用标签,而非几何特征。

🔗 Phase 3: 约束与装配

AI 极其不擅长处理绝对坐标 (e.g., (10.5, 32.1, 5)),但非常擅长处理相对关系。

  • 相对定位 (Relative Positioning)
  • 封装 Align 操作:让物体 A 的 Center 对齐物体 B 的 Top。(Completed in v0.2.0)
  • 封装 Joints (连接点):在物体上定义“接口”(比如螺丝孔位),让 AI 只需命令 screw.align_to(hole)
  • 约束求解 (Constraint Solver - 高级)
  • 如果能引入简单的 2D 约束(平行、垂直、相切),将大大增强草图的表达能力。build123d 本身有很好的约束支持,你需要将其简化暴露给 AI。

🛠️ Phase 4: 分析与反馈闭环

AI 也是会犯错的。IgnisCAD 应该提供工具告诉 AI “你设计的这个东西物理上不成立”或者“体积太大了”。

  • 几何属性查询:
  • 暴露 volume (体积), surface_area (表面积), center_of_mass (质心), bounding_box (包围盒尺寸)。
  • AI 可以自我检查:"Is the box larger than 100mm? If so, shrink it."
  • 干涉检查 (Collision Detection):
  • 提供 check_collision(entity1, entity2)

  • 如果两个零件重叠了,返回重叠体积,让 AI 知道需要移动或切割。

  • 导出与可视化:

  • 轻量化预览: 导出 GLTF/GLB 给前端展示,或者生成 SVG 投影图(AI 可以通过视觉模型看 SVG 来修正设计)。

  • 标准格式: STEP (用于生产)。


🤖 Phase 5: AI 辅助特性 (AI-Specific Helpers)

针对 "AI Agent" 这一目标用户的特有功能。

  • describe() 方法:
  • 实现一个 model.describe() 方法,返回一段人类可读的文本,描述当前的几何结构(例如:"A base plate with 4 holes and a cylinder in the center")。这可以用作 prompt 反馈给 AI,增强它的长期记忆。
  • validate() 钩子:
  • 允许定义一组规则(如“壁厚不能小于 2mm”),在导出前自动运行检查并报错给 AI。
  • 代码生成助手 (Code Gen Utils):
  • 提供一组 Prompt 模板或 System Message 建议,教大模型如何正确调用 IgnisCAD 的 API。

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions