乐于分享
好东西不私藏

DragonCAD:AI原生自然语言设计软件开发实例

DragonCAD:AI原生自然语言设计软件开发实例

相应AI原生工业设计的号召,博主从零到一,用自然语言“驱动”孵化了一个工业CAD内核雏形。

2026年5月1日劳动节,S启动了一个看似疯狂的项目:在完全脱离Rhino/Grasshopper的情况下,打造一个能够听懂自然语言、自我迭代的AI原生CAD内核——DragonCAD。全程使用Claude Code作为主要编码助手,所有代码通过自然语言描述生成、调试、重构,彻底打破传统CAD开发的流程壁垒,实现“需求描述→AI生成→落地验证”的高效闭环。

第一步:最小闭环 MVP(核心验证)

MVP阶段,S聚焦核心目标,只完成一个极简闭环:双击启动 → 监听9002端口 → 接收JSON指令 → 画一条直线。这一步的核心价值的是验证“纯HTTP驱动的独立CAD内核”的可行性,摒弃所有非必要功能,快速落地核心逻辑。

技术选型与核心设计

项目采用 .NET Framework 4.8 + WPF + HelixToolkit.Wpf(2.20.0版本) 技术栈,首次提交仅包含15个文件,聚焦轻量化与独立性,不依赖任何Rhino/Grasshopper相关组件,确保内核独立运行。关键模块设计如下:

  • ComponentRegistry(组件注册表):维护一个线程安全的字典,核心功能是映射“组件GUID → 绘图委托”,预置直线组件的GUID(4c99a9cd-4c9a-448d-9196-4c9a94984c8f),同时支持后续动态注册新组件,为自扩展能力奠定基础。

  • GeometryDrawer(3D绘图工具):基于HelixToolkit的MeshBuilder,用圆柱体模拟直线绘制(更清晰易见),支持通过参数数组(x1,y1,z1,x2,y2,z2)控制直线的起点和终点,通过Dispatcher.Invoke确保跨线程绘图安全,避免视口冻结。

  • HttpServer(通信监听服务):启动后自动监听本地9002端口,对/invoke路径响应POST请求,解析JSON格式的指令(包含componentId和parameters),路由到对应组件执行,返回执行结果(success+message)。

在Claude Code的辅助下,我们仅用不到两小时就完成了可运行的MVP版本,编译运行后,通过鼠标拖拽3D视口验证直线绘制效果,成功验证了核心假设:纯HTTP驱动的独立CAD内核完全可行,为后续迭代奠定了坚实基础。

第二步:自我迭代 —— 未知GUID自动生成适配器(核心壁垒)

传统CAD内核的局限的是无法预知所有几何操作,必须依赖人工开发新组件,而DragonCAD的核心突破在于“自我补课”能力:当系统收到未注册的GUID指令时,无需人工干预,自动完成“AI生成代码→动态编译→组件注册→指令执行”的全流程,彻底摆脱对Grasshopper插件的依赖。

核心流程与技术实现

  1. 接收未知指令:外部系统发送包含未注册GUID的POST请求,示例如下:        POST /invoke 
    { "componentId": "unknown-guid", "parameters": [0,0,0,5] }

  2. AI代码生成:系统触发自扩展层,调用DeepSeek API,传入未知GUID和参数数组,AI根据参数长度(如4个参数推测为圆形)生成符合DragonCAD规范的C#适配器代码(包含绘图逻辑、参数校验、视口绘制)。

  3. 动态编译:使用Microsoft.CodeAnalysis(Roslyn)对生成的代码进行动态编译,生成临时DLL文件,并缓存到本地,确保系统重启后无需重新生成,提升响应效率。

  4. 自动注册与执行:从编译后的程序集中提取绘图委托,注册到ComponentRegistry字典,与未知GUID绑定,随后重新执行当前指令,完成建模任务。

这套机制让DragonCAD成为了自身的“适配器工厂”,实现了“缺功能→自生成→自运行”的闭环,无需人工编写一行代码,即可扩展新的建模能力。

第三步:40个适配器一键移植(效率提升)

我们前期已为Grasshopper AI插件woyeai开发了40个适配器(涵盖Line、Circle、Box、Move、Scale等常用几何操作和变换功能),为了快速复用现有逻辑,避免重复开发,我们设计了IDragonCADAdapter统一接口,实现适配器的一键移植。

移植核心逻辑

1. 定义统一接口:IDragonCADAdapter接口包含Execute(double[] parameters, IDrawingContext ctx)方法,所有Grasshopper适配器只需重写该方法,即可适配DragonCAD的绘图上下文和参数规范。

2. 自动扫描注册:通过Claude Code生成反射逻辑,系统启动时自动扫描Adapters/文件夹,识别所有实现IDragonCADAdapter接口的类,自动注册到ComponentRegistry,无需人工手动注册。

整个移植过程无需编写额外业务代码,仅通过接口适配和反射扫描,40个原生适配器一键就绪,大幅缩短了开发周期,同时确保了与原有Grasshopper适配器的GUID、参数格式兼容。

第四步:参数化工作流与节点图引擎(功能升级)

MVP的HTTP指令驱动模式满足了基础建模需求,但真正的参数化设计需要“电池连线”式的可视化操作。为此,S开发了拖拽式节点编辑器,实现参数化工作流的可视化与自动化执行,让设计过程更直观、高效。

核心功能与技术实现

  • 节点编辑器:基于纯HTML+JS开发,嵌入WebView2浮动窗口,支持电池(组件)拖拽、引脚连接,参数滑块默认值设为10,方便快速调整。

  • 连线交互:采用SVG贝塞尔曲线绘制连线,支持点击连线中点删除,连线逻辑与后端节点拓扑数据同步,确保操作直观流畅。

  • 拓扑执行:后端维护NodeGraph拓扑数据,点击“Execute All”按钮时,系统按拓扑顺序执行所有节点,通过通道传递几何体ID,确保操作流程的连贯性。

  • 核心语义:变换操作(如Move、Scale)采用“克隆替换”语义——CloneAndMove先克隆原物体、应用变换,再删除原物体,确保几何数据不可变,同时避免冗余物体残留,保证视口整洁。

第五步:3D直观交互(体验优化)

为了提升用户体验,我们为3D视口增加了直观的交互功能,让用户可以直接操作3D物体,无需通过指令输入控制,平衡了“AI驱动”与“人工交互”的需求。

  • 鼠标选取:通过HitTest技术实现3D物体的精准选取,选中的物体用包围盒线框高亮显示,不修改模型本身的材质,避免跨线程视口冻结问题。

  • 拖拽移动:支持选中物体后,在XY平面内拖拽移动,实时更新物体位置,操作反馈即时可见。

  • 删除功能:选中物体后,按下Delete键即可删除,同时更新后端几何体ID缓存,确保数据一致性。

第六步:Claude Code作为总架构师(开发模式革新)

整个DragonCAD开发过程中,Claude Code不仅是“代码生成工具”,更承担了架构讨论、代码评审、问题定位、优化建议等核心角色,形成了“自然语言需求→AI反馈→验证迭代”的人机结对编程模式,将开发效率提升了数倍。

典型应用场景

  • 问题定位与修复:当出现“Move/Scale在Execute All后没有变形”的问题时,Claude Code快速定位到核心原因——几何体ID估算错误与克隆后未删除原物体,随即给出解决方案:新增LastCreatedObjectId属性,完善克隆替换逻辑,同时提供可直接补丁的代码块和测试步骤。

  • UI布局优化:遇到“WebUI日志面板不见了”的问题,Claude Code排查出是#canvas的min-height:2000px撑破了flex布局,建议将日志面板改为内部滚动区,修改后立即恢复正常。

  • 架构优化建议:在节点图引擎开发初期,Claude Code根据需求提出“拓扑数据与渲染分离”的设计思路,避免后端逻辑与前端UI耦合,为后续功能扩展预留了空间。

现状:迭代出的DragonCAD v1.0

经过快速迭代,当前DragonCAD v1.0版本已具备完整的参数化建模能力,核心特性如下:

  • 组件能力:40+原生适配器,涵盖几何体绘制、变换操作、逻辑控制、网格处理等常用功能,满足基础参数化设计需求。

  • 可视化能力:完整的节点图编辑器,支持拖拽、连线、参数调整,拓扑执行数据流清晰可见。

  • 交互能力:3D视口与物体直接交互,支持选取、拖拽、删除,操作直观流畅。

  • 扩展能力:AI动态扩展(需DeepSeek API Key),未知GUID自动生成适配器,缓存机制提升响应效率。

  • 稳定性与实用性:内置日志面板、GUID缓存、跨域CORS支持、线程安全机制,确保系统稳定运行。

S已在内部验证了复杂工作流程:绘制Sphere(球体)→ 连线Move(移动)→ 连线Scale(缩放)→ 点击Execute All → 球体先移动10单位,再放大2倍,整个过程无冗余物体残留,操作流程流畅,验证了系统的稳定性和实用性。

总结:用自然语言驱动CAD软件进化

DragonCAD的开发实例,彻底打破了“AI只能辅助编码”的固有认知,证明了AI原生软件开发已从科幻走向现实。通过Claude Code等大型语言模型,我们可以用自然语言描述架构、生成代码、自动调试、迭代演进,将人类开发者从繁琐的编码工作中解放出来,专注于“需求陈述–测试反馈–方向抉择”的核心环节。

整个项目从最小MVP到完整的参数化工作流,仅用了不到两个消失的时间,总代码变更超过2000行,高效完成了从0到1的突破。这种人机协同的开发模式,不仅提升了开发效率,更降低了CAD软件开发的门槛,让“用自然语言指挥计算机造物”成为可能。

下一步计划

基于当前版本,我们将继续完善DragonCAD的核心能力,朝着“更智能、更易用”的方向迭代:

  1. 完善节点图管理:支持节点图的保存、加载,满足多场景复用需求。

  2. 增加撤销/重做功能:提升操作容错率,优化用户体验。

  3. 强化AI辅助建模:实现自然语言直接生成电池连线,无需手动拖拽,进一步简化设计流程。

  4. 开源发布:后续将发布完整源代码和设计文档,邀请更多开发者参与迭代,推动AI原生CAD技术的普及。

DragonCAD已完成内部开源,欢迎关注后续发布的完整资源,一起探索自然语言驱动设计软件的更多可能。