solidworks-automation

SolidWorks CAD 自动化技能,优先覆盖经验证的零件、孔槽、装配、工程图、导出和交付复核;所有能力等级以 capabilities.yaml 为准,未验证能力必须走人工复核。

By wzyn20051216 · 461 installs

npx skills add wzyn20051216/solidworks-automation-skill --skill solidworks-automation

Source repository · Upstream listing

SolidWorks 自动化技能 快速开始 环境要求 Windows 系统;原生 SolidWorks 格式需要 SolidWorks,开放格式无头写入不要求安装 CAD 软件 Python 3.10+;原生 Windows CAD 自动化另需 pywin32 / comtypes MCP/工具化调用需要 mcp / pydantic 工程图最终交付审查需要 PyMuPDF ;它从 SolidWorks 导出 PDF 回读实际尺寸文字边界,已包含在 requirements.txt 处理 GLB/GLTF/OBJ/STL 网格参考模型时,可能还需要 trimesh / pygltflib / numpy / Pillow 如果通过 OpenClaw 使用,确保技能目录位于 ~/.openclaw/skills/solidworks automation/ 或 ~/.agents/skills/solidworks automation/ 入口自检 所有代理在执行 SolidWorks 自动化前,先运行技能自检: 桌面端或 CLI 执行前建议先运行环境诊断: capabilities.yaml 是 Skill、MCP、队列和 UI 共用的能力唯一真源。能力等级为 verified 、 pilot 、 reference only 或 not implemented ;后两者不得作为无人值守交付。该清单还维护 Python、C PIA/Add in、原生 C++、SWBasic、OCCT 和外部求解器的原子操作路由;执行前可用 python scripts/backend router.py list 查询,规则见 references/language backend routing.md 。 多入口与多后端 CAD Studio 与 Skill/CLI/MCP 是平级入口,共用 Automation Job、NeutralCadDocument、Preview Manifest、Evidence Graph 和能力清单。 检测不到 SolidWorks/AutoCAD 时,只阻断 SLDPRT/SLDASM/SLDDRW/DWG 等原生格式;开放格式任务优先路由到 headless open format writing 。 无头写入使用 scripts/headless cad writer.py ;OCCT/OCP 隔离进程真实写入 STEP、IGES、BREP、STL、OBJ、GLB,二维后端写入 DXF、SVG、PDF、PNG,并生成几何与 SHA 256 证据。 DXF 交付会额外生成 preview scene ;已有 DXF 可通过 python scripts/cad studio.py preview dxf input drawing.dxf output drawing.scene.json 或 MCP cadstudio build dxf preview scene 转成受限 PreviewScene。该命令只读白名单实体并拒绝覆盖旧文件。 OCCT 当前覆盖盒体、圆柱、布尔合并、圆柱孔切除、直纹/受限平滑 Loft、直线/单圆弧 Sweep、闭壳 Knit 和开放面 Thicken;复杂路径、自交偏置或缺少 OCP 运行时时保持 blocked 。禁止通过改扩展名或空文件伪造支持。 delivery preview 只允许显示当前任务真实产物;固定样例必须标记 demo showcase 与 isDemo: true ,不得进入交付判断。 规则: 1. 检测到缺少 comtypes / win32com / pythoncom 时,向用户弹出友好确认: 检测到当前 Python 环境缺少 comtypes / win32com 库,是否授权 AI 自动为您配置本地环境?[Y/N] 2. 用户输入 Y / yes 后,代理可在本地 shell 中自动执行 python m pip install "pywin32 =305" "comtypes =1.2.0" 补齐依赖;用户拒绝时停止并给出手动安装命令。 3. 检测不到 SolidWorks 安装或 COM 注册时,停止原生 SolidWorks 操作;若原生格式并非必需且 fallbackPolicy=allow open formats ,继续执行无头开放格式后端,不要把整个任务误标为失败。 Python 依赖提醒 按任务最小化安装依赖,不要在普通零件建模时强制安装网格转换库;工程图交付需要标准 requirements.txt 中的 PyMuPDF: 执行涉及 GLB/GLTF/FBX/BLEND 转 OBJ/STL 的任务前,先用 importlib.util.find spec() 检查 trimesh 、 pygltflib 、 PIL 是否可用;缺失时先提示用户需要安装哪些库和用途,再安装或给出手动命令。 连接 SolidWorks 将 SKILL DIR 替换为此技能的实际安装路径。 核心工作流 根据用户需求选择对应模块: 需求 脚本 参考文档 入口自检与依赖补齐 scripts/sw preflight.py references/troubleshooting.md 无 CAD 开放格式写入 scripts/headless cad writer.py 、 scripts/cad studio.py write open format capabilities.yaml 、公共 CAD Core Schema 高级能力/类型库探测 scripts/sw capability probe.py references/complex mechanical routing.md Python/C /C++/SWBasic/OCCT 后端选择 scripts/backend router.py references/language backend routing.md 、 capabilities.yaml C 进程内 Add in 宿主、事件与 UI scripts/sw addin host.ps1 、 scripts/sw addin host.py references/solidworks addin host.md 多模型宏生成防护 scripts/sw macro guard.py references/openclaw.md 友好会话 API scripts/sw session.py 连接与文档管理 scripts/sw connect.py 外观与材质 scripts/sw appearance.py references/appearance.md 零件建模(草图+特征) scripts/sw part.py references/part modeling.md 盲孔/沉孔/沉头孔/半圆端槽与孔位验收 scripts/sw hole features.py 、 scripts/sw review.py references/complex hole features.md 、 references/review.md 自然语言到参数化设计计划 / VibeCAD subskills/solidworks vibecad/scripts/plan from brief.py subskills/solidworks vibecad/SKILL.md 、 subskills/solidworks vibecad/README.md 多圆角/倒角 CNC 机加工件 subskills/solidworks fillet chamfer cnc/scripts/create cnc mount template.py ;高级圆角用 verify advanced fillets.py subskills/solidworks fillet chamfer cnc/SKILL.md 、 subskills/solidworks fillet chamfer cnc/references/cnc fillet chamfer lessons.md 螺丝孔/螺纹孔、攻丝底孔 subskills/solidworks threaded holes/scripts/create threaded hole template.py subskills/solidworks threaded holes/SKILL.md 、 subskills/solidworks threaded holes/references/threaded hole lessons.md AutoCAD DWG/DXF 二维绘图、线稿转 CAD、批量改图 subskills/autocad automation/scripts/acad draw.py 、 subskills/autocad automation/scripts/acad review.py subskills/autocad automation/SKILL.md 、 subskills/autocad automation/references/troubleshooting.md 装配体操作、齿轮/铰链/可拖动运动配合 scripts/sw assembly.py references/assembly.md Motion Study 运动算例、旋转马达与结果审计 scripts/sw motion.py references/motion study.md 、 references/complex mechanical routing.md 工程图出图 scripts/sw drawing.py references/drawing.md 文件导出 scripts/sw export.py references/export.md 配置族创建/激活、参数修改与自定义属性 scripts/sw document data.py references/advanced.md 装配 BOM CSV 与 Pack and Go scripts/sw delivery.py references/export.md OBJ/STL 高还原网格参考导入 scripts/sw import mesh reference.py references/mesh reference import.md 结果自审查 scripts/sw review.py references/review.md 语义实体引用 scripts/sw entity reference.py 逐步替代 Face1/Edge1 和屏幕坐标 DFM 制造风险复核 scripts/dfm review.py 、 scripts/dfm profiles.py 、 scripts/cad studio.py check dfm 供应商 profile、B Rep 证据、机加工、钣金、激光切割和 3D 打印的结构化规则检查 Routing 中性复核与前置 scripts/routing review.py 、 scripts/cad studio.py check routing 、 scripts/cad studio.py routing preflight 端点、分段、长度、弯曲半径、碰撞/间隙、支撑、Routing BOM;原生写入必须等加载项/许可证证据 FEA 前置、输入与受限求解 scripts/fea analysis.py 、 scripts/fea convergence.py 、 scripts/cad studio.py fea preflight/prepare fea/run fea/run fea convergence CalculiX 2.23 已验证线性/非线性静力、塑性、面接触、最终步 COPEN/CPRESS/CSLIP 与线性/非线性网格收敛;全部仍需工程复核 复杂曲面与模具 scripts/advanced geometry.py 、 scripts/advanced geometry ocp.py 、 scripts/advanced surface ocp.py 、 scripts/cad studio.py review advanced geometry/create ocp loft/create ocp surface 直纹/平滑 Loft、受限 Sweep/Knit/Thicken 可写并重开 B Rep;G1/G2 和曲率半径只返回离散采样证据 本地 MCP Server mcp server/server.py mcp server/README.md 、 references/mcp server.md MCP 协议验证 scripts/validate mcp.py mcp server/README.md 未封装 API 查证 references/api lookup.md OpenClaw 控制 SolidWorks references/openclaw.md 钣金/焊件/仿真/属性 references/advanced.md 企业 Agent / 本地优先与云 RAG apps/desktop/cad workbench/knowledge retrieval.py references/enterprise agent rag.md Codex/Claude/Gemini/OpenCode Provider Adapter apps/desktop/cad workbench/agent providers.py references/agent provider architecture.md 综合机械工程 DAG 自动编排 apps/desktop/cad workbench/engineering orchestrator.py references/complex mechanical routing.md 常见错误排查 references/troubleshooting.md Pack and Go 在 SW2026 SP01.1 的基础两零件装配上已连续三次通过原生回归: SavePackAndGo() 实际输出装配体和两个零件,状态码均为 0,未使用暂存回退。部分版本的 GetDocumentNames() 仍可能在保存前只枚举顶层文件;不要用 AddExternalDocuments 补装配体原生零件,应先执行原生保存,再审计实际落盘依赖。若落盘仍缺依赖, scripts/sw delivery.py::pack and go() 默认按 GetDependencies2 生成带 manifest 和 SHA 256 的 pilot 暂存包;需要严格原生语义时使用 fallback policy="blocked" 。外部引用、Toolbox、配置和工程图仍必须人工复核,因此总能力保持 pilot 。 OpenClaw 协作方式 1. 先确认 SolidWorks 版本、界面语言、输入文件路径、输出路径,以及目标操作(建模 / 装配 / 出图 / 导出)。 2. 优先复用 {baseDir}/scripts 下已有模块,不要重复手写 COM 连接逻辑。 3. 在 OpenClaw 的 exec / shell 能力中执行短小、一次性的 Python 脚本,最小导入集如下: 4. 执行后检查返回对象是否为 None 、保存/导出是否成功、输出文件是否落盘。 5. 生成或修改模型后必须做结果自审查:导出至少一个等轴测预览图,必要时导出前/俯/右视图,并通过截图或 BMP 目视检查几何是否符合用户意图。 6. 如果需要更完整的 OpenClaw 工作流、提示词示例和排障建议,再读取 references/openclaw.md 。 使用流程 1. 先根据原子操作运行 backend router.py ,再结合 preferredBackend 、 requiredOutputs 、 nativeFormatRequired 和 fallbackPolicy 判定后端;不要先假定 Python、C 或 SolidWorks 必然可用。普通任务优先 Automation 等价接口,明确要求仅非托管 C++ 支持的原始 I 指针语义时才升级到原生 C++。 事件订阅、PropertyManagerPage、TaskPane 或长期驻留 UI 走 solidworks addin ui events 路由,优先 C Add in;必须检查 HKLM 注册、64 位 TLB 注册和 host status.json ,不能只凭 LoadAddIn=0 宣称成功。SW2026 的 PMP Handler 必须公开、COM 可见并提供 IDispatch class interface。 2. 需要原生 SolidWorks 格式时运行 sw preflight.py ;缺依赖则请求用户授权自动安装,缺 SolidWorks 则只阻断原生阶段。 3. 不需要原生格式或允许开放格式回退时,运行 python scripts/cad studio.py write open format input model.cadstudio.json out dir output 。 4. 需要制造性快速复核时,运行 python scripts/cad studio.py check dfm input model.cadstudio.json output output/dfm report.json process machining ;支持 profile supplier.json 和 brep evidence brep.json 。报告缺少材料、壁厚、K 因子、割缝、成型空间或要求的 B Rep 证据时返回 blocked ,规则通过也必须人工复核。 5. 原生 SolidWorks 路线优先用 SolidWorksSession() 管理连接、打开、新建、保存、导出;需要底层控制时再组合 sw connect.py 、 sw part.py 等函数。 6. 当用户需求偏自然语言、参数不完整或需要“行业知识库 + 提示词模板 + 参数化设计计划”时,先读取 subskills/solidworks vibecad/SKILL.md ,生成 design plan.json 和执行摘要。 7. 圆角/倒角很多的 CNC 件、安装座、连接块、支架,先读取 subskills/solidworks fillet chamfer cnc/SKILL.md ,按“基础体 外轮廓圆角/倒角 孔槽切除 孔口倒角 审查”的稳定顺序执行。 8. 螺丝孔、螺纹孔、攻牙孔、M3/M4/M5/M6/M8 盲孔或贯穿孔任务,先读取 subskills/solidworks threaded holes/SKILL.md ;默认按“参数/孔位校验 攻丝底孔 Metric Tap 真实 Thread CosmeticThread/证据螺旋线降级 孔口倒角 重建后特征证据 属性和审查”的稳定路线执行。Hole Wizard、外螺纹、英制/管螺纹和现有零件改孔仍按 pilot 处理。 9. 普通盲孔、通孔、圆柱沉孔、锥形沉头孔、半圆端槽或孔阵列任务,读取 references/complex hole features.md 并优先调用 scripts/sw hole features.py ;创建参数证据必须再与 collect geometry measurements() 、 validate hole positions() 和剖视图交叉复核。 10. SolidWorks 零件图、装配图、GB/T 工程图、尺寸链、孔表、BOM、标题栏或工程图审视任务,先读取 subskills/solidworks engineering drawing/SKILL.md ;该子技能消费根技能的模型、孔槽和属性证据。AutoCAD 的 DWG/DXF、二维图纸、线稿转 CAD、批量改图或 AutoCAD 原生预览任务,读取 subskills/autocad automation/SKILL.md 。机械/3D 打印开孔交付必须按可制造图纸处理:所有孔、槽、接口、水口、螺丝孔和螺丝柱同时给出规格、数量和定位尺寸;图面拥挤时用孔表/槽表,不得用长引线替代关键尺寸。 11. 当用户要求真实产品“原版外观”“1:1 复刻”“不像概念版”,先读取 references/mesh reference import.md :公开网格/蓝图参考优先,不要在低保真手搓底稿上反复精修;需要导入 OBJ/STL 时优先用 scripts/sw import mesh reference.py 。 12. 如果必须由大模型生成 VBA 宏,先使用 sw macro guard.py 做模型分流、代码校验、重试和本地模板兜底。 13. 使用 session.export() 或 sw export.py 保存/导出文件。 14. 使用 sw review.py 导出预览图并自审查;如果有 GUI/桌面截图能力,打开 SolidWorks 视图截图复核。 15. 遇到钣金、焊件、复杂曲面、模具、Routing、Simulation/FEA、复杂 Motion 或配置族任务,先运行 sw capability probe.py 并读取 references/complex mechanical routing.md ;Routing 使用 routing preflight/check routing ,FEA 使用 fea preflight/prepare fea/run fea/run fea convergence ,复杂曲面使用 review advanced geometry/create ocp loft/create ocp surface 。FEA 和高级曲面求解通过仍为 review required 。 16. 需要企业/项目机械知识时读取 references/enterprise agent rag.md ;默认只用本地知识,云 RAG 必须显式启用、声明 external network 并完成人工审批。 17. 当一个需求同时跨越零件、孔槽/圆角、装配 Mate、Motion、工程图/BOM 和多格式交付中的两个以上工程域时,调用 apps/desktop/cad workbench/engineering orchestrator.py 生成阶段 DAG。必须按依赖串行执行关键 CAD 写操作,每阶段独立保存产物和验收证据;局部修改只重规划受影响阶段及其后继,禁止把整项工程塞进一条超长 Prompt 后一次性宣称完成。 机械图纸默认底线 以后凡是本技能参与 CAD/机械结构/3D 打印项目,都默认执行这些底线: 1. 不把“看得懂的示意图”当成“能制造的工程图”。只要涉及开孔、开槽、接口、装配孔或打印外壳,必须补齐外形尺寸、壁厚/底厚、孔槽规格和定位尺寸。 2. 用户要求“中国常用格式”“国标风格”“严格规范”时,必须采用国内机械制图习惯:规范图幅/图框/标题栏、仿宋中文、分层线型、中心线/虚线、真实标注实体和技术要求。 3. 长引线只能做局部说明,不能替代尺寸链;不得跨视图、压孔、压中心线、压尺寸文字或侵入标题栏。 4. 密集孔槽必须优先用孔表、槽表或孔槽明细表,表内写清部位、规格、数量和定位;表格不能成为逃避定位尺寸的借口。 5. 交付前必须目视复核预览图,发现漏标、重叠、压线或标题栏侵入时先返工再汇报。 高还原外观/公开网格参考模型 当用户要求汽车、消费电子、雕塑等真实对象外观高还原时,先区分“视觉参考模型”和“工程可制造参数模型”: 1. 若用户要“像原版”,优先索取或查找公开 3D 模型/多视图蓝图,并记录来源、作者、许可证和下载日期;不要声称生成的是官方 Class A 或扫描级模型。 2. .glb/.gltf/.fbx/.blend 先转换为 .obj/.stl ;OBJ 优先保留材质,STL 作为无材质兜底。 3. 导入前用包围盒确认坐标轴和尺度,再按真实公称尺寸缩放。 4. 如果需要 Python 转换/缩放,先确认 requirements mesh.txt 中的可选依赖可用;缺失时说明用途并提示安装。 5. OBJ/STL 导入 SolidWorks 时用 sw import mesh reference.py ;关键写法是 LoadFile4(path, "r", create empty dispatch variant(), errors) ,不要用 OpenDoc6() 或把 None 传给 LoadFile4() 。 6. 结果审查必须看四视图和关键识别特征;“预览非空白”不能替代“像用户指定对象”。 7. 若用户后续要工程可编辑结构,应基于网格参考分件逆向重建,并明确说明网格导入件不是参数化实体。 多色外观要求 当模型包含车身、玻璃、灯组、轮胎、轮毂或其他多种颜色时: 1. 读取 references/appearance.md ,统一使用 sw appearance.py ,禁止把普通 Python list 直接传给 COM 材质属性。 2. 源零件先设置文档级颜色;装配体中需要覆盖时再用组件级颜色。 3. 每次设置后调用 verify appearance() 或 apply component palette() 回读 RGB;只检查 setter 返回值不算通过。 4. 保存与截图前调用 model.ClearSelection2(True) ; sw review.save preview() 已内置该清理。 5. 目视确认至少三种预期颜色真实可见;“预览非空白”不能替代颜色检查。 6. 外观异常时先运行 tests/solidworks appearance regression.py ,再重建用户模型。 MCP Server 使用 当用户要求“让 SolidWorks 支持 MCP”“接入 Codex/Claude Desktop 工具调用”“不要每次生成一大段 Python 脚本”时: 1. 读取 mcp server/README.md 。 2. 若用户要求自动配置 MCP,优先运行多客户端注册器: powershell ExecutionPolicy Bypass File mcp server/register all ai mcp.ps1 InstallDependencies ;它会尝试注册 Codex、Claude Code、Cla