用 Codex + MCP 驱动 SolidWorks 全自动出图:从环境准备到验收的完整实操教程(TaoToken 统一 Key 接入版) 1. 为什么要在 Windows 上用 Codex MCP 驱动 SolidWorks 出图如果你平时用 SolidWorks 画零件一定遇到过这种场景一个法兰、一块安装板、一组标准件尺寸参数都差不多但每次都要手动新建零件、画草图、拉伸、打孔、导出 STEP。重复劳动多还容易漏步骤。Codex MCP 驱动 SolidWorks 全自动出图本质上是把「建模 → 读属性 → 导出多格式 → 转回原生」这条链路交给 AI 调度你只需要用自然语言描述需求剩下的交给本机的 MCP 服务和 PowerShell 脚本。这套方案适合谁适合已经装了 SolidWorks、日常要出标准件或参数化零件的机械工程师、自动化设备开发者以及想把 AI 接进 CAD 工作流的独立开发者。它跑在 Windows 10/11 本地不依赖云端渲染SolidWorks 直接生成原生 .SLDPRT再导出 STEP/STL/IGES/X_T。整个链路的核心是三个东西Codex CLI 负责理解你的指令MCP 服务负责把指令翻译成 SolidWorks 能执行的 COM 调用PowerShell 脚本负责调度和文件管理。我试过把这套流程跑通之后一个参数化法兰从描述到出图大概几十秒比手动建模快很多而且每次输出路径统一、报告可查。下面按「环境准备 → 统一 Key 接入 → 配置 → 验证 → 排障 → 验收」的顺序把每一步都写成可复制、可跟做的操作。在开始之前先确认本机满足 6 项前置条件任何一项不满足后面都会卡住前置条件检查命令合格标准Windows 10/11winver版本号 ≥ 1903SolidWorks 已安装手动打开SLDWORKS.exe能正常新建零件Node.js 已安装node -v任意版本Python 已安装python --versionPython 3.7pywin32 已安装python -c import win32com.client无报错Codex CLI 可用codex --help输出帮助信息如果 pywin32 没装执行python -m pip install pywin32这一步别跳过。SolidWorks 的自动化靠的是 COM 接口pywin32 是 Python 调 COM 的桥梁缺了它后面com_dispatch_ok检查一定失败。2. TaoToken 统一 Key 接入让 Codex 稳定调用模型Codex CLI 本身要连模型才能工作。如果你直接用官方端点可能会遇到网络不稳定、额度分散、多个工具各配一套 Key 的问题。TaoToken 的作用是提供一个统一的 API 入口你申请一个 Key就能在 Codex、Cline、Claude Code 等多个工具里复用省去到处找配置的麻烦。先说清楚它是什么TaoToken 是一个 AI 模型 API 聚合服务提供兼容 OpenAI 风格的接口你可以把它理解成「一个 Key 管多个模型调用」。它适合需要长期跑编码、Agent 任务的人也适合像本文这样把 Codex 接进本地自动化链路的场景。官网地址是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 端点是 https://taotoken.net/api 。接入分三步拿 Key、配 Codex、验证连通。第一步登录控制台创建 API Key。打开 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite 在 API Keys 页面新建一个 Key复制保存。这个 Key 后面要写进 Codex 的配置文件别弄丢。第二步配置 Codex 的模型端点。Codex CLI 的配置通常放在用户目录下的.codex文件夹里。你需要设置 Base URL 和 API Key。以环境变量方式配置最省事$env:OPENAI_API_KEY 你的TaoToken Key $env:OPENAI_BASE_URL https://taotoken.net/api如果你希望持久化可以写进系统环境变量或者写进 Codex 的配置文件。注意 Base URL 用https://taotoken.net/api不要加多余的路径后缀。第三步验证模型能通。执行一个最简单的对话请求codex 用一句话说明什么是参数化建模如果返回了正常文本说明 Key 和端点都通了。如果报 401说明 Key 不对或没生效如果报连接超时检查 Base URL 是否写错。你也可以直接在模型对话页面先测一下 Key 是否可用 https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodelsutm_campaignrewrite 。这里有个关键点Codex 要调用 MCP 工具模型本身得支持工具调用function calling。TaoToken 上主流的编码模型基本都支持选一个你常用的即可。如果你后面要长期跑 Agent 任务可以考虑 Coding Plan额度更集中 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 。统一 Key 的好处在这里体现得很明显Codex 用这个 KeyMCP 服务如果需要调模型也用这个 Key后面你接 Claude Code 还是同一个 Key。不用每个工具配一遍排障时也只需要检查一个地方。3. 可复制配置目录结构、主配置文件与 MCP 注册这一节是整套系统的骨架。配置写对了后面基本一路顺配置写错文件会生成到莫名其妙的地方。我按「建目录 → 写入口脚本 → 写主配置 → 部署技能 → 搭 MCP → 注册」的顺序来。先建 AI 管理根目录。打开 PowerShell建议管理员身份一次性执行New-Item -ItemType Directory -Force -Path D:\solidworks\project\ai, D:\solidworks\project\ai\part, D:\solidworks\project\ai\asm, D:\solidworks\project\ai\drw, D:\solidworks\project\ai\project, D:\solidworks\project\ai\export, D:\solidworks\project\ai\temp, D:\solidworks\project\ai\temp\script, D:\solidworks\project\ai\report, D:\solidworks\project\ai\mcp再建项目工作区目录New-Item -ItemType Directory -Force -Path D:\UsersData\Documents\Codex\2026-05-28\ai-3d-codex-solidwork, D:\UsersData\Documents\Codex\2026-05-28\ai-3d-codex-solidwork\system, D:\UsersData\Documents\Codex\2026-05-28\ai-3d-codex-solidwork\system\config, D:\UsersData\Documents\Codex\2026-05-28\ai-3d-codex-solidwork\system\scripts, D:\UsersData\Documents\Codex\2026-05-28\ai-3d-codex-solidwork\docs两个根目录分工明确D:\solidworks\project\ai是所有 AI 生成文件的落点D:\UsersData\Documents\Codex\...\ai-3d-codex-solidwork是脚本和配置的工作区。接着写统一入口脚本sw-ai.ps1路径是D:\UsersData\Documents\Codex\2026-05-28\ai-3d-codex-solidwork\sw-ai.ps1Set-StrictMode -Version Latest $ErrorActionPreference Stop $scriptPath Join-Path $PSScriptRoot system\scripts\sw-ai.ps1 $output ( powershell -ExecutionPolicy Bypass -File $scriptPath args 21 | ForEach-Object { $_.ToString() }) if ($LASTEXITCODE -ne 0) { throw ($output -join [Environment]::NewLine) } ($output -join [Environment]::NewLine).Trim()这个脚本是最外层转发层把命令和参数原封不动传给内层调度器隔离执行策略问题。然后写主配置文件路径D:\UsersData\Documents\Codex\2026-05-28\ai-3d-codex-solidwork\system\config\solidworks-ai-system.json{ managed_workspace_root: D:\\solidworks\\project\\ai, stage_root: D:\\solidworks\\project\\ai\\temp, temp_script_root: D:\\solidworks\\project\\ai\\temp\\script, solidworks_exe: D:\\solidworks\\SOLIDWORKS\\SLDWORKS.exe, template_path: C:\\ProgramData\\SOLIDWORKS\\SOLIDWORKS 2025\\templates\\gb_part.prtdot, skill_root: C:\\Users\\你的用户名\\.codex\\skills\\solidworks-cad-automation, subdirectories: [part, asm, drw, project, export, temp, report], default_export_formats: [STEP, STL, IGES, X_T], smoke_test_flange: { outer_diameter_mm: 160, center_hole_diameter_mm: 72, bolt_circle_diameter_mm: 120, bolt_hole_count: 8, bolt_hole_diameter_mm: 14, thickness_mm: 18 } }注意skill_root里的用户名要换成你实际的 Windows 用户名solidworks_exe和template_path按你的安装路径调整。技能目录放在C:\Users\你的用户名\.codex\skills\solidworks-cad-automationscripts子目录下需要 7 个文件new-parametric-flange.ps1、new-part-from-vbs.ps1、convert-to-sldprt.ps1、export-solidworks-file.ps1、inspect-solidworks-file.ps1、solidworks-common.ps1、solidworks_file_ops.py。其中solidworks-common.ps1的 COM 启动逻辑必须写成新建干净会话 正确写法 - 始终新建干净 COM 会话 Set app CreateObject(SldWorks.Application) app.Visible True不要用GetObject(, SldWorks.Application)那会接管可能已经损坏的旧会话导致后续操作随机失败。同时确认StageRoot和TempRoot默认值指向D:\solidworks\project\ai\temp和D:\solidworks\project\ai\temp\script。MCP 服务端文件放到D:\solidworks\project\ai\mcp\至少包含server.js、package.json、package-lock.json、node_modules\、README.md。检查server.js里三个常量const SW_EXE D:\\solidworks\\SOLIDWORKS\\SLDWORKS.exe; const DEFAULT_OUTPUT_ROOT D:\\solidworks\\project\\ai\\part; const DEFAULT_TEMP_ROOT D:\\solidworks\\project\\ai\\temp\\script;三项都指向 AI 管理区才算对。然后装依赖cd D:\solidworks\project\ai\mcp npm install确认package.json里有核心依赖{ dependencies: { modelcontextprotocol/sdk: ^1.29.0, zod: ^4.4.3 } }最后注册 MCP 到 Codex。先清旧注册再重新注册codex mcp remove solidworks-local codex mcp add solidworks-local -- node D:\solidworks\project\ai\mcp\server.js codex mcp get solidworks-local输出里必须看到enabled: true、transport: stdio、command: node、args: D:\solidworks\project\ai\mcp\server.js。这三件套Base URL Key Model ID在 Codex 侧对应的是 TaoToken 的端点、Key 和你选的模型 IDMCP 侧对应的是 node 命令、server.js 路径和 stdio 传输方式两边都对齐了链路才通。4. 验证请求从初始化到烟雾测试跑通全链路配置写完不代表能用必须一步步验证。这一节给出完整的验证动作和成功标志。第一步初始化 AI 管理区powershell -ExecutionPolicy Bypass -File D:\UsersData\Documents\Codex\2026-05-28\ai-3d-codex-solidwork\sw-ai.ps1 init-root成功后D:\solidworks\project\ai下所有子目录就位。第二步跑健康检查powershell -ExecutionPolicy Bypass -File D:\UsersData\Documents\Codex\2026-05-28\ai-3d-codex-solidwork\sw-ai.ps1 health必须通过 7 项检查检查项期望值失败时怎么办solidworks_exe_existstrue检查 SolidWorks 安装路径template_existstrue确认模板文件路径skill_root_existstrue确认技能脚本目录skill_scripts_missing[]补充缺失脚本python_modules_oktrue运行 pip install pywin32com_dispatch_oktrue检查 SolidWorks 能否启动overall_oktrue以上全为 true报告写入D:\solidworks\project\ai\report\health-时间戳.json打开能看到每一项的详细结果。第三步跑烟雾测试这是全链路验证powershell -ExecutionPolicy Bypass -File D:\UsersData\Documents\Codex\2026-05-28\ai-3d-codex-solidwork\sw-ai.ps1 smoke-test烟雾测试会自动完成创建标准法兰 → 读取属性 → 导出 STEP/STL/IGES/X_T → 把 STEP 转回原生 SLDPRT → 生成报告。通过标准是验收项成功标志零件建模part\下生成.sldprt属性读取属性 JSON 成功输出格式导出.step.stl.igs.x_t均存在格式转换STEP 转回的.sldprt已生成整体状态overall_ok true报告写入D:\solidworks\project\ai\report\smoke-test-时间戳.json。跑通之后日常使用命令速查如下。创建参数化法兰powershell -ExecutionPolicy Bypass -File ...\sw-ai.ps1 new-flange -Name main-flange输出D:\solidworks\project\ai\part\main-flange.sldprt。自定义 VBS 建模powershell -ExecutionPolicy Bypass -File ...\sw-ai.ps1 new-part-from-vbs -BodyFile D:\solidworks\project\ai\temp\custom-body.vbs -Name custom-part批量格式导出powershell -ExecutionPolicy Bypass -File ...\sw-ai.ps1 export -SourcePath D:\solidworks\project\ai\part\main-flange.sldprt -Formats (STEP,STL,IGES,X_T)中性格式转原生powershell -ExecutionPolicy Bypass -File ...\sw-ai.ps1 convert -SourcePath D:\solidworks\project\ai\export\main-flange\main-flange.step读取模型属性powershell -ExecutionPolicy Bypass -File ...\sw-ai.ps1 inspect -SourcePath D:\solidworks\project\ai\part\main-flange.sldprt这些命令跑通说明 Codex MCP SolidWorks 的链路已经完整可用。你可以直接在 Codex 里用自然语言描述零件让它调用 MCP 工具完成建模和导出。5. 本篇常见错排查401、local proxy failed、reading choices、OAuth这一节对照真实报错给出排查路径。这些坑我基本都踩过按顺序查能省很多时间。401 Unauthorized。这个最常见出现在 Codex 调模型时。原因通常是 TaoToken Key 没生效或写错。检查$env:OPENAI_API_KEY是否设置正确Base URL 是否是https://taotoken.net/api。如果你在多个终端里操作注意环境变量只在当前会话有效新开窗口要重新设。持久化的话写进系统环境变量。另外确认 Key 没有多余空格复制时容易带上换行。local proxy failed。这个报错说明 Codex 尝试走本地代理但失败了。检查你的网络配置确认没有残留的代理设置指向一个不存在的端口。如果你之前配过代理清掉HTTP_PROXY、HTTPS_PROXY环境变量。同时确认 TaoToken 的 Base URL 能直接访问不需要额外代理。reading choices 报错。这个通常出现在模型返回格式不符合预期时比如你选的模型不支持工具调用或者返回的 JSON 结构不对。检查你选的模型 ID 是否支持 function calling。如果 Codex 在调 MCP 工具时报这个错说明模型没能正确生成工具调用参数换一个支持工具调用的编码模型试试。OAuth 相关报错。如果你用的是需要 OAuth 登录的工具比如某些 Claude Code 场景报 OAuth 失败通常是 token 过期或回调地址不对。检查你的登录状态重新走一遍授权流程。如果是在 Codex 里接 Claude Code 的 Anthropic 端点确认配置的是正确的 API 端点参考文档 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 。除了模型侧SolidWorks 侧也有几个高频问题。COM 会话损坏表现为脚本随机失败解决方法是确保solidworks-common.ps1用的是CreateObject而不是GetObject。残留进程卡死时优先排查残留的cscript.exe和SLDWORKS.exe在任务管理器里结束掉再重试。MCP 注册路径错误codex mcp get solidworks-local看 args 是否指向正确的server.js路径错了就重新注册。还有一个容易忽略的点temp\script目录里的 VBS 缓存文件如果堆积太多可能导致文件名冲突。定期跑tidy清理。如果你要接 Claude Code 做代码辅助Anthropic 端点的配置参考 https://taotoken.net/claude-code-anthropic?utm_sourcetaotoken_aicg_blog_endutm_contentclaude-code-anthropicutm_campaignrewrite 。排查顺序建议先确认模型侧通401/proxy/choices/OAuth再确认 MCP 注册对最后确认 SolidWorks COM 能启动。三层都通链路就稳了。6. 验收清单与长期维护让这套系统稳定跑下去搭好只是开始能长期稳定跑才是目的。这一节给出验收清单和维护规则。验收清单按顺序核对验收项检查方式通过标准目录结构看D:\solidworks\project\ai10 个子目录齐全主配置打开solidworks-ai-system.json路径均指向实际位置技能脚本看 skill_root 下 scripts7 个文件齐全MCP 注册codex mcp get solidworks-localenabled: true健康检查跑healthoverall_ok: true烟雾测试跑smoke-testoverall_ok: true模型连通Codex 发一句对话正常返回导出格式看 export 目录四种格式都在长期维护记住 5 条规则。第一每次大更新后先跑health再跑smoke-test确认系统完整性。第二所有 AI 自动化文件只放D:\solidworks\project\ai不随手丢桌面或下载目录否则路径管理会乱。第三外部中文路径项目先用import-project导入再操作避免中文路径导致 COM 调用异常。第四定期跑tidy清理历史测试残留和 VBS 脚本缓存。第五出现卡死时按「残留 cscript.exe → 残留 SLDWORKS.exe → MCP 注册路径」的顺序排查。关于并发不建议一台机器同时跑多个 AI 建模任务。SolidWorks COM 接口并发支持弱多个任务同时写temp\script容易 VBS 文件冲突。串行执行一个完成再启动下一个。关于import-project它把外部目录完整复制到D:\solidworks\project\ai\project\ProjectName不改原目录。后续操作从复制后的英文路径进行原项目保持不变。这个设计对保护原始数据很有用。最后说一个实际经验这套系统的价值不在于「让 AI 画一个零件」而在于把出图这件事变成可追溯、可复现的流程。每次生成的报告都在report目录里出了问题能查是哪一步失败。你可以在 Codex 里直接说「帮我建一个外径 200、中心孔 80、8 个 M12 螺栓孔的法兰导出 STEP 和 STL」它会调 MCP 工具完成。跑通之后日常出标准件的时间能省下不少。如果你还没拿 Key先去控制台建一个 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 。长期跑编码和 Agent 任务的话Coding Plan 更划算 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 。