写点什么

云 CAD 结合 AI 实现文生 DWG 图纸

作者:WEB CAD SDK
  • 2025-12-05
    四川
  • 本文字数:3448 字

    阅读完需:约 11 分钟

云CAD结合AI实现文生DWG图纸

一、项目概述

本章节将探讨 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:绘制复杂机械零件

用户:画一个法兰盘,外径200,内径100,6个直径20的螺栓孔均匀分布
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生成的代码可能缺少importconst 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 粘贴在这里模型选择: 支持很多模型,都可以,甚至稍微差一些的模型都可以 比如 qwen3-32b 这种都可以。iFlow 目前所有的模型都是免费使用。然后我们点击“保存”按钮。就可以开始在胶囊输入框内输入你的需求了。


比如:一个比较抽象的需求, "画一朵花" 然后按下回车键,如下图:

等待一会儿, 就把代码生成出来给你看,并且还有预览效果,如果满意的话点击确认就可以把这朵花插入到图元中了。如果不满意,我们可以继续与 AI 对话进行修改,如下图:

比如现在我们觉得这个花不够精致。我们和 AI 说, “花不够精致”。然后按下回车键,如下图:


我们可以不断的让 AI 修改代码,从而达到一个满意的效果。但要真正投入使用,还需要结合具体的需求调整提示词和整个智能体的流程。

以上演示的是建模智能体的能力,而通用智能体的能力,目前主要是用于操作一些实体。比如:"选中实体按照原本比例放大 10 倍,间距还是原本的间距"

我们点击生成的代码点击运行,效果就出来了,如下图:

还有很多操作,只要是代码可以完成的操作,都可以通过 AI 配合网页 CAD 完成。

用户头像

WEB CAD SDK

关注

还未添加个人签名 2024-10-16 加入

还未添加个人简介

评论

发布
暂无评论
云CAD结合AI实现文生DWG图纸_WEB CAD SDK_InfoQ写作社区