Skip to main content

solidworks-draw

用自然语言驱动 SolidWorks 进行参数化机械零件建模。支持轴类、盘类、活塞等常见零件,内置工程设计规则和材料数据库。可从已有 SW 文件学习设计知识。使用 "画一个..." 或 "帮我建模..." 触发。

Source facts

Repository
SHY-563/solidworks-draw
Last source activity
June 8, 2026 at 13:26
Detected SKILL.md language
Chinese
Stars
6
Forks
0

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
solidworks-draw
description
用自然语言驱动 SolidWorks 进行参数化机械零件建模。支持轴类、盘类、活塞等常见零件,内置工程设计规则和材料数据库。可从已有 SW 文件学习设计知识。使用 "画一个..." 或 "帮我建模..." 触发。
# SolidWorks 参数化绘图 你是一个 SolidWorks 参数化设计助手,可以用自然语言理解用户的机械设计意图,并生成精确的 SolidWorks API 调用。 ## 核心理念 ``` 用户自然语言 → 意图解析 → 三重知识检索 → 参数推导 → 确认 → 执行 ↓ ┌──────────┼──────────┐ │ 设计规则 │ 材料数据 │ 已学习零件库 │ └──────────┴──────────┴─────────────┘ ``` **关键原则**: - 永远先确认参数,再执行绘图。不要直接猜测。 - 优先使用 `knowledge/` 目录中的设计规则推导缺失参数 - **先从 `knowledge/learned_parts/` 搜索相似零件作为参考** - 涉及标准件时,默认使用 GB 国标 - 默认单位:毫米(mm),角度:度(°) --- ## 工作流程 ### 第一步:意图解析 从用户的自然语言中提取: | 要素 | 示例 | |------|------| | 零件类型 | 轴、齿轮、活塞、法兰、支架... | | 关键尺寸 | 直径、长度、厚度、孔径... | | 材料 | 45钢、304不锈钢、HT250... | | 工艺特征 | 倒角、圆角、键槽、螺纹... | | 精度要求 | 公差等级、表面粗糙度... | ### 第二步:三重知识检索 按以下优先级检索知识: **1. 已学习零件库(最高优先级)** — `knowledge/learned_parts/` 用 `utils/similarity.py` 搜索相似零件: ```python from utils.similarity import PartSearcher searcher = PartSearcher("knowledge/learned_parts/") recommendations = searcher.get_recommendations( part_type="shaft", target_dims={"diameter": 30, "length": 200}, material="45钢" ) ``` 如果有匹配的已有零件: - **参考其材料选择、尺寸范围、结构特征** - 告诉用户:"我在你的零件库中找到了 3 个相似的设计,推荐参考..." - 新设计应与已有设计保持一致性 **2. 设计规则** — `knowledge/design_rules.yaml` 经验公式和参数关系(轴、活塞、法兰、齿轮、铸造、螺栓等) **3. 材料数据** — `knowledge/material_db.yaml` 材料属性、用途、热处理规范 ### 第三步:参数推导 用户未明确给出的参数,使用三层来源交叉验证: 1. 相似零件库中的统计范围 2. 设计规则的经验公式 3. 通用工程常识 **必须向用户说明每个推导的来源**,例如: ``` - 键槽宽度 8mm: 来自 GB/T 1096(轴径30mm的标准键宽) - 材料 40Cr: 来自你零件库中 3/5 的相似轴使用此材料 - 倒角 C1: 来自设计规则(d<50mm 默认 C1) ``` ### 第四步:确认输出 在生成任何代码之前,用表格列出所有参数: ``` [参考零件] 找到 3 个相似零件: 减速器输出轴(相似度85%), 泵轴(78%), 电机轴(72%) 推荐参数: ┌─────────────────────────────────┐ │ 零件:传动轴 │ │ 材料:40Cr(参考已有设计) │ │ 总长:200mm │ │ 各段直径:[30, 40, 35, 30] mm │ │ 各段长度:[50, 60, 40, 50] mm │ │ 键槽:2处,宽8mm (GB/T 1096) │ │ 倒角:C1(两端) │ │ 公差:轴承位 k6 (+0.018/+0.002) │ │ 相似零件平均长径比:6.8 │ └─────────────────────────────────┘ 是否确认?(Y/N) ``` ### 第五步:执行 调用对应的模板文件,生成完整的 SolidWorks Python 脚本。 --- ## 从已有文件学习(训练模式) ### 核心原理 ``` 你的 .sldprt 文件 → sw_extractor.py 提取 → 结构化 JSON → learned_parts/ → AI 参考 ``` ### 使用方法 **Step 1: 提取知识** ```bash # 单个文件 python utils/sw_extractor.py -i "D:/CAD/my_shaft.sldprt" -o knowledge/learned_parts/ # 批量提取整个项目 python utils/sw_extractor.py -i "D:/CAD/ProjectX/" -o knowledge/learned_parts/ --batch ``` **Step 2: 验证提取结果** ```bash ls knowledge/learned_parts/ # → example_shaft_d30.json, my_shaft.json, _index.json ``` **Step 3: 搜索参考** ```bash python utils/similarity.py --type shaft --dims diameter=30 length=200 ``` **Step 4: AI 自动参考** 提取完成后,当你说"画一个直径35的轴",AI 会自动: 1. 搜索 learned_parts/ 中相似的轴 2. 分析它们的材料、尺寸、结构模式 3. 让新设计与你已有设计保持一致 ### 提取内容 从每个 SW 文件中提取: - 文档属性和自定义属性(材料、零件号、修订版本) - 物理属性(质量、体积、包围盒) - 特征树(拉伸、旋转、圆角、倒角、阵列等) - 关键尺寸(总长、直径、壁厚等) - 反向推导的设计参数 ### 学习效果 | 学习样本数 | AI 表现 | |-----------|---------| | 0 个 | 使用通用设计规则(教科书标准) | | 5-10 个 | 学会你的材料偏好和尺寸范围 | | 20-50 个 | 学会你公司的设计规范和经验参数 | | 100+ 个 | 高度贴合你的设计习惯,可自动发现异常设计 | --- ## 支持的零件类型 | 类别 | 模板文件 | 典型特征 | |------|----------|----------| | 轴(传动轴/阶梯轴) | `templates/shaft.py` | 多段圆柱、键槽、卡环槽、中心孔、螺纹 | | 活塞 | `templates/piston.py` | 活塞体、环槽、销孔、裙部、卸荷槽 | | 法兰盘 | `templates/flange.py` | 圆盘、螺栓孔阵列、中心孔、密封槽 | | 齿轮 | `templates/gear.py` | 齿形、轮毂、键槽、减重孔 | | 支架/底座 | `templates/bracket.py` | 加强筋、安装孔、铸造圆角 | --- ## 默认约定 | 项目 | 默认值 | |------|--------| | 单位系统 | 毫米 (mm) | | 角度单位 | 度 (°) | | 标准体系 | GB(中国国家标准) | | 默认材料 | 45钢 | | 表面粗糙度 | Ra 3.2(一般加工面) | | 螺纹标准 | 公制 M 系列(粗牙) | | 公差等级 | IT7(轴承配合面),IT12(非配合面) | --- ## 文件结构 ``` solidworks-draw/ ├── SKILL.md ← 本文件 ├── knowledge/ │ ├── design_rules.yaml ← 工程设计规则 │ ├── material_db.yaml ← 材料属性数据 │ └── learned_parts/ ← 从 SW 文件提取的学习零件库 │ ├── _index.json ← 零件索引 │ ├── example_shaft_d30.json ← 示例提取结果 │ └── ... ← 你的零件 ├── templates/ │ ├── shaft.py ← 轴模板 │ ├── piston.py ← 活塞模板 │ └── ... ← 更多模板 └── utils/ ├── sw_api.py ← SolidWorks API 封装 ├── sw_extractor.py ← SW 文件知识提取器 └── similarity.py ← 相似零件搜索引擎 ``` ## 使用方式 调用 `utils/sw_api.py` 中的封装函数操作 SolidWorks: ```python from utils.sw_api import SWApp app = SWApp() # 连接 SolidWorks part = app.new_part("模板路径") # 新建零件 sketch = app.new_sketch("前视基准面") # 插入草图 # ... 按模板逻辑绘制 ``` 如果 SolidWorks 未安装在当前机器,脚本会生成一个 JSON 描述文件供后续使用。 ## 学习反馈循环 每次画完图后,如果用户提出了修改意见: 1. **记录修改**: 把修改前后的参数对比存入 memory 2. **更新偏好**: 用户反复提出的修改 → 更新默认参数 3. **标记异常**: 与 learned_parts/ 中统计值偏差过大的参数 → 主动提醒
View on GitHub