项目概述
本章节探讨AI技术与在线CAD相结合,能否打造一个能让CAD"听懂人话"的智能助手。
核心价值:告别繁琐的手动绘图,用自然语言就能完成CAD设计。无论是建筑工程师、机械设计师,还是CAD开发者,都能通过AI大幅提升工作效率。
为什么选择MxCAD来做CAD智能系统?
1. 原子化API - AI时代的CAD开发利器
传统CAD软件的问题是:你只能用它给你的功能,比如"画直线"、"画圆"这样的整体功能。但MxCAD的API把所有功能都拆得特别细,就像乐高积木一样:
// 传统方式:只能调用drawCircle()
drawCircle(center, radius);
// MxCAD原子化API:AI可以精确控制每个细节
const center = new McGePoint3d(100, 100, 0); // 精确控制圆心
const circle = new McDbCircle(); // 创建圆对象
circle.center = center; // 设置圆心
circle.radius = 50; // 设置半径
circle.trueColor = new McCmColor(255, 0, 0); // 精确控制颜色
entitys.push(circle); // 添加到图纸
这对AI意味着什么?
- -AI可以像人类工程师一样思考,理解每个几何元素的含义
- -可以精确控制颜色、图层、线型等所有属性
- -能处理复杂的空间变换和几何计算
- -生成的代码质量更高,更符合工程规范
2. 智能体策略 - 让AI像专业工程师一样思考
我们设计了三种AI智能体,各自负责不同的专业领域:
A.建模智能体(ModelingAgent)
专业领域:CAD图形创建和迭代修改
工作流程:
- 1.接收自然语言指令(如"画一个带圆角的矩形,长100宽60,圆角半径5")
- 2.分析需求,拆解为几何元素
- 3.生成精确的MxCAD代码
- 4.在沙箱中预览效果
- 5.自动修复可能的错误
- 6.最终插入到图纸中
技术亮点:
- -支持代码迭代修改:"刚才那个矩形,把圆角改成10"
- -自动管理实体数组,避免重复和遗漏
- -智能错误修复:代码执行失败时自动分析错误并修复
- -最多重试3次,确保成功率
B.通用智能体(DefaultAgent)
专业领域:CAD图纸操作和查询
典型任务:
- -"选中所有长度大于100的直线"
- -"把图层"标注"的颜色改成红色"
- -"计算这个区域的面积"
- -"导出选中的实体为DXF"
技术亮点:
- -理解CAD专业术语和概念
- -能操作图层、线型、标注等CAD特有功能
- -支持复杂的选择条件和过滤
C.意图识别智能体(IntentRecognitionAgent)
角色:智能调度员
工作原理:
- 1.关键词匹配:快速识别用户意图(如包含"画"、"创建"等词 → 建模智能体)
- 2.LLM深度分析:复杂请求调用大语言模型分析
- 3.智能路由:自动选择最合适的智能体处理
优势:用户无需手动选择模式,系统智能判断
3.安全沙箱-让AI代码安全运行
为什么需要沙箱?
AI生成的代码可能包含错误、无限循环或恶意代码,直接在主应用中执行可能导致崩溃或数据丢失。
我们的解决方案:
用户输入 → AI生成代码 → 沙箱预览 → 错误检测 → 自动修复 → 用户确认 → 插入图纸
技术实现:
- -在隔离的iframe中执行代码
- -限制访问DOM和本地存储
- -捕获所有错误信息
- -提供详细的错误堆栈分析
- -支持最多3次自动修复尝试
用户体验:
- -实时预览AI绘图效果
- -确认无误后再插入图纸
- -随时取消或重新生成
- -支持撤销操作
AI功能详解
自然语言到CAD代码转换
示例1:绘制复杂机械零件
- AI生成代码:
- // 创建外圆
- const outerCircle = new McDbCircle();
- outerCircle.center = new McGePoint3d(0, 0, 0);
- outerCircle.radius = 100;
- entitys.push(outerCircle);
- // 创建内圆
- const innerCircle = new McDbCircle();
- innerCircle.center = new McGePoint3d(0, 0, 0);
- innerCircle.radius = 50;
- entitys.push(innerCircle);
- // 创建6个螺栓孔
- for (let i = 0; i < 6; i++) {
- const angle = (i * 60) * Math.PI / 180;
- const hole = new McDbCircle();
- hole.center = new McGePoint3d(75 * Math.cos(angle), 75 * Math.sin(angle), 0);
- hole.radius = 10;
- entitys.push(hole);
示例2:建筑平面图
用户:画一个10m×8m的房间,墙厚240mm,门宽900mm在右侧墙中央
AI自动计算所有尺寸,生成符合建筑规范的墙体和门窗
智能代码优化
自动补全import语句:
- // AI生成的代码可能缺少import
- const line = new McDbLine(); // 错误:McDbLine未定义
- // 系统自动补全
- import { McDbLine, McGePoint3d } from "mxcad";
- const line = new McDbLine(); // 正确
管理实体数组:
- // AI可能忘记将实体添加到图纸
- const circle = new McDbCircle();
- // 缺少 entitys.push(circle);
- // 系统自动检测并添加
- const circle = new McDbCircle();
- entitys.push(circle); // 自动添加
智能修复语法错误:
- // AI可能生成有语法错误的代码
- const point = new McGePoint3d(0, 0, 0) // 缺少分号
- // 系统自动修复
- const point = new McGePoint3d(0, 0, 0); // 自动添加分号
多AI模型支持
支持的AI提供商:
- -OpenRouter:统一接口,支持DeepSeek、Llama、Gemini等100+模型
- -OpenAI:GPT-4、GPT-3.5等官方模型
- -iFlow:国产大模型,包括通义千问、Kimi、DeepSeek等
- -自定义:支持任何OpenAI兼容的API
模型选择策略:
- -免费模型:适合测试和简单任务
- -付费模型:适合复杂任务和高质量要求
- -国产模型:适合数据安全要求高的场景
实际应用场景
场景一:建筑工程师 - 快速绘制标准户型
传统方式:
- 1.打开CAD软件
- 2.选择画线工具
- 3.输入起点坐标(0,0)
- 4.输入终点坐标(10000,0) // 10米墙
- 5.重复步骤3-4,画4面墙
- 6.选择偏移工具,偏移240mm生成内墙线
- 7.选择修剪工具,修剪墙角
- 8.插入门、窗图块
- 9.添加尺寸标注
- 10.整个过程约15-30分钟
AI方式:
- 输入:画一个10m×8m的房间,墙厚240mm,门宽900mm在右侧墙中央,窗宽1500mm在左侧墙中央
- AI响应:✅ 已生成标准房间平面图
- - 外墙:10m×8m,墙厚240mm
- - 门:900mm宽,位于右侧墙中央
- - 窗:1500mm宽,位于左侧墙中央
- - 已添加尺寸标注
- 用时:10秒
场景二:机械设计师 - 参数化零件设计
传统方式:
- -手动计算所有尺寸
- -逐个绘制每个特征
- -容易出错,修改困难
AI方式:
- 输入:生成一个M10螺栓,长度50mm,头部六角对边16mm
- AI响应:✅ 已生成M10螺栓模型
- 螺纹公称直径:10mm
- 螺栓长度:50mm
- 六角头对边宽度:16mm
- 符合GB/T 5782标准 用时:5秒
场景三:图纸修改-智能批量操作
传统方式:
- -手动查找需要修改的元素
- -逐个修改,耗时且容易遗漏
AI方式:
- 输入:把所有标注文字的字体改成仿宋,字高改为3.5mm
- AI响应:✅ 已修改23个标注对象
- 字体:仿宋
- 字高:3.5mm
- 修改对象:23个尺寸标注 用时:3秒
技术架构深度解析
代码执行流程
核心模块说明
1. agents/AgentStrategy.ts
- -智能体策略接口定义
- -智能体实例管理
- -智能体选择逻辑
2. agents/ModelingAgent.ts
- -CAD建模专用智能体
- -代码生成与修改
- -错误自动修复
3. agents/IntentRecognitionAgent.ts
- -用户意图识别
- -智能体路由调度
- -对话状态管理
4. core/LLMClient.ts
- -多AI提供商支持
- -请求管理与取消
- -错误处理与重试
5. core/codeModificationUtils.ts
- -代码智能修改
- -JSON指令解析
- -语法错误修复
6. sandbox.ts
- -沙箱环境初始化
- -代码安全执行
- -错误信息捕获
7. services/openRouterAPI.ts
- -AI模型管理
- -API配置管理
- -模型缓存机制
快速体验AI智能体服务
首先打开demo2.mxdraw3d.com:3000/mxcad/, 如下图:
![]()
打开AI服务会弹出一个胶囊输入框。
![]()
![]()
我们需要线配置AI的api接口。这里我们选择iflow AI服务 这是目前国内免费的最佳供应商,如下图:
![]()
具有配置如下:
首先我们打开iflow.cn 登录账号,然后我们鼠标移入头像,找到api管理,如下图:
![]()
我们把api key填写到MxCAD AI服务中,如下图:
![]()
选择模型商: iFlow
填写API Key: 刚刚复制的key粘贴在这里, 模型选择: 支持很多模型,都可以,甚至稍微差一些的模型都可以,iFlow目前所有的模型都是免费使用。
就可以开始在胶囊输入框内输入你的需求了,比如:一个比较抽象的需求, "画一朵花" 然后按下回车键,如下图:
![]()
等待一会儿, 就把代码生成出来给你看,并且还有预览效果,如果满意的话点击确认就可以把这朵花插入到图元中了。如果不满意,我们可以继续与AI对话进行修改,如下图:
![]()
比如现在我们觉得这个花不够精致。我们和AI说, “花不够精致”。然后按下回车键,如下图:
![]()
![]()
我们可以不断的让AI修改代码,从而达到一个满意的效果。但要真正投入使用,还需要结合具体的需求调整提示词和整个智能体的流程,以上演示的是建模智能体的能力。而通用智能体的能力,目前主要是用于操作一些实体。
比如:"选中实体按照原本比例放大10倍,间距还是原本的间距"
![]()
我们点击生成的代码点击运行,效果就出来了,如下图:
![]()
还有很多操作,只要是代码可以完成的操作,都可以通过AI配合网页CAD完成。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.