mcpField
S
SolidWorks

SolidWorks

本地服务
github.com/hjbaard媒体与设计19今天更新

关于 SolidWorks

SolidWorks MCP 让 AI Agent 在 Windows 上运行中的 SolidWorks 中创建并检查参数化零件和装配体。其类型化工具会返回实测几何数据,供 Agent 验证每一步建模结果,而非凭外观判断。

主要功能

  1. 01参数化零件与装配体建模
  2. 02实测几何和质量属性
  3. 03草图尺寸与配合验证
  4. 04导出 STEP、STL 和 3MF
  5. 05类型化工具,不执行任意代码

适用场景

  1. 01按尺寸规格构建零件
  2. 02将建模体积与计算结果核对
  3. 03编辑现有零件和草图
  4. 04导出模型用于 3D 打印

MCP 相关

该服务通过 stdio 向 MCP 客户端提供 SolidWorks 建模与检查工具。它连接到 Windows 上已运行的 SolidWorks 实例。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"hjbaard-solidworks": {
"command": "uvx",
"args": [
"solidworks-mcp"
]
}
}
}
启动命令uvx solidworks-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypisolidworks-mcp0.17.0

工具

86

收录的工具列表 · 更新于 今天

此工具无需参数。

详细介绍

SolidWorks MCP

PyPI License: MIT

让 AI Agent(Claude 或任何其他 MCP 客户端)在你自己的 SolidWorks 中建模真实的参数化零件和装配体,并检查自己的工作。每次建模调用都会返回测量得到的体积、质量和边界框,因此 Agent 可以将结果与规格进行比较并自行修正,而不是猜测它「看起来差不多」。

带沉孔、螺栓圆和电缆槽的 3D 打印安装支架 带有真实可打印 ISO 公制螺纹的 M10 螺栓 旋转并抽壳的花瓶

带圆角弯曲的扫掠管道 放样并抽壳的喇叭

由工具本身构建:安装支架(每个步骤都经过手工计算验证)、带有真实螺纹的 M10 螺栓、旋转并抽壳的花瓶、扫掠管道、放样并抽壳的喇叭。

为什么选择此服务

  • 它会验证,而不只是生成。 特征会报告测量得到的几何数据;重建后还会重新测量尺寸和配合。
  • 完全定义的草图。 每个草图都像设计师那样进行约束:尺寸从原点标注,仅在几何恰好水平、垂直或位于原点时使用关系。工具会按角色返回尺寸(width@Sketch1),因此无论在 SolidWorks 中还是通过 Agent 操作,零件都能保持可编辑。
  • 真正的 CAD,而不只是基本图元。 拉伸、旋转、扫掠、放样和样条曲线;可在任意面上创建孔、沉孔、槽和凹口;多边形圆角;通过 Hole Wizard 创建 ISO 孔;真实的 ISO 公制螺纹;圆角、倒角、抽壳、阵列、镜像、加强筋、方程式和材料。带配合和干涉检查的装配体。STEP/STL/3MF 导出和截图。雕刻和浮雕文字。处理现有零件:列出、删除、压缩和重新排序特征;读取、拉伸和切除他人绘制的草图;导入 STEP。为零件或组件设置颜色。包含同心和角度配合的关节,并在其运动范围内进行检查。可打印性检查和标注尺寸的工程图。可设置任意偏移或角度的基准面。每个零件可包含多个实体,并可执行合并和拆分。可变圆角和全圆角。带相切圆弧和样条曲线的自由草图。总计 86 个工具。
  • 出错时会明确报错。 无法完成请求的调用会返回 {ok: false, error} 并说明原因,绝不会悄悄生成错误几何。
  • 固定且类型明确的工具接口。 没有「运行任意代码」工具;Agent 只能执行工具允许的操作。
  • 经过真实 SolidWorks 测试。 共 697 项测试;每个特征的集成测试都会将结果与手工计算进行比较。
  • 本地运行。 它通过 COM 与正在运行的 SolidWorks 通信;服务本身不会发起网络调用。

快速开始

  1. 安装 uv。

  2. 启动 SolidWorks 并保持运行(服务会连接到正在运行的实例,不会启动新实例)。

  3. 在 MCP 客户端中注册该服务。

    Claude Code:

    claude mcp add solidworks -- uvx solidworks-mcp
    

    Claude Desktop(claude_desktop_config.json)或其他客户端:

    {
      "mcpServers": {
        "solidworks": {
          "command": "uvx",
          "args": ["solidworks-mcp"]
        }
      }
    }
    

    它也已列入官方 MCP 注册表,条目为 io.github.hjbaard/solidworks-mcp。

  4. 提出零件设计需求,例如:

    设计一块 100 × 80 × 8 mm 的安装板,带一个直径为 Ø16 mm 的中心通孔、四个距角点 12 mm 的 M5 沉孔,以及 R5 圆角。将体积与自行计算的结果进行核对,然后导出精细 STL。

面向 Agent 的指南

服务连接时会向每个 MCP 客户端提供简短的建模指南(约定、逐步验证和已知问题)。完整指南是资源 solidworks://guide:其中包含孔、筋、螺纹和装配体的操作方法、3D 打印建议,以及如何根据网格(STL/3MF)逆向工程零件。相同内容也位于 src/solidworks_mcp/guide.md。

要求和兼容性

  • Windows,已安装 SolidWorks、具有许可证并且正在运行。

  • Python 3.11+(如有需要,uv 会下载)。

  • Y-up 零件模板,这是 SolidWorks 的标准模板。自 SOLIDWORKS 2025 起,新零件也可以采用 Z-up;工具会在 Y-up 坐标系中构建,并在遇到 Z-up 零件时拒绝操作并说明原因。

  • 已在 SOLIDWORKS 2026(3DEXPERIENCE R2026x)上测试。使用的 API 调用自 SOLIDWORKS 2020 SP2 起就已存在,因此 2020–2025 也应该可以运行,但未经测试。要检查你的安装,请在 SolidWorks 运行时执行:

    uvx solidworks-mcp --selftest
    

    它会构建几个小零件,将每个零件与手动计算结果进行比较,然后不保存并关闭这些零件。无论是否成功,请将输出粘贴到兼容性报告中。

状态:早期版本(0.x)。 端到端流程可以运行,但工具名称和约定仍可能变化。请参阅 CHANGELOG.md。

故障排除

  • 先运行自检:uvx solidworks-mcp --selftest 会显示你的 SolidWorks 版本、语言和模板,以及可用的工具类别。请将其输出附加到错误报告中。
  • “未找到正在运行的 SolidWorks”/连接失败——启动服务或运行脚本前,SolidWorks 必须处于运行中状态;服务会通过 GetActiveObject 连接到活动实例,不会启动新实例。
  • 首次调用缓慢或 EnsureModule 出错——首次 COM 调用会在临时 gen_py 文件夹下生成 makepy 类型库包装器。请等待其完成;如果状态异常,请删除 gen_py 缓存并重试。此构建必须使用早期绑定(见架构)。
  • 某项功能返回 {ok: false, error: ...}——这是有意设计的:每个工具都会明确报错并提供易读的消息,而不是悄悄生成错误几何体。请阅读消息,其中会指出可能的原因。
  • 仅在 SOLIDWORKS 2026(3DEXPERIENCE R2026x)上测试过。 在其他版本中,已验证的枚举值或方法签名可能不同——请重新运行 scripts/introspect_api.py,检查已安装的类型库。

开发

克隆仓库,然后将其以可编辑模式安装到 venv 中:

python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -e .[dev]

要从此检出版本运行 MCP 服务,而不是通过 uvx 运行,请将客户端指向 venv 中的 Python:

{
  "mcpServers": {
    "solidworks": {
      "command": "C:\\path\\to\\SolidWorks-MCP\\.venv\\Scripts\\python.exe",
      "args": ["-m", "solidworks_mcp.server"]
    }
  }
}
运行验证脚本

确保 SolidWorks 正在运行:

.\.venv\Scripts\python.exe scripts\probe_connection.py     # M0
.\.venv\Scripts\python.exe scripts\m1_block.py             # M1
.\.venv\Scripts\python.exe scripts\m2_parametric.py        # M2
.\.venv\Scripts\python.exe scripts\test_mcp_server.py      # M3 (full MCP loop over stdio)
.\.venv\Scripts\python.exe scripts\m5_demo_bracket.py      # M5 (3D-print bracket, every step verified)

scripts/introspect_api.py 会重新生成/检查已安装的类型库并打印已验证的枚举值——如果 SolidWorks 升级后签名发生变化,请运行该脚本。

测试
.\.venv\Scripts\python.exe -m pytest                 # all tests
.\.venv\Scripts\python.exe -m pytest -m "not solidworks"   # fast unit layer, no SolidWorks

分为两层:纯单元测试(单位、选择器/方向解析、多边形清理、组件放置计算,以及验证每个 MCP 工具是否将参数转发给正确的会话方法)可在任何环境中运行;集成测试(solidworks 标记)会驱动正在运行的 SolidWorks,并根据手动计算结果验证每个特征的体积,或每个组件的放置位置。如果无法连接到 SolidWorks,这些测试会自动跳过。

工具

该服务通过 stdio 使用 MCP 通信。

零件工具
工具用途
get_statusSolidWorks 是否可访问?修订版本、服务器版本、活动/当前零件
new_part创建新的空零件(并设为当前零件)
add_box(width_mm, height_mm, depth_mm, name)绘制矩形并拉伸;返回质量属性
add_cylinder(diameter_mm, height_mm, name)绕轴(Y 轴)将轮廓旋转 360°,生成圆柱
add_disc(diameter_mm, thickness_mm, name, x_mm, y_mm)圆盘/垫片/法兰:圆形沿 +Z 方向拉伸,中心位于 (x, y)(可组合孔和阵列)
add_cone(bottom_diameter_mm, top_diameter_mm, height_mm, name)通过旋转生成圆锥/圆锥台(顶部直径 Ø = 0 时生成完整圆锥)
add_revolved_profile(profile_mm, angle_deg, name, corner_radii_mm, axis_mm)绕 Y 轴旋转任意闭合 (radius, height) 轮廓(轴、花瓶、圆环);或绕 Front 平面上的任意直线 axis_mm 旋转 [x, y] 点;corner_radii_mm 用于圆角处理边缘
add_swept_pipe(path_mm, diameter_mm, bend_radius_mm, name, smooth)沿 2D 路径扫掠圆形轮廓并圆滑处理弯角(管道、管材、杆件);或在 smooth=True 时沿经过这些点的样条曲线扫掠
add_swept_profile(profile_mm, path_mm, bend_radius_mm, name, corner_radii_mm)沿 2D 路径扫掠任意闭合横截面(导轨、垫片、饰条、槽道);corner_radii_mm 用于圆角处理横截面
add_lofted_solid(profiles_mm, heights_mm, name)在堆叠的平行平面上放置 2 个或更多多边形或圆形轮廓,并进行放样/融合(过渡件、转接件、膝部较粗的支腿)
add_rib(start_mm, end_mm, toward_mm, thickness_mm, z_mm, name)在与 Front 平面平行的平面 z_mm 上创建直肋/加强筋,并朝 toward_mm 延伸直至与零件相交(L 形支架加强筋)
add_extruded_profile(points_mm, depth_mm, name, corner_radii_mm, rotate_deg, about_mm, draft_deg, merge)拉伸任意闭合多边形 [[x,y],…](支架、型材);corner_radii_mm 用真实草图圆角处理角部,每个半径都是一个尺寸;rotate_deg 使其绕枢轴旋转;draft_deg 使壁面倾斜;merge=False 保留为单独实体
add_plane(base, offset_mm, angle_deg, about, name)创建相对于某平面的偏移基准面,或绕模型轴旋转的基准面;其偏移量或角度是一个尺寸;返回其原点和轴向
add_extruded_profile_on_plane(points_mm, plane, depth_mm, reverse, name, corner_radii_mm, draft_deg, merge)拉伸绘制在任意平面上的多边形(位于该平面上的 3D 点),并与零件合并
list_bodies()零件的实体:名称、体积、边界框
combine_bodies(operation, main, tools, name)对零件的实体执行添加、减去或相交操作(add / subtract / common)
split_body(plane, name)沿平面将零件分割为两个实体
add_extruded_spline(points_mm, depth_mm, name)拉伸一条经过各点的平滑闭合样条曲线(自由形态/有机轮廓)
add_hole(diameter_mm, x_mm, y_mm, name)在 (x, y) 处沿深度轴切出圆形通孔
add_counterbore_hole(clearance_diameter_mm, cbore_diameter_mm, cbore_depth_mm, x_mm, y_mm, name)在 +Z 面上创建沉孔螺钉孔(用于齐平的圆柱头螺钉/热熔嵌件)
add_thread(size, x_mm, y_mm, z_mm, length_mm, internal, name)通过 SolidWorks 的 Thread 特征,在杆件的端边或孔口创建真实、可打印的 ISO 公制螺纹(例如 M10x1.5);系统会根据螺纹规格校验尺寸。内螺纹:先钻出基本小径(M10x1.5 → Ø8.376)
add_hole_on_face(diameter_mm, face, x_mm, y_mm, z_mm, depth_mm, name)在任意平面上、指定 3D 点处创建圆孔,可贯穿或盲孔(侧孔、热熔嵌件孔);使用穿过该点的面
add_hole_wizard(kind, size, face, x_mm, y_mm, z_mm, depth_mm, fit, thread, name)根据 SolidWorks 的 Hole Wizard 表创建 ISO 孔:间隙孔(ISO 273 配合)、沉孔、沉头孔或螺纹孔;thread="modeled" 会切出真实、可打印的螺纹
add_boss_on_face(diameter_mm, face, x_mm, y_mm, z_mm, height_mm, name)从任意平面上凸起创建圆形凸台(支柱、销钉)
add_extruded_profile_on_face(points_mm, face, depth_mm, name, corner_radii_mm)从任意平面上凸起拉伸多边形垫块/凸缘(位于该面上的 3D 点)
add_text_on_face(text, face, x_mm, y_mm, z_mm, height_mm, depth_mm, emboss, font, name)在任意平面上雕刻文字或将其凸印:标签、版本号;位置由两个尺寸确定
cut_profile(points_mm, depth_mm, name, corner_radii_mm, rotate_deg, about_mm)从 +Z 面切出多边形凹槽/长槽(盲孔或通孔),也可绕枢轴旋转
cut_profile_on_face(points_mm, face, depth_mm, name, corner_radii_mm)在任意平面上切出多边形凹槽(位于该面上的 3D 点)
cut_profile_through_plane(points_mm, plane, depth_mm, name, corner_radii_mm)在 Front/Top/Right 平面或指定名称的平面上绘制多边形并切除,可双向贯穿全部,或以 depth_mm 为深度、以该平面为中心切除(楔形、侧窗、对称凹槽);keep_inside 会改为保留轮廓内部,因此两个视图即可构成 3D 形状
cut_offset_pocket(face, x_mm, y_mm, z_mm, rim_mm, depth_mm, name)在面上切出凹槽,并沿轮廓保留边缘(工字梁腹板、托盘、框架);边缘宽度和深度都是尺寸
cut_slot(length_mm, width_mm, x_mm, y_mm, angle_deg, depth_mm, name)在 +Z 面上以任意角度切出直长孔(腰形孔)
add_extruded_slot(start_mm, end_mm, width_mm, depth_mm, name)在两个点之间拉伸跑道形轮廓(圆角凸片、凸耳、连杆),圆形端部以这两个点为中心
add_fillet(radius_mm, edges, name, radii_at_mm, skip_shorter_mm)对边进行圆角处理(edges:all、轴 x/y/z、面的轮廓 "+z:outline"、某个特征的边 "feature:Boss",或索引 "2,5");radii_at_mm 可使半径从一端到另一端变化;若无法处理,会列出不适用的边
add_full_round(face, x_mm, y_mm, z_mm, name)在肋的两个最近的相对侧面之间,将其顶部完全圆化
add_chamfer(distance_mm, edges, name)以 45° 对边倒角(edges:all、轴、面的轮廓、某个特征的边,或索引)
add_shell(thickness_mm, open_face)按壁厚掏空;打开一个面(+z/…)或使用 none
add_linear_pattern(count, spacing_mm, direction, feature_name)沿 +x/-x/… 方向重复特征 N 次
add_circular_pattern(count, center_x_mm, center_y_mm, feature_name)绕轴重复特征 N 次(螺栓圆)
add_mirror(plane, offset_mm, features, name)镜像特征(副本随种子特征变化)或整个实体;绕 Front/Top/Right 平面或指定名称的平面镜像,并移动 offset_mm;如果副本会落在零件之外,则操作失败
set_dimension(dimension_name, value_mm)修改指定的驱动尺寸(例如 D1@BlockExtrude,或工具在 dimensions 中返回的任意名称),重建并重新测量;角度单位为度
set_equation(equation)添加全局方程或关联尺寸的变量(例如 "W" = 40,然后 "width@Sketch1" = "W"),或替换设置相同名称的方程;列出重建失败的特征
set_equations(equations)添加或替换一组方程,并仅重建一次
list_equations / delete_equation(equation)列出方程(值、全局、失效)/按名称或索引删除方程
slice_mesh(path, axis, heights_mm, frame)将 STL/3MF 网格切成横截面多边形环,可直接用作轮廓
compare_with_mesh(path, axis, heights_mm, frame, offset_mm)将零件的横截面与参考网格比较(面积和范围差异)
read_sketch(name)读取草图的模型坐标:直线、圆弧、圆、样条曲线、尺寸,以及是否完全定义
add_sketch(plane, start_mm, segments, name)在任意平面上绘制由直线、圆弧和样条曲线组成的轮廓并完全定义:曲线相接处设为相切,尺寸相对于原点标注
extrude_sketch(sketch, depth_mm, reverse, name, up_to) / cut_sketch(sketch, depth_mm, reverse, name)根据已有草图(由人绘制的草图)的名称建模:盲拉伸或拉伸至下一个面,或盲切除/贯穿全部切除
list_dimensions()零件中的所有尺寸:名称(用于 set_dimension)、特征、值、单位
list_features()按树形顺序列出零件历史记录(名称、类型、是否压缩);标记重建失败的特征和未完全定义的草图
delete_feature(name, with_children, with_equations)撤销步骤:删除特征及其草图;如果其他特征依赖于此特征则拒绝删除并列出这些特征,除非设置 with_children;列出会导致失效的方程,或使用 with_equations 将其删除
suppress_feature(name, suppress)暂时移除特征,但保留该特征及其尺寸(用于尝试不同方案);suppress=False 会恢复该特征及其依赖项
set_material(name, database, density_kg_m3)指定材料(例如 6061 Alloy),以获得真实的质量/密度;SolidWorks 缺少的材料(例如 TPU)会连同其密度一并添加
rebuild(top_only)强制重建并报告错误
get_mass_properties体积、质量、密度、表面积、质心、边界框
get_bounding_box紧密贴合零件的边界框(最小值/最大值/尺寸,mm)
list_faces(component) / list_edges(face, feature, within_mm, min_length_mm)按索引检查面(法向、面积、中心;圆柱的轴、半径和中心,也可检查装配体中的组件)和边(类型、长度、端点、轴);可按面、特征、范围框或长度缩小结果范围
check_printability(up, overhang_deg, min_wall_mm)检查指定打印方向的悬垂面(面积、最大倾斜度、中心)、与打印平台的接触情况和高度;并列出薄于 min_wall_mm 的壁
export(path, file_format, quality, deviation_mm, angle_deg, per_component)STEP/STL/IGES/Parasolid/3MF(静默导出;验证文件)。STL/3MF 网格化:quality 可选 coarse/fine,或指定 deviation_mm+angle_deg;装配体的 STL 可导出为一个文件,或按组件分别导出
screenshot(path, view, zoom_mm, show_planes, from_dir)从标准视图(iso、front、top、…)或任意方向生成 PNG/JPG/TIF,可缩放至适合视图或聚焦某个区域;除非指定,否则不显示平面和轴
make_drawing(path)创建 2D 工程图,格式为 PDF 或可编辑的 .slddrw:在 A4 图纸上生成 Front、Top、Right(第一角法)和等轴测视图,并各显示一次模型自身的尺寸
save_part(path) / open_part(path)保存为/打开原生 .sldprt;open_part 也会将 STEP、IGES 和 Parasolid 文件作为零件导入,以便继续建模
close_part(save)关闭当前零件或装配体;如果没有当前文档,则关闭已保存的 SolidWorks 活动文档
list_documents / activate_document(title)列出打开的文档(路径、类型、未保存的更改)/重新将文档设为当前文档,也可激活从未保存过的文档
装配工具
工具用途
new_assembly创建新的空装配体(并将其设为当前文档)
open_assembly(path) / save_assembly(path)打开 / 保存原生 .sldasm;open_assembly 还会导入 STEP、IGES 和 Parasolid 装配体,并将零件作为组件原位导入
insert_component(path, x_mm, y_mm, z_mm, fixed)插入零件,或将 .sldasm 作为子装配体插入,并使其原点位于 (x, y, z);默认固定第一个组件
list_components列出每个组件的名称、路径、固定状态、位置、旋转和边界框(其自身范围,即使旋转后也如此),以及配合关系的尺寸和错误
delete_component(component)从装配体中移除组件及其配合关系
set_component_transform(name, x_mm, y_mm, z_mm, rx_deg, ry_deg, rz_deg)移动 / 旋转组件;变换结果会读回并验证
add_mate(comp_a, face_a, comp_b, face_b, mate_type, distance_mm, angle_deg, flip)配合两个面(按方向选择,或使用 list_faces 中的 #index):coincident、distance、parallel、perpendicular、angle,或圆柱之间的 concentric;之后会读回测量结果;被拒绝的配合关系会被移除。距离或角度配合会返回其尺寸:关节角度以单个数字表示
check_motion(dimension_name, values, distances)逐步移动关节以遍历其范围:每一步的重叠组件对及所选距离、最小距离及其出现位置、发生移动的组件
swept_region(component, dimension, values, heights_mm, axis, margin_mm, tolerance_mm, frame)查询组件在关节运动范围内于某平面覆盖的区域:其轮廓(含边距),以待切割零件的坐标表示
delete_mate(name) / suppress_mate(name, suppress)删除配合关系,或将其抑制(并可恢复)
check_interference列出实体相交的组件对,并给出交叠体积(mm³);相接的面不计入
measure_distance(component_a, component_b, point_mm, axis_mm)测量两个组件之间的最短距离:到某点(返回最近点,以及该点是否位于材料内部)或到某轴
get_assembly_bounding_box整个装配体的紧致边界框(最小值 / 最大值 / 尺寸,单位:mm)

export 和 screenshot 同样适用于装配体。

面按组件自身坐标系中的方向选取(+x、-z……), 因此无论组件如何旋转,选择器指向的始终是同一个面。对于中空零件的空腔侧,请添加 :inner(例如 +y:inner)——选择房间墙壁的内侧,而不是外表面。

所有线性尺寸均以毫米为单位;服务会在边界处将单位转换为 SolidWorks 内部使用的米 / 弧度。

架构

src/solidworks_mcp/
  binding.py     early-binding plumbing (wrap raw dispatches in generated classes)
  com_worker.py  one dedicated STA thread; all COM calls serialised through it
  session.py     SolidWorks operations (must run on the COM thread)
  server.py      FastMCP tools that delegate to session via the worker
  constants.py   enum values read from the installed typelib (verified)
  units.py       mm<->m, deg<->rad
  errors.py      SolidWorksError -> agent-facing {ok:false,error}

两项不太显而易见、但至关重要的设计决策:

  1. 必须提前绑定。 在此构建版本中,GetActiveObject 返回的 dispatch 对象调用 GetTypeInfo() 会失败,因此 EnsureDispatch/CastTo 无法推断 类型,纯后期绑定也会失效(IModelDoc2.FirstFeature → DISP_E_MEMBERNOTFOUND)。我们会根据已安装的 typelib 生成 makepy 包装器,并将每个原始 dispatch 对象包装为正确的接口类;随后调用会通过 dispid 使用 InvokeTypes,绕过名称解析。参见 binding.py。

  2. 使用专用 COM 线程。 COM 采用 STA,且线程绑定。MCP 服务运行在 asyncio 上, 因此所有 COM 操作都会固定在一个工作线程(com_worker.py)上, 处理程序会向该线程提交操作并等待结果——主动确保“单个 COM 会话、单线程”的规则,而异步服务不会自动遵守这项规则。

状态与路线图

已在 SOLIDWORKS 2026(3DEXPERIENCE R2026x) 上完成端到端验证:

里程碑验证内容状态
M0连接到正在运行的 SolidWorks COM✅
M1新建零件 → 草绘矩形 → 拉伸 → 质量属性(体积与手算结果一致)✅
M2修改命名尺寸 → 重建 → 体积按预期变化✅
M3通过 MCP 服务完成完整 Agent 循环:构建 → 测量 → 修正 → 导出 STEP/STL + 截图✅
M4旋转、扫描、放样、轮廓、孔/凹槽/沉孔、槽、圆角/倒角、抽壳、阵列、方程式、材料、保存/打开🚧 进行中
M5端到端创建 3D 打印零件:通过完整循环构建功能性安装支架 → 验证每个尺寸 → 导出高精度 STL(scripts/m5_demo_bracket.py)✅
M6装配体:插入并定位组件、配合组件、检查干涉 — 回读测量每个位置和配合(tests/test_assembly.py)✅

详细日志和路线图请参阅 Docs/PROGRESS.md。 欢迎反馈和贡献。

已知限制

  • 目前支持的几何体:方块、圆柱/圆锥(旋转)、任意拉伸轮廓、孔、多边形凹槽/槽(cut_profile)、圆角、倒角、抽壳、线性 + 圆周阵列(螺栓圆);此外还支持方程式、材料、几何体检查,以及 .sldprt 的保存/打开、任意平面上的孔 + 凹槽 (模型→草图变换)、圆形法兰(圆盘 + 孔 + 螺栓圆)、长圆孔(cut_slot,任意角度的长圆孔 — 首个基于圆弧的草图)、通用旋转体(add_revolved_profile:任意 (r,z) 轮廓 → 轴、花瓶、圆环)、扫描管/管道(add_swept_pipe:沿圆滑 2D 路径扫描圆形轮廓)、放样(add_lofted_solid:融合堆叠的多边形轮廓 → 过渡件/适配器)、自由形状拉伸(add_extruded_spline:平滑闭合样条 → 有机/美观的轮廓)、非圆形扫描(add_swept_profile:沿路径扫描任意横截面 → 导轨、垫圈、装饰条),以及镜像(add_mirror:关于穿过零件的平面对特征或整个实体进行镜像)。
  • 选择:平面遍历、按法线/方向选择面(_planar_face_by_normal,+z/…,空心零件的空腔侧使用 :inner),以及按轴线或显式索引选择边(_select_edges)。list_faces/list_edges 可让 Agent 在选择前检查几何体。
  • 装配体(M6):组件、变换、配合和干涉检测。组件阵列、上下文内特征、配置、工程图和 Simulation(FEA)不在支持范围内。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。