Skip to main content
Glama
SolidWorks MCP Server

SolidWorks MCP Server

by hayward2007

SolidWorks MCP Server ๐Ÿ”ง

Claude์—์„œ ์ž์—ฐ์–ด๋กœ SolidWorks๋ฅผ ์กฐ์ž‘ํ•˜๋Š” MCP ์„œ๋ฒ„ Control SolidWorks from Claude with natural language (Model Context Protocol)

License: MIT Python 3.10+ SolidWorks 2023-2025 MCP

ํ•œ๊ตญ์–ด ยท English

์ด ์ €์žฅ์†Œ๋Š” alisamsam/Solidworks-MCP (MIT, Samsaam Ali Baig)๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ Windows ์›ํด๋ฆญ ์„ค์น˜, SolidWorks 2025 COM ํ˜ธํ™˜์„ฑ ์ˆ˜์ •, ํ•œ๊ตญ์–ด SolidWorks ์ง€์›์„ ๋”ํ•œ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.

Based on alisamsam/Solidworks-MCP (MIT, Samsaam Ali Baig), with a one-click Windows installer, SolidWorks 2025 COM fixes and support for localized (e.g. Korean) SolidWorks.

Design Studio: ์—ญ์„ค๊ณ„ ยท ๊ทผ๊ฑฐ DB ยท ์‚ฌ์šฉ์ž ๊ฒ€ํ†  ยท ์„ค๊ณ„ ๊ฐœ์„ 

CLI์™€ Claude/Codex์—์„œ ์กฐ์‚ฌ โ†’ ์ฆ๊ฑฐ โ†’ ๊ตฌ์ฒด์  ํ˜•์ƒยท์น˜์ˆ˜ โ†’ ๋Œ€์•ˆ ๋น„๊ต โ†’ ์ •๋Ÿ‰ยท์™ธํ˜• ๊ฒ€ํ†  โ†’ ๊ฐœ์„ ์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ํ’ˆ์งˆ ์šฐ์„  RAG, SQLite ์ฆ๊ฑฐ/์„ค๊ณ„ ์ด๋ ฅ, ๊ณ„์‚ฐ ์žฌ๊ฒ€์ฆ, ์‚ฌ์šฉ์ž ๊ฒ€ํ†  ํŒจํ‚ท์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด CADยท๊ฒ€์ฆ ๋„๊ตฌ 35๊ฐœ(ํ‘œ์ค€ ๊ฒ€์ฆ ๋ฐฐํ„ฐ๋ฆฌ verify_model ํฌํ•จ)๋ฅผ ์œ ์ง€ํ•˜๊ณ  Windows ์„œ๋ฒ„์— Design Studio ๋„๊ตฌ 17๊ฐœ๋ฅผ ๋”ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋…๋ฆฝ ์„œ๋ฒ„์˜ 16๊ฐœ ๋„๊ตฌ๋Š” macOS/Linux์—์„œ๋„ ์‹คํ–‰๋˜๋ฉฐ, ์‹ค์ œ CAD ์กฐ์ž‘ยทnative capture๋Š” Windows์—์„œ ํ•ฉ๋‹ˆ๋‹ค.

python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e .
sw-design doctor --mcp
sw-design demo --output ./sensor-front-example
sw-design connect --client codex --apply
sw-design start sensor-front-demo --agent codex

Windows์—์„œ๋Š” .venv\Scripts\python.exe -m pip install -e ".[cad]"์™€ .venv\Scripts\sw-design.exe๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. connect --client claude-code --apply๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์ œ๋Š” ๊ฐ€์ • ๊ธฐ๋ฐ˜์˜ ์‹ค์ œ ๊ณ„์‚ฐ ๋ฐ˜๋ณต์ด๋ฉฐ ์ œํ’ˆ ์‹ค์ธกยทํ•ด์„ยท์Šน์ธ ๊ฒฐ๊ณผ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

์ „์ฒด ์‚ฌ์šฉ๋ฒ•ยท์˜ˆ์ œยท๊ฒ€ํ†  ๊ณผ์ • ยท ๊ตฌํ˜„ ๊ณ„ํš ยท ํ’ˆ์งˆ ์ •์ฑ… ยท ํ‘œ์ค€ ์ ์šฉ ๋ฒ”์œ„

Related MCP server: solidworks-mcp-python

์„ค์น˜: Claude์—๊ฒŒ ํ•œ ๋งˆ๋”” ยท Install: just ask Claude

"https://github.com/hayward2007/solidworks-mcp ์„ค์น˜ํ•ด์ค˜" ยท "Install https://github.com/hayward2007/solidworks-mcp"

Claude Code(Windows)๋Š” ๋ฐ”๋กœ ์„ค์น˜ํ•˜๊ณ , Claude Desktop(Cowork)์€ ๋”๋ธ”ํด๋ฆญํ•  ์„ค์น˜ ํŒŒ์ผ์„ ์ฃผ๊ณ  ์„ค๊ณ„ ์Šคํ‚ฌ ์ €์žฅ ์นด๋“œ๋ฅผ ๋„์›Œ์š”. ์ง์ ‘ ํ•˜๋ ค๋ฉด PowerShell์— ์ด ํ•œ ์ค„์„ ๋ถ™์—ฌ ๋„ฃ์œผ์„ธ์š”. Claude Code on Windows installs it right away; Claude Desktop (Cowork) gives you an installer to double-click and offers the design skill to save. To do it yourself, paste this line into PowerShell:

irm https://raw.githubusercontent.com/hayward2007/solidworks-mcp/main/install.ps1 | iex

๋๋‚˜๋ฉด SolidWorks๋ฅผ ์—ด๊ณ , Claude Desktop์„ ํŠธ๋ ˆ์ด ์•„์ด์ฝ˜ โ†’ ์ข…๋ฃŒ(Quit)๋กœ ์™„์ „ํžˆ ๋ˆ ๋’ค ๋‹ค์‹œ ์ผœ์„ธ์š”. Then open SolidWorks, fully quit Claude Desktop (tray icon โ†’ Quit) and start it again.

The server has to run on the user's Windows PC next to SolidWorks; never install it inside a Linux VM or a cloud container.

  1. If you can run commands on that PC (Claude Code on Windows; from WSL call powershell.exe), run:

    powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://raw.githubusercontent.com/hayward2007/solidworks-mcp/main/install.ps1 | iex"

    It puts the code in %USERPROFILE%\solidworks-mcp (or updates it), creates .venv, installs the requirements, self-tests the server (52 tools, including Design Studio), registers solidworks in Claude Desktop and in Claude Code (claude mcp add --scope user) and copies the skill to ~/.claude/skills/solidworks-design. The first run takes a few minutes; success ends with All set.

    • If it reports Python 3.10 or newer (64-bit) was not found, ask the user, then install Python 3.13 with winget and continue: powershell -NoProfile -ExecutionPolicy Bypass -Command "& ([scriptblock]::Create((irm https://raw.githubusercontent.com/hayward2007/solidworks-mcp/main/install.ps1))) -InstallPython"

    • Other options go in the same place: -InstallDir <path>, -NoClaudeDesktop, -NoClaudeCode, -NoSkill, -Uninstall.

  2. If you cannot run Windows programs (Claude Desktop / Cowork, where your shell is a Linux VM or a cloud container):

    • Download https://raw.githubusercontent.com/hayward2007/solidworks-mcp/main/setup_windows.bat, save it into a folder the user connected (or send it as a file) and ask them to double-click it. It runs the same installer and asks before installing Python. Pasting the PowerShell line above works too.

    • Offer the design skill: propose the contents of skills/solidworks-design/SKILL.md as a new skill named solidworks-design for the user to save. Cowork does not pass MCP server instructions to the model; this skill brings in the working rules.

  3. Afterwards ask the user to open SolidWorks and to fully quit Claude Desktop (tray icon โ†’ Quit) and start it again; in Claude Code a new session is enough. The solidworks tools should then be available (knowledge_get("agent-guide") is a quick check). If they are not, read setup_mcp.log in the install folder and run the installer again while Claude Desktop is closed.


ํ•œ๊ตญ์–ด

๋ชฉ์ฐจ

  1. ์†Œ๊ฐœ

  2. ์›๋ณธ ๋Œ€๋น„ ๋ณ€๊ฒฝ ์‚ฌํ•ญ

  3. ์š”๊ตฌ ์‚ฌํ•ญ

  4. ๋น ๋ฅธ ์‹œ์ž‘

  5. ์„ค์น˜ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ํ•˜๋Š” ์ผ

  6. ์ˆ˜๋™ ์„ค์ •

  7. ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

  8. Text-to-CAD ์ž‘์—… ํ๋ฆ„

  9. ๋„๊ตฌ ๋ชฉ๋ก

  10. execute_python ๊ณ ๊ธ‰ ์‚ฌ์šฉ

  11. ์„ค๊ณ„ ์ง€์‹ ๋ฒ ์ด์Šค

  12. ๊ธฐ์–ด ์ƒ์„ฑ๊ธฐ

  13. ํ† ํด๋กœ์ง€ ์ตœ์ ํ™”

  14. ์„ค์ • ํŒŒ์ผ config.json

  15. ๋ฌธ์ œ ํ•ด๊ฒฐ

  16. ์—…๋ฐ์ดํŠธ์™€ ์ œ๊ฑฐ

  17. ๋กœ๋“œ๋งต

  18. ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

  19. ๋ผ์ด์„ ์Šค์™€ ํฌ๋ ˆ๋”ง

์†Œ๊ฐœ

SolidWorks MCP Server๋Š” Claude ๊ฐ™์€ AI ์—์ด์ „ํŠธ๊ฐ€ SolidWorks๋ฅผ ์ง์ ‘ ์กฐ์ž‘ํ•˜๊ฒŒ ํ•ด ์ฃผ๋Š” Model Context Protocol ์„œ๋ฒ„์˜ˆ์š”. ๋ฉ”๋‰ด๋ฅผ ํด๋ฆญํ•˜๋Š” ๋Œ€์‹  ๋งŒ๋“ค๊ณ  ์‹ถ์€ ํ˜•์ƒ์„ ๋ง๋กœ ์„ค๋ช…ํ•˜๋ฉด, Claude๊ฐ€ SolidWorks COM API๋กœ ํŒŒํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ์Šค์ผ€์น˜๋ฅผ ๊ทธ๋ฆฌ๊ณ  ํ”ผ์ฒ˜๋ฅผ ์ถ”๊ฐ€ํ•ด์š”.

  • ๋„๊ตฌ 52๊ฐœ (CADยท๊ฒ€์ฆ 35 + Design Studio 17): ์—ฐ๊ฒฐ, ๋ฌธ์„œ, ์Šค์ผ€์น˜, ํ”ผ์ฒ˜, ์œ ํ‹ธ๋ฆฌํ‹ฐ, SolidWorks API๋ฅผ ์ง์ ‘ ์‹คํ–‰ํ•˜๋Š” execute_python, ๊ฒ€์ฆ(Text-to-CAD), ์„ค๊ณ„ ์ง€์‹ ๊ฒ€์ƒ‰, ๊ธฐ์–ด ์ƒ์„ฑ, ํ† ํด๋กœ์ง€ ์ตœ์ ํ™”

  • ์—์ด์ „ํŠธ์šฉ ์ž‘์—… ๊ทœ์น™(ํ† ํฐ ์ ˆ์•ฝ, ์„ค๊ณ„ ๊ทผ๊ฑฐ)์ด ๋งค ์„ธ์…˜ ์ž๋™ ์ ์šฉ๋ผ์š”

  • SolidWorks 2023โ€“2025 ์ง€์›, ์„ค์น˜ ๊ฒฝ๋กœ ์ž๋™ ํƒ์ง€(๋ ˆ์ง€์ŠคํŠธ๋ฆฌ)

  • ๋‹จ์œ„: mm, cm, m, inch, ft (๊ธฐ๋ณธ mm)

  • ๋™์ž‘ ๋กœ๊ทธ: solidworks_mcp/solidworks_mcp.log

์›๋ณธ ๋Œ€๋น„ ๋ณ€๊ฒฝ ์‚ฌํ•ญ

๊ตฌ๋ถ„

๋‚ด์šฉ

์„ค์น˜ ์˜ค๋ฅ˜ ์ˆ˜์ •

requirements.txt์—์„œ PyPI์— ์—†๋Š” asyncio-compat๋ฅผ ๋บ์–ด์š”. ์ด ์ค„ ๋•Œ๋ฌธ์— pip install -r requirements.txt๊ฐ€ ํ•ญ์ƒ ์‹คํŒจํ–ˆ์–ด์š”.

์‹œ์ž‘ ์˜ค๋ฅ˜ ์ˆ˜์ •

mcp>=1.0.0,<2๋กœ ๊ณ ์ •ํ–ˆ์–ด์š”. mcp 2.x๋Š” ์„œ๋ฒ„๊ฐ€ ์“ฐ๋Š” Server.list_tools() / call_tool() ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋ฅผ ์—†์• ์„œ, ์„ค์น˜๋˜๋ฉด ์„œ๋ฒ„๊ฐ€ AttributeError๋กœ ๋ฐ”๋กœ ๊บผ์ ธ์š”.

ํ•œ ์ค„ ์„ค์น˜

install.ps1(PowerShell ํ•œ ์ค„, ๋˜๋Š” setup_windows.bat ๋”๋ธ”ํด๋ฆญ) + setup_mcp.py: ์ฝ”๋“œ ๋ฐ›๊ธฐ, Python ์ฐพ๊ธฐ(์—†์œผ๋ฉด winget ์„ค์น˜ ์ œ์•ˆ), ๊ฐ€์ƒํ™˜๊ฒฝ, ํŒจํ‚ค์ง€, ์„œ๋ฒ„ ์ž๊ฐ€ ์ง„๋‹จ, Claude DesktopยทClaude Code ๋“ฑ๋ก, ์„ค๊ณ„ ์Šคํ‚ฌ ์„ค์น˜๊นŒ์ง€ ํ•œ ๋ฒˆ์— ํ•ด์š”. Claude์—๊ฒŒ "์„ค์น˜ํ•ด์ค˜"๋ผ๊ณ  ํ•˜๋ฉด ๋Œ€์‹  ์‹คํ–‰ํ•ด์š”.

SolidWorks 2025 COM ํ˜ธํ™˜์„ฑ

automation/base.py์— _com_value()๋ฅผ ์ถ”๊ฐ€ํ•ด์„œ ๋‹ค์Œ์„ ๊ณ ์ณค์–ด์š”. list_open_documents("๊ตฌ์„ฑ์›์ด ์—†์Šต๋‹ˆ๋‹ค" ์˜ค๋ฅ˜), get_document_info('int' object is not callable ์˜ค๋ฅ˜), list_features(์ฒซ ํ”ผ์ฒ˜ 1๊ฐœ๋งŒ ๋‚˜์˜ค๊ณ  ์–ต์ œ ์ƒํƒœ๊ฐ€ ํ•ญ์ƒ false).

ํ•œ๊ตญ์–ด SolidWorks ์ง€์›

create_sketch๊ฐ€ "Front Plane"๋งŒ ์ฐพ์•„์„œ ํ•œ๊ตญ์–ด UI(์ •๋ฉด/์œ—๋ฉด/์šฐ์ธก๋ฉด)์—์„œ ์‹คํŒจํ•˜๋˜ ๋ฌธ์ œ๋ฅผ ๊ณ ์ณค์–ด์š”. ์ด๋ฆ„์œผ๋กœ ๋ชป ์ฐพ์œผ๋ฉด ๊ธฐ๋ณธ ํ‰๋ฉด ์ˆœ์„œ๋กœ ์‹ค์ œ ์ด๋ฆ„์„ ์ฐพ์•„์š”.

์ €์žฅ์†Œ ์ •๋ฆฌ

.env ์ œ์™ธ(์›๋ณธ์—๋Š” API ํ‚ค๊ฐ€ ๋“ค์–ด ์žˆ์—ˆ๊ณ , ์„œ๋ฒ„๋Š” ์ด ํŒŒ์ผ์„ ์“ฐ์ง€ ์•Š์•„์š”), .venv/ ๋ฌด์‹œ, .bat ํŒŒ์ผ ์ค„๋ฐ”๊ฟˆ(CRLF) ๊ณ ์ •.

Text-to-CAD ๊ฒ€์ฆ ๋„๊ตฌ

model_report, render_views, export_model, check_interference๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , execute_python์— ๋„์šฐ๋ฏธ ์ฃผ์ž…๊ณผ report ์˜ต์…˜์„ ๋„ฃ์—ˆ์–ด์š”.

์„ค๊ณ„ ์ง€์‹ ๋ฒ ์ด์Šค

knowledge/ ๋…ธํŠธ 12๊ฐœ์™€ knowledge_search, knowledge_get ๋„๊ตฌ.

๊ธฐ์–ด ์ƒ์„ฑ๊ธฐ

gear_design, create_gear: ์Šคํผยทํ—ฌ๋ฆฌ์ปฌยทํ—ค๋ง๋ณธยท๋‚ด์ ‘ยท๋ž™ยท์ง์„ /์ŠคํŒŒ์ด๋Ÿด ๋ฒ ๋ฒจยท์›œยท์›œํœ ์„ ๊ทœ๊ฒฉ ๊ณต์‹์œผ๋กœ ๋งŒ๋“ค๊ณ  ๋ถ€ํ”ผ์™€ ๋ฌผ๋ฆผ ๊ฐ„์„ญ์œผ๋กœ ์Šค์Šค๋กœ ๊ฒ€์ฆํ•ด์š”.

ํ† ํด๋กœ์ง€ ์ตœ์ ํ™”

topology_optimize: ToPy๋ฅผ Python 3๋กœ ์˜ฎ๊ธด 2D/3D ๊ฐ•์„ฑยท๋ฉ”์ปค๋‹ˆ์ฆ˜ ์ตœ์ ํ™”์— ์—ด์ „๋„(+๋Œ€๋ฅ˜ ๊ฒฝ๊ณ„)์™€ ๋ณตํ•ฉ ๋ชจ๋“œ๋ฅผ ๋”ํ–ˆ์–ด์š”. ํ•˜์ค‘ยท์—ด์€ ์ตœ๋Œ€๊ฐ’์œผ๋กœ ๋ฐ›๊ณ  2๋ฐฐ(์•ˆ์ „๊ณ„์ˆ˜ 2 ์ด์ƒ)๋กœ ์„ค๊ณ„ํ•˜๋ฉฐ, ๋ณผํŠธยทํƒญยทํ•€ยทํŒจ๋“œ ์ฒด๊ฒฐ๋ถ€๋Š” ๊ทœ๊ฒฉ ๊ตฌ๋ฉ๊ณผ ๋ณด์กด ๋ง์„ ๋งŒ๋“ค๊ณ  ์ฒด๊ฒฐ๋ถ€๋ณ„๋กœ ๊ฒ€ํ† ํ•ด์š”. ๊ฒฐ๊ณผ๋ฅผ SolidWorks ํŒŒํŠธ๋กœ ๋งŒ๋“ค์–ด์š”.

์—์ด์ „ํŠธ ๊ฐ€์ด๋“œ

์ž‘์—… ํ๋ฆ„, ํ† ํฐ ์ ˆ์•ฝ, ๊ทผ๊ฑฐ ๊ทœ์น™์„ ์„œ๋ฒ„ instructions๋กœ ๋งค ์„ธ์…˜ ์ž๋™ ์ ์šฉํ•ด์š”.

์„ค๊ณ„ ์Šคํ‚ฌ

skills/solidworks-design: Cowork์ฒ˜๋Ÿผ ์„œ๋ฒ„ instructions๋ฅผ ๋„˜๊ธฐ์ง€ ์•Š๋Š” ํด๋ผ์ด์–ธํŠธ์—์„œ๋„ ๊ฐ™์€ ์ž‘์—… ๊ทœ์น™์„ ๋ถˆ๋Ÿฌ์˜ค๋Š” Claude ์Šคํ‚ฌ์ด์—์š”. ๋„๊ตฌ ์„ค๋ช…์—๋„ knowledge_get("agent-guide") ์•ˆ๋‚ด๋ฅผ ๋„ฃ์—ˆ์–ด์š”.

์ถœ๋ ฅ ํ† ํฐ ์ ˆ๊ฐ

execute_python ๊ฒฐ๊ณผ ์ค‘๋ณต ์ œ๊ฑฐ, JSON ์••์ถ• ์ถœ๋ ฅ(ํ•œ๊ธ€์„ \u ์ด์Šค์ผ€์ดํ”„ ์—†์ด), ํŠธ๋ ˆ์ด์Šค๋ฐฑ์„ ์Šคํฌ๋ฆฝํŠธ ๋ถ€๋ถ„๋งŒ ๋‚จ๊ฒจ์š”.

์š”๊ตฌ ์‚ฌํ•ญ

  • Windows 10 / 11 (64๋น„ํŠธ)

  • SolidWorks 2023โ€“2025 (์„ค์น˜ ๋ฐ ๋ผ์ด์„ ์Šค ํ•„์š”)

  • Python 3.10 ์ด์ƒ(64๋น„ํŠธ): python.org ์„ค์น˜ํŒ ๋˜๋Š” Python Install Manager(py) ๋ชจ๋‘ ๋ผ์š”. ์—†์œผ๋ฉด ์„ค์น˜ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ winget์œผ๋กœ Python 3.13์„ ์„ค์น˜ํ•ด ์ค„ ์ˆ˜ ์žˆ์–ด์š”

  • Claude Desktop ๋˜๋Š” Claude Code

  • ์ฒ˜์Œ ์„ค์น˜ํ•  ๋•Œ ์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ (pip ํŒจํ‚ค์ง€ ๋‹ค์šด๋กœ๋“œ, ํ† ํด๋กœ์ง€ ์ตœ์ ํ™”์šฉ numpyยทscipy ํฌํ•จ ์•ฝ 60 MB)

๊ฒ€์ฆ ํ™˜๊ฒฝ: SolidWorks 2025 (revision 33.5.0, ํ•œ๊ตญ์–ด UI), Python 3.14.7, Claude Desktop (Windows, Microsoft Store/MSIX ์„ค์น˜ํŒ).

๋น ๋ฅธ ์‹œ์ž‘

๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ ๋งจ ์œ„์ฒ˜๋Ÿผ Claude์—๊ฒŒ ์„ค์น˜ํ•ด ๋‹ฌ๋ผ๊ณ  ํ•˜๋Š” ๊ฑฐ์˜ˆ์š”. ์ง์ ‘ ํ•˜๋ ค๋ฉด:

  1. ์„ค์น˜ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰: PowerShell์— ํ•œ ์ค„์„ ๋ถ™์—ฌ ๋„ฃ์œผ์„ธ์š”.

    irm https://raw.githubusercontent.com/hayward2007/solidworks-mcp/main/install.ps1 | iex

    ์ฝ”๋“œ๋Š” %USERPROFILE%\solidworks-mcp์— ๋ฐ›์•„์š”. ์ €์žฅ์†Œ๋ฅผ ์ง์ ‘ ๋ฐ›์•˜๋‹ค๋ฉด(git clone https://github.com/hayward2007/solidworks-mcp.git ๋˜๋Š” ZIP) ๊ทธ ํด๋”์˜ setup_windows.bat์„ ๋”๋ธ”ํด๋ฆญํ•ด๋„ ๋ผ์š”. ๋งˆ์ง€๋ง‰์— All set์ด ๋‚˜์˜ค๋ฉด ๋์ด์—์š”. ํด๋” ๊ฒฝ๋กœ๊ฐ€ Claude ์„ค์ •์— ๊ธฐ๋ก๋˜๋‹ˆ๊นŒ, ๋‚˜์ค‘์— ํด๋”๋ฅผ ์˜ฎ๊ธฐ๋ฉด ๋‹ค์‹œ ์‹คํ–‰ํ•˜์„ธ์š”.

  2. Claude Desktop ์™„์ „ํžˆ ์ข…๋ฃŒ ํ›„ ๋‹ค์‹œ ์‹คํ–‰: ์ž‘์—… ํ‘œ์‹œ์ค„ ์˜ค๋ฅธ์ชฝ ์•„๋ž˜ ํŠธ๋ ˆ์ด(^ ์•ˆ์ชฝ์ผ ์ˆ˜ ์žˆ์Œ)์˜ Claude ์•„์ด์ฝ˜์„ ์šฐํด๋ฆญํ•ด์„œ ์ข…๋ฃŒ(Quit) ๋ฅผ ๋ˆ„๋ฅด๊ณ  ๋‹ค์‹œ ์ผœ์„ธ์š”. ์ฐฝ๋งŒ ๋‹ซ์œผ๋ฉด ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ๊ณ„์† ๋Œ์•„๊ฐ€์„œ ์ƒˆ ์„ค์ •์„ ์ฝ์ง€ ์•Š์•„์š”. Claude Code๋Š” ์ƒˆ ์„ธ์…˜์„ ์‹œ์ž‘ํ•˜๋ฉด ๋ผ์š”.

  3. SolidWorks๋ฅผ ์—ด๊ณ  Claude์—๊ฒŒ "SolidWorks์— ์—ฐ๊ฒฐํ•ด์ค˜"๋ผ๊ณ  ๋งํ•˜์„ธ์š”.

Claude์˜ ์„ค์ •(Settings) โ†’ ๊ฐœ๋ฐœ์ž(Developer)์—์„œ solidworks ์„œ๋ฒ„๊ฐ€ running์œผ๋กœ ๋ณด์ด๋ฉด ์ •์ƒ์ด์—์š”.

Cowork๋ฅผ ์“ด๋‹ค๋ฉด ์„ค๊ณ„ ์Šคํ‚ฌ๋„ ์ €์žฅํ•˜์„ธ์š”. Cowork๋Š” ์„œ๋ฒ„ instructions(์ž‘์—… ๊ทœ์น™)๋ฅผ ๋ชจ๋ธ์— ๋„˜๊ธฐ์ง€ ์•Š์•„์„œ, solidworks-design ์Šคํ‚ฌ์ด ๊ทธ ๊ทœ์น™์„ ๋ถˆ๋Ÿฌ์™€์š”. Cowork์—์„œ Claude์—๊ฒŒ "https://github.com/hayward2007/solidworks-mcp ์˜ solidworks-design ์Šคํ‚ฌ ์ €์žฅํ•ด์ค˜"๋ผ๊ณ  ํ•˜๋ฉด ์ €์žฅ ์นด๋“œ๊ฐ€ ๋– ์š”. claude.ai์—์„œ๋Š” ์„ค์น˜ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋งŒ๋“  dist\solidworks-design.zip์„ ์„ค์ • โ†’ Capabilities โ†’ Skills์—์„œ ์˜ฌ๋ ค๋„ ๋ผ์š”. Claude Code์—๋Š” ์„ค์น˜ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ~/.claude/skills์— ๋„ฃ์–ด ์ค˜์š”.

์„ค์น˜ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ํ•˜๋Š” ์ผ

  1. ์ฝ”๋“œ๋ฅผ ๋ฐ›์•„์š”: %USERPROFILE%\solidworks-mcp์— git clone(git์ด ์—†์œผ๋ฉด GitHub ZIP)ํ•˜๊ณ , ์ด๋ฏธ ์žˆ์œผ๋ฉด ์—…๋ฐ์ดํŠธํ•ด์š”. ์ €์žฅ์†Œ ์•ˆ์˜ setup_windows.bat์œผ๋กœ ์‹คํ–‰ํ•˜๋ฉด ๊ทธ ํด๋”๋ฅผ ๊ทธ๋Œ€๋กœ ์จ์š”.

  2. 64๋น„ํŠธ Python 3.10 ์ด์ƒ์„ ์ฐพ์•„์š”: py -0p ๋ชฉ๋ก โ†’ py -3 โ†’ PATH์˜ python โ†’ %LOCALAPPDATA%\Python\pythoncore-3.*, %LOCALAPPDATA%\Programs\Python\Python3*, %ProgramFiles%\Python3* ์ˆœ์„œ์˜ˆ์š”. numpyยทscipyยทpywin32 ํœ ์ด ์žˆ๋Š” 3.10โ€“3.14 ์ค‘ ๊ฐ€์žฅ ์ƒˆ ๋ฒ„์ „์„ ๊ณจ๋ผ์š”. ์—†์œผ๋ฉด winget์œผ๋กœ Python 3.13์„ ์„ค์น˜ํ• ์ง€ ๋ฌผ์–ด๋ด์š”(-InstallPython์ด๋ฉด ๋ฌป์ง€ ์•Š๊ณ  ์„ค์น˜).

  3. ํ”„๋กœ์ ํŠธ ํด๋”์— ๊ฐ€์ƒํ™˜๊ฒฝ .venv๋ฅผ ๋งŒ๋“ค์–ด์š” (์ด๋ฏธ ์žˆ์œผ๋ฉด ๋‹ค์‹œ ์จ์š”).

  4. requirements.txt๋ฅผ ์„ค์น˜ํ•ด์š” (mcp 1.x, pywin32, python-dotenv, Pillow, numpy, scipy).

  5. ์„œ๋ฒ„ ์ž๊ฐ€ ์ง„๋‹จ: Claude Desktop๊ณผ ๊ฐ™์€ ๋ฐฉ์‹(stdio)์œผ๋กœ ์„œ๋ฒ„๋ฅผ ๋„์›Œ์„œ MCP ์ดˆ๊ธฐํ™”์™€ ๋„๊ตฌ ๋ชฉ๋ก(51๊ฐœ)์„ ํ™•์ธํ•ด์š”.

  6. Claude Desktop ์„ค์ • ํŒŒ์ผ์— solidworks ์„œ๋ฒ„๋ฅผ ๋“ฑ๋กํ•ด์š”. ๋‹ค๋ฅธ ์„œ๋ฒ„์™€ ์„ค์ •์€ ๊ทธ๋Œ€๋กœ ๋‘๊ณ , ๋ฐ”๊พธ๊ธฐ ์ „์— claude_desktop_config.json.bak-๋‚ ์งœ-์‹œ๊ฐ„ ๋ฐฑ์—…์„ ๋งŒ๋“ค์–ด์š”. Microsoft Store(MSIX) ์„ค์น˜ํŒ์˜ ์„ค์ • ์œ„์น˜๋„ ํ•จ๊ป˜ ๊ฐฑ์‹ ํ•ด์š”.

  7. Claude Code(claude CLI)๊ฐ€ ์žˆ์œผ๋ฉด claude mcp add --scope user๋กœ ๋“ฑ๋กํ•˜๊ณ  ์„ค๊ณ„ ์Šคํ‚ฌ์„ ~/.claude/skills/solidworks-design์— ๋ณต์‚ฌํ•ด์š”. Claude Desktopยทclaude.ai์— ์˜ฌ๋ฆด dist\solidworks-design.zip๋„ ๋งŒ๋“ค์–ด์š”.

  8. ํ™”๋ฉด์— ๋‚˜์˜จ ๋‚ด์šฉ์„ setup_mcp.log์— ์ €์žฅํ•ด์š”.

์—ฌ๋Ÿฌ ๋ฒˆ ์‹คํ–‰ํ•ด๋„ ์•ˆ์ „ํ•ด์š”. ์ด๋ฏธ ๋“ฑ๋ก๋ผ ์žˆ์œผ๋ฉด already up to date๊ฐ€ ๋‚˜์™€์š”. ์˜ต์…˜: -InstallDir ๊ฒฝ๋กœ, -InstallPython, -NoClaudeDesktop, -NoClaudeCode, -NoSkill, -Uninstall. setup_windows.bat์—๋„ ๊ทธ๋Œ€๋กœ ๋„˜๊ธธ ์ˆ˜ ์žˆ์–ด์š”(์˜ˆ: setup_windows.bat -Uninstall).

์ˆ˜๋™ ์„ค์ •

1) ํŒจํ‚ค์ง€ ์„ค์น˜

cd C:\๊ฒฝ๋กœ\Solidworks-MCP
py -m venv .venv
.venv\Scripts\python.exe -m pip install -r requirements.txt

2) Claude Desktop

Claude โ†’ ์„ค์ • โ†’ ๊ฐœ๋ฐœ์ž โ†’ ์„ค์ • ํŽธ์ง‘(Edit Config) ์œผ๋กœ ์—ด๋ฆฌ๋Š” claude_desktop_config.json์˜ mcpServers์— ์ถ”๊ฐ€ํ•˜์„ธ์š”.

{
  "mcpServers": {
    "solidworks": {
      "command": "C:\\๊ฒฝ๋กœ\\Solidworks-MCP\\.venv\\Scripts\\python.exe",
      "args": ["C:\\๊ฒฝ๋กœ\\Solidworks-MCP\\solidworks_mcp_server.py"]
    }
  }
}

์„ค์ • ํŒŒ์ผ ์œ„์น˜:

  • ์ผ๋ฐ˜ ์„ค์น˜: %APPDATA%\Claude\claude_desktop_config.json

  • Microsoft Store/MSIX ์„ค์น˜: %LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\claude_desktop_config.json

"command": "python" ๋Œ€์‹  .venv ์•ˆ์˜ python.exe ์ „์ฒด ๊ฒฝ๋กœ๋ฅผ ์“ฐ๋Š” ์ด์œ : PATH์˜ python์ด Microsoft Store ๋ณ„์นญ์ด๊ฑฐ๋‚˜ ํŒจํ‚ค์ง€๊ฐ€ ์—†๋Š” ๋‹ค๋ฅธ ๋ฒ„์ „์ผ ์ˆ˜ ์žˆ์–ด์„œ์˜ˆ์š”. ์ €์žฅํ•œ ๋’ค์—๋Š” Claude๋ฅผ ํŠธ๋ ˆ์ด์—์„œ ์™„์ „ํžˆ ์ข…๋ฃŒํ•˜๊ณ  ๋‹ค์‹œ ์‹คํ–‰ํ•˜์„ธ์š”.

3) Claude Code

claude mcp add --scope user solidworks -- "C:\๊ฒฝ๋กœ\Solidworks-MCP\.venv\Scripts\python.exe" "C:\๊ฒฝ๋กœ\Solidworks-MCP\solidworks_mcp_server.py"
claude mcp list

์‚ฌ์šฉ ๋ฐฉ๋ฒ•

  1. SolidWorks๋ฅผ ๋จผ์ € ์—ด์–ด ๋‘์„ธ์š”. ๊บผ์ ธ ์žˆ์œผ๋ฉด connect_solidworks๊ฐ€ ์ง์ ‘ ์‹คํ–‰ํ•˜๊ณ  ์ตœ๋Œ€ 120์ดˆ ๊ธฐ๋‹ค๋ ค์š”.

  2. Claude์—๊ฒŒ ํ‰์†Œ ๋งํˆฌ๋กœ ์š”์ฒญํ•˜์„ธ์š”. ๊ธธ์ด๋Š” ๋”ฐ๋กœ ๋งํ•˜์ง€ ์•Š์œผ๋ฉด mm์˜ˆ์š”.

์˜ˆ์‹œ:

  • "SolidWorks์— ์—ฐ๊ฒฐํ•ด์ค˜"

  • "์ƒˆ ํŒŒํŠธ๋ฅผ ๋งŒ๋“ค๊ณ , ์œ—๋ฉด์— ๋ฐ˜์ง€๋ฆ„ 30mm ์›์„ ๊ทธ๋ ค์„œ 15mm ๋Œ์ถœํ•ด์ค˜"

  • "์ •๋ฉด์— 100ร—50mm ์‚ฌ๊ฐํ˜•์„ ๊ทธ๋ฆฌ๊ณ  20mm ๋Œ์ถœํ•œ ๋‹ค์Œ, ๊ฐ€์šด๋ฐ์— ์ง€๋ฆ„ 10mm ๊ตฌ๋ฉ์„ ๊ด€ํ†ต ์ปทํ•ด์ค˜"

  • "ํ”ผ์ฒ˜ ๋ชฉ๋ก ๋ณด์—ฌ์ค˜" / "์—ด๋ฆฐ ๋ฌธ์„œ ๋ชฉ๋ก ๋ณด์—ฌ์ค˜" / "ํ˜„์žฌ ๋ฌธ์„œ ์ •๋ณด ์•Œ๋ ค์ค˜"

  • "C:\์ž‘์—…\bracket.SLDPRT๋กœ ์ €์žฅํ•ด์ค˜"

  • "execute_python์œผ๋กœ ํ˜„์žฌ ํŒŒํŠธ์˜ ๋ถ€ํ”ผ์™€ ์งˆ๋Ÿ‰์„ ๊ณ„์‚ฐํ•ด์ค˜"

Claude๋Š” ๋ณดํ†ต create_sketch โ†’ draw_* โ†’ close_sketch โ†’ extrude_sketch ์ˆœ์„œ๋กœ ๋„๊ตฌ๋ฅผ ์จ์š”. ์Šค์ผ€์น˜๊ฐ€ ์—ด๋ฆฐ ์ฑ„๋กœ ๋‚จ์œผ๋ฉด get_sketch_status๋กœ ์ƒํƒœ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.

Text-to-CAD ์ž‘์—… ํ๋ฆ„

์งง๊ฑฐ๋‚˜ ๋ชจํ˜ธํ•œ ์š”์ฒญ๋„ ์—์ด์ „ํŠธ๊ฐ€ ์‚ฌ์–‘์œผ๋กœ ์ •๋ฆฌํ•˜๊ณ , ๋ชจ๋ธ์„ ์ง์ ‘ ๋ณด๊ณ  ์žฌ๋ฉด์„œ ๋น ๋ฅด๊ฒŒ ๋ฐ˜๋ณตํ•˜๊ฒŒ ํ•˜๋Š” ํ๋ฆ„์ด์—์š”. ์„œ๋ฒ„ instructions(solidworks_mcp/instructions.md)๋กœ ๋งค ์„ธ์…˜ ์ž๋™ ์ ์šฉ๋ผ์š”(Cowork๋Š” solidworks-design ์Šคํ‚ฌ๋กœ).

  1. ์‚ฌ์–‘ ์ •๋ฆฌ: ๋ชฉ์ , ๊ธฐ์ค€ ์ขŒํ‘œ๊ณ„, ๋ณดํ˜ธ ์ธํ„ฐํŽ˜์ด์Šค, ํฌ๊ธฐ, ์—ฐ๊ฒฐ๋ถ€, ํ•˜์ค‘ยท๋™์ž‘, ๊ณต์ •ยท์žฌ๋ฃŒ๋ฅผ ์ถฉ๋ถ„ํžˆ ๊ตฌ์ฒดํ™”ํ•ด์š”. ๊ธธ์ด ์ œํ•œ์€ ์—†์–ด์š”. ๋ชจ๋“  ์ˆ˜์น˜์— ๊ทผ๊ฑฐ๋ฅผ ๋ถ™์—ฌ์š”. ์ˆœ์„œ๋Š” [req] ์š”๊ตฌ ์‚ฌํ•ญยท๊ธฐ์กด ํ˜•์ƒ > [std] ๊ทœ๊ฒฉ > [calc] ๊ณ„์‚ฐ > [cat] ์นดํƒˆ๋กœ๊ทธยทํ™•์ธ๋œ ๋ฏธ์Šค๋ฏธ ํ’ˆ๋ฒˆ > [dfm] ๊ณต์ • ๊ทœ์น™ > [heur] ๊ฒฝํ—˜์น™ > [neutral] ๊ทผ๊ฑฐ๊ฐ€ ์—†์„ ๋•Œ์˜ ์ค‘๋ฆฝ๊ฐ’(๋Œ€์นญ, 1:1, ๊ฐ™์€ ๊ฐ„๊ฒฉ, R10 ํ‘œ์ค€์ˆ˜, ์ •์ˆ˜ mm)์ด์—์š”.

  2. ํ•„์š”ํ•œ ์ง€์‹๋งŒ ์กฐํšŒ: design_context(mode="quality")๋กœ ์ •์ฑ…๊ณผ ๊ด€๋ จ ๊ทผ๊ฑฐ๋ฅผ ์ฝ์–ด์š”. ๊ธฐ์กด knowledge_search/knowledge_get๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์š”.

  3. ๋‹จ๊ณ„๋ณ„ ๋ชจ๋ธ๋ง: ๋‹จ๊ณ„๋งˆ๋‹ค execute_python ํ•œ ๋ฒˆ, ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ์Šคํฌ๋ฆฝํŠธ ๋งจ ์œ„์— ๋‘ฌ์š”.

  4. ๋งค ๋‹จ๊ณ„ ๊ฒ€์ฆ: model_report(์˜ค๋ฅ˜ยท๋ฐ”๋””ยท์น˜์ˆ˜ยท์งˆ๋Ÿ‰). ํ˜•์ƒยท์™ธํ˜• ํŒ๋‹จ์— ์ถฉ๋ถ„ํ•œ render_views์™€ ๋‹จ๋ฉด์„ ํ™•๋ณดํ•ด์š”. ์–ด์…ˆ๋ธ”๋ฆฌ๋Š” check_interference.

  5. ํ’ˆ์งˆ ๊ฒŒ์ดํŠธ: ์žฌ์ƒ์„ฑ ์˜ค๋ฅ˜ ์—†์Œ, ์˜๋„ํ•œ ๋ฐ”๋”” ์ˆ˜, ์‚ฌ์–‘ ์น˜์ˆ˜ ์ผ์น˜, ์˜๋„์น˜ ์•Š์€ ๊ฐ„์„ญ ์—†์Œ, ๊ณต์ • ๊ทœ์น™ ์ถฉ์กฑ. ํ†ต๊ณผํ•ด์•ผ ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ๋„˜์–ด๊ฐ€์š”.

  6. ์งง์€ ๋ณด๊ณ : ํ•ต์‹ฌ ์น˜์ˆ˜์™€ ๊ทผ๊ฑฐ, ๊ฒ€์ฆ ์ˆ˜์น˜, ๋‹ค์Œ ์„ ํƒ์ง€ ์ตœ๋Œ€ 3๊ฐœ.

ํ’ˆ์งˆ ์šฐ์„ : ์น˜์ˆ˜ยท๊ทผ๊ฑฐยท๊ฐ€์ •ยท์‹œ๊ฐ ์ฆ๊ฑฐ๋ฅผ ์œ ์ง€ํ•˜๊ณ  ๋ถˆํ•„์š”ํ•œ ๋ฐ˜๋ณต๋งŒ ์ค„์—ฌ์š”. ์ œํ’ˆ ๊ฐœ์„ ์€ ๋Œ€์•ˆ 3๊ฐœ, ์ •๋Ÿ‰ยท์™ธํ˜• ํ‰๊ฐ€, ๊ฒ€ํ†  ํŒจํ‚ท๊ณผ ์‚ฌ์šฉ์ž ๊ฒ€ํ† ๋ฅผ ๊ฑฐ์ณ์š”. ๊ธฐ์กด ๋…ธํŠธ์˜ ํ‘œ์ค€ ํƒœ๊ทธ๋Š” ์›๋ฌธ ํ™•์ธ์„ ๋Œ€์‹ ํ•˜์ง€ ์•Š์•„์š”. ์ž์„ธํ•œ ๋‚ด์šฉ์€ knowledge/agent-guide.md, ๊ทผ๊ฑฐ ๊ทœ์น™์€ knowledge/design-policy.md์— ์žˆ์–ด์š”.

๋„๊ตฌ ๋ชฉ๋ก

๊ธธ์ด ์ธ์ž๊ฐ€ ์žˆ๋Š” ๋„๊ตฌ๋Š” ๋ชจ๋‘ ์„ ํƒ ์ธ์ž unit(mm, cm, m, inch, ft)์„ ๋ฐ›์•„์š”. ๋น„์šฐ๋ฉด ๊ธฐ๋ณธ ๋‹จ์œ„(๊ธฐ๋ณธ mm)๋ฅผ ์จ์š”.

๋ถ„๋ฅ˜

๋„๊ตฌ

ํ•˜๋Š” ์ผ

์ฃผ์š” ์ธ์ž

์—ฐ๊ฒฐ

connect_solidworks

์‹คํ–‰ ์ค‘์ธ SolidWorks์— ์—ฐ๊ฒฐ (๊บผ์ ธ ์žˆ์œผ๋ฉด ์‹คํ–‰)

-

์—ฐ๊ฒฐ

get_solidworks_info

์„ค์น˜ ์ •๋ณด (๋ฒ„์ „, ๊ฒฝ๋กœ, ํ…œํ”Œ๋ฆฟ)

-

๋ฌธ์„œ

create_new_part

์ƒˆ ํŒŒํŠธ

-

๋ฌธ์„œ

create_new_assembly

์ƒˆ ์–ด์…ˆ๋ธ”๋ฆฌ

-

๋ฌธ์„œ

open_document

ํŒŒ์ผ ์—ด๊ธฐ

filepath (ํ•„์ˆ˜)

๋ฌธ์„œ

save_document

์ €์žฅ (๊ฒฝ๋กœ๋ฅผ ์ฃผ๋ฉด ๋‹ค๋ฅธ ์ด๋ฆ„์œผ๋กœ ์ €์žฅ)

filepath

๋ฌธ์„œ

close_document

ํ™œ์„ฑ ๋ฌธ์„œ ๋‹ซ๊ธฐ

save (๊ธฐ๋ณธ false)

๋ฌธ์„œ

get_document_info

ํ™œ์„ฑ ๋ฌธ์„œ ์ด๋ฆ„, ๊ฒฝ๋กœ, ์ข…๋ฅ˜

-

๋ฌธ์„œ

list_open_documents

์—ด๋ฆฐ ๋ฌธ์„œ ๋ชฉ๋ก

-

์Šค์ผ€์น˜

create_sketch

๊ธฐ๋ณธ ํ‰๋ฉด์— ์Šค์ผ€์น˜ ์‹œ์ž‘

plane: Front / Top / Right (= ์ •๋ฉด / ์œ—๋ฉด / ์šฐ์ธก๋ฉด)

์Šค์ผ€์น˜

create_sketch_on_face

3D ์ขŒํ‘œ๋กœ ๊ณ ๋ฅธ ๋ฉด ์œ„์— ์Šค์ผ€์น˜

x, y, z

์Šค์ผ€์น˜

draw_line

์„ 

x1, y1, x2, y2

์Šค์ผ€์น˜

draw_circle

์›

x, y, radius

์Šค์ผ€์น˜

draw_rectangle

๋‘ ๋ชจ์„œ๋ฆฌ๋กœ ์‚ฌ๊ฐํ˜•

x1, y1, x2, y2

์Šค์ผ€์น˜

draw_arc

์ค‘์‹ฌยท๋ฐ˜์ง€๋ฆ„ยท์‹œ์ž‘/๋ ๊ฐ๋„(ยฐ)๋กœ ํ˜ธ

cx, cy, radius, start_angle, end_angle

์Šค์ผ€์น˜

draw_polygon

์ •๋‹ค๊ฐํ˜•

cx, cy, radius, sides

์Šค์ผ€์น˜

close_sketch

์Šค์ผ€์น˜ ์ข…๋ฃŒ

-

์Šค์ผ€์น˜

get_sketch_status

์Šค์ผ€์น˜ ์ƒํƒœ ์ง„๋‹จ

-

ํ”ผ์ฒ˜

extrude_sketch

๋Œ์ถœ ๋ณด์Šค

depth, both_directions

ํ”ผ์ฒ˜

cut_extrude

๋Œ์ถœ ์ปท

depth, through_all, both_directions

ํ”ผ์ฒ˜

fillet_edges

์„ ํƒํ•œ ๋ชจ์„œ๋ฆฌ์— ํ•„๋ ›

radius

ํ”ผ์ฒ˜

chamfer_edges

์„ ํƒํ•œ ๋ชจ์„œ๋ฆฌ์— ๋ชจ๋”ฐ๊ธฐ

distance, angle

ํ”ผ์ฒ˜

list_features

ํ”ผ์ฒ˜ ํŠธ๋ฆฌ ๋ชฉ๋ก (์ด๋ฆ„, ์ข…๋ฅ˜, ์–ต์ œ ์—ฌ๋ถ€)

-

์œ ํ‹ธ

set_units

๊ธฐ๋ณธ ๋‹จ์œ„ ๋ณ€๊ฒฝ

unit: mm / cm / m / inch

์œ ํ‹ธ

execute_python

SolidWorks API๋ฅผ ์“ฐ๋Š” Python ์ฝ”๋“œ ์‹คํ–‰ (๋„์šฐ๋ฏธ ์ฃผ์ž…)

code, report

๊ฒ€์ฆ

model_report

ํ™œ์„ฑ ๋ฌธ์„œ ์š”์•ฝ: ์žฌ์ƒ์„ฑ ์˜ค๋ฅ˜, ํ”ผ์ฒ˜, ๋ฐ”๋””, ๊ฒฝ๊ณ„ ์ƒ์ž(mm), ๋ถ€ํ”ผ, ์งˆ๋Ÿ‰, ์žฌ์งˆ

-

๊ฒ€์ฆ

render_views

ํ‘œ์ค€ ๋ทฐ๋ฅผ ์ž‘์€ ๋ผ๋ฒจ ์ด๋ฏธ์ง€ ํ•˜๋‚˜๋กœ (์Šค์ผ€์น˜ยทํ‰๋ฉด ์ˆจ๊น€, ์‚ฌ์šฉ์ž ๋ทฐ ๋ณต์›)

views, size(๊ธฐ๋ณธ 384), hide_references

๊ฒ€์ฆ

export_model

STEP, STL, 3MF, IGES, Parasolid ๋“ฑ์œผ๋กœ ์‚ฌ๋ณธ ์ €์žฅ

format(๊ธฐ๋ณธ step), path

๊ฒ€์ฆ

check_interference

์–ด์…ˆ๋ธ”๋ฆฌ ๋ถ€ํ’ˆ ์‚ฌ์ด ๊ฐ„์„ญ ๋ถ€ํ”ผ(mmยณ)

-

๊ฒ€์ฆ

verify_model

ํ‘œ์ค€ ๊ฒ€์ฆ ๋ฐฐํ„ฐ๋ฆฌ(V1 ํŒŒํŠธ, V2 ์–ด์…ˆ๋ธ”๋ฆฌ): ๊ฐ’ยท๋ถˆํ™•๋„ยทํ•œ๊ณ„ยทํ†ต๊ณผ ๊ณ ์ • ํ–‰, ๊ฐ„์„ญ ํ—ˆ์šฉ์น˜, ์ž์œ ยท๊ณผ๊ตฌ์† ๋ถ€ํ’ˆ, ๋‹ค๋ฅธ ์—ด๋ฆฐ ์ฐฝ, ์ด์Šˆ ํ›„๋ณด

targets, allow, parked

์ง€์‹

knowledge_search

์„ค๊ณ„ ์ง€์‹ ๋ฒ ์ด์Šค ๊ฒ€์ƒ‰ (ํ•œ๊ธ€ยท์˜์–ด ํ‚ค์›Œ๋“œ)

query, limit

์ง€์‹

knowledge_get

์„น์…˜ ํ•˜๋‚˜, ์ฃผ์ œ ์ „์ฒด, ๋˜๋Š” index

id

๊ธฐ์–ด

gear_design

๊ธฐ์–ด ์น˜์ˆ˜, ์ „์œ„, ์ค‘์‹ฌ๊ฑฐ๋ฆฌ, ๋ฌผ๋ฆผ๋ฅ , ๊ฐ„์„ญ ๊ฒฝ๊ณ  ๊ณ„์‚ฐ (CAD ์—†์ด)

kind, module, teeth

๊ธฐ์–ด

create_gear

๊ธฐ์–ด๋ฅผ ๋„ค์ดํ‹ฐ๋ธŒ ํ”ผ์ฒ˜๋กœ ๋งŒ๋“ค๊ณ  ์ž๊ฐ€ ๊ฒ€์ฆ (์ง ๊ธฐ์–ด์™€ ๋ฌผ๋ฆผ ๊ฒ€์‚ฌ ์„ ํƒ)

type, module, teeth, build_mate

์ตœ์ ํ™”

topology_optimize

2D/3D ์œ„์ƒ ์ตœ์ ํ™”(๊ฐ•์„ฑ, ์—ด์ „๋„+๋Œ€๋ฅ˜, ๋ณตํ•ฉ) ์‹œ์ž‘ยทํ™•์ธ, ์ตœ๋Œ€ ํ•˜์ค‘ยท์—ด์˜ 2๋ฐฐ ์„ค๊ณ„์™€ ์ฒด๊ฒฐ๋ถ€ ๊ฒ€ํ† , ๊ฒฐ๊ณผ๋กœ ํŒŒํŠธ ์ƒ์„ฑ

problem ๋˜๋Š” tpd, job, build

fillet_edges์™€ chamfer_edges๋Š” ๋ชจ์„œ๋ฆฌ๊ฐ€ ๋จผ์ € ์„ ํƒ๋ผ ์žˆ์–ด์•ผ ํ•ด์š”. SolidWorks์—์„œ ์ง์ ‘ ๊ณ ๋ฅด๊ฑฐ๋‚˜ execute_python์œผ๋กœ ์„ ํƒํ•˜์„ธ์š”.

execute_python ๊ณ ๊ธ‰ ์‚ฌ์šฉ

๊ธฐ๋ณธ ๋„๊ตฌ๋กœ ์•ˆ ๋˜๋Š” ์ž‘์—…(๋กœํ”„ํŠธ, ํŒจํ„ด, ์–ด์…ˆ๋ธ”๋ฆฌ ๋ฉ”์ดํŠธ, ์งˆ๋Ÿ‰ ํŠน์„ฑ, ์ด๋ฏธ์ง€ ์ €์žฅ ๋“ฑ)์€ execute_python์œผ๋กœ SolidWorks API๋ฅผ ์ง์ ‘ ์“ธ ์ˆ˜ ์žˆ์–ด์š”.

  • ์“ธ ์ˆ˜ ์žˆ๋Š” ๋ณ€์ˆ˜: sw(SldWorks.Application), doc(ํ™œ์„ฑ ๋ฌธ์„œ), automation(์„œ๋ฒ„์˜ SolidWorksAutomation ๊ฐ์ฒด), win32com, pythoncom, math, os, json

  • ์ฃผ์ž…๋˜๋Š” ๋„์šฐ๋ฏธ: val, call, arr, strings, byref_int, byref_bool, select(SelectByID2), plane("front"/"top"/"right")(ํ•œ๊ตญ์–ด ํ‰๋ฉด ์ด๋ฆ„ ์ž๋™), feats(), feat(์ด๋ฆ„), active(), report(), render(๋ทฐ), store(ํ˜ธ์ถœ ์‚ฌ์ด์— ์œ ์ง€๋˜๋Š” dict), mm(0.001), deg(ฯ€/180)

  • print() ์ถœ๋ ฅ๊ณผ result ๋ณ€์ˆ˜ ๊ฐ’์ด ๊ฒฐ๊ณผ๋กœ ๋Œ์•„์™€์š”. report: true๋กœ ๋ถ€๋ฅด๋ฉด ์‹คํ–‰ ๋’ค ๋ชจ๋ธ ์š”์•ฝ์ด ๋ถ™๊ณ , render()๋Š” ์ด๋ฏธ์ง€๋ฅผ ๊ฒฐ๊ณผ์— ๋ถ™์—ฌ์š”.

  • ์ฝ”๋“œ๋Š” ์ด PC์—์„œ ๊ทธ๋Œ€๋กœ ์‹คํ–‰๋˜๋‹ˆ๊นŒ, ๋ฏฟ์„ ์ˆ˜ ์žˆ๋Š” ์š”์ฒญ์—๋งŒ ์“ฐ์„ธ์š”.

SolidWorks 2025๋Š” late binding์œผ๋กœ ์—ฐ๊ฒฐ๋ผ์„œ COM ํ˜ธ์ถœ์— ์ฃผ์˜ํ•  ์ ์ด ์žˆ์–ด์š”.

  1. ์ธ์ž ์—†๋Š” ๋ฉค๋ฒ„๋Š” ์ ‘๊ทผํ•˜๋Š” ์ˆœ๊ฐ„ ์‹คํ–‰๋ผ์š”. GetTitle, GetType, FirstFeature, GetNextFeature, GetFirstDocument ๊ฐ™์€ ๋ฉค๋ฒ„ ๋’ค์— ()๋ฅผ ๋ถ™์ด๋ฉด "๊ตฌ์„ฑ์›์ด ์—†์Šต๋‹ˆ๋‹ค"(member not found)๋‚˜ 'int' object is not callable ์˜ค๋ฅ˜๊ฐ€ ๋‚˜์š”.

  2. ์ธ์ž ์žˆ๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ์—‰๋šฑํ•˜๊ฒŒ ์‹คํ–‰๋˜๋ฉด ํ˜ธ์ถœ ์ „์— obj._FlagAsMethod("๋ฉ”์„œ๋“œ์ด๋ฆ„")์„ ๋ถ€๋ฅด์„ธ์š”.

  3. ์ˆซ์ž ๋ฐฐ์—ด ์ธ์ž๋Š” win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_R8, ๊ฐ’๋ชฉ๋ก)์œผ๋กœ ๋„˜๊ธฐ์„ธ์š”.

  4. ํ•œ๊ตญ์–ด SolidWorks์—์„œ๋Š” ๊ธฐ๋ณธ ํ‰๋ฉด๊ณผ ์›์  ์ด๋ฆ„์ด ์ •๋ฉด, ์œ—๋ฉด, ์šฐ์ธก๋ฉด, ์›์ ์ด์—์š”. ํ‘œ์ค€ ๋ทฐ๋Š” ์ด๋ฆ„ ๋Œ€์‹  ๋ฒˆํ˜ธ๋ฅผ ์“ฐ์„ธ์š”. ์˜ˆ: doc.ShowNamedView2("", 7) (๋“ฑ๊ฐ ๋ณด๊ธฐ).

P = dict(w=60.0, h=40.0, t=8.0)          # w, h [req]; t [neutral, R10]
sm = doc.SketchManager
select(doc, plane("top"), "PLANE")       # ํ•œ๊ตญ์–ด UI์—์„œ๋„ "์œ—๋ฉด"์„ ์ฐพ์•„์š”
call(sm, "InsertSketch", True)
call(sm, "CreateCenterRectangle", 0, 0, 0, P["w"] / 2 * mm, P["h"] / 2 * mm, 0)
call(sm, "InsertSketch", True)
result = report()                        # ์˜ค๋ฅ˜, ๋ฐ”๋””, ๊ฒฝ๊ณ„ ์ƒ์ž, ์งˆ๋Ÿ‰

์„ค๊ณ„ ์ง€์‹ ๋ฒ ์ด์Šค

์—์ด์ „ํŠธ๊ฐ€ knowledge/ ํด๋”์˜ Markdown ๋…ธํŠธ๋ฅผ ๊ฒ€์ƒ‰ํ•ด์„œ ์จ์š”. ํ† ํฐ์„ ์•„๋ผ๋ ค๊ณ  ๋ณธ๋ฌธ์€ ์˜์–ด๋กœ ์“ฐ๊ณ , ํ•œ๊ธ€ ํ‚ค์›Œ๋“œ๋Š” ํƒœ๊ทธ์™€ ๊ฒ€์ƒ‰ ์‚ฌ์ „์œผ๋กœ ์—ฐ๊ฒฐํ–ˆ์–ด์š”.

์ฃผ์ œ

ํŒŒ์ผ

๋‚ด์šฉ

์—์ด์ „ํŠธ ๊ฐ€์ด๋“œ

agent-guide.md

์ž‘์—… ํ๋ฆ„, ํ† ํฐ ์ ˆ์•ฝ, ํ’ˆ์งˆ ๊ฒŒ์ดํŠธ, ๋ณด๊ณ  ํ˜•์‹

์„ค๊ณ„ ์ •์ฑ…

design-policy.md

๊ทผ๊ฑฐ ์ˆœ์„œ, ์ค‘๋ฆฝ ๊ธฐ๋ณธ๊ฐ’(๋Œ€์นญยท1:1ยทํ‘œ์ค€์ˆ˜), ์•ˆ์ „์œจ, ํ˜•์ƒ ๊ธฐ๋ณธ๊ฐ’

๊ธฐ์–ด

gears.md

์ข…๋ฅ˜ ์„ ์ •, ์Šคํผยทํ—ฌ๋ฆฌ์ปฌยท๋ฒ ๋ฒจยท์ŠคํŒŒ์ด๋Ÿด ๋ฒ ๋ฒจยท์›œยท์œ ์„ฑ ๊ณต์‹, ๊ฐ•๋„, ๊ฒ€์ฆ๋œ ๋ชจ๋ธ๋ง ๋ฐฉ๋ฒ•

๋ฒ ์–ด๋ง

bearings.md

์ข…๋ฅ˜, 68xxยท69xxยท60xxยท62xx ์น˜์ˆ˜, ์ˆ˜๋ช…, ๋ผ์›Œ๋งž์ถค, ์ˆ„๋”

์ฒด๊ฒฐ

fasteners.md

ํ”ผ์น˜ยทํƒญ ๋“œ๋ฆด, ISO 273 ๊ตฌ๋ฉ, ์นด์šดํ„ฐ๋ณด์–ด, ์ฒด๊ฒฐ ๊ธธ์ด, ํ† ํฌ, ํ•€

๊ณต์ฐจ

fits-tolerances.md

ISO 286 ๋ผ์›Œ๋งž์ถค ๊ฐ’, IT ๋“ฑ๊ธ‰, ISO 2768, 3D ํ”„๋ฆฐํŒ… ๊ณต์ฐจ

์ถ•ยทํ‚ค

shafts-keys.md

์ถ• ์„ค๊ณ„์‹, ํ‚ค ์น˜์ˆ˜, ์Šค๋ƒ…๋ง ํ™ˆ, D์ปท

์žฌ๋ฃŒ

materials.md

๊ธˆ์†ยทํ”Œ๋ผ์Šคํ‹ฑยท3D ํ”„๋ฆฐํŒ… ์žฌ๋ฃŒ ๋ฌผ์„ฑ

DFM

dfm.md

๊ฐ€๊ณต, ํŒ๊ธˆ, ์‚ฌ์ถœ, FDMยทSLAยทSLS ๊ทœ์น™

๊ธฐ์–ด ์ƒ์„ฑ๊ธฐ

gear-generators.md

create_gear ์ข…๋ฅ˜, ์ขŒํ‘œ๊ณ„, ๊ธฐ๋ณธ๊ฐ’ ๊ทผ๊ฑฐ, ์ž๊ฐ€ ๊ฒ€์ฆ, ์–ด์…ˆ๋ธ”๋ฆฌ ๋ฐฐ์น˜

ํ† ํด๋กœ์ง€ ์ตœ์ ํ™”

topology-optimization.md

๋ฌธ์ œ ์ •์˜(mm), ์—ดยท๋ณตํ•ฉ ๋ชจ๋“œ, ์ฒด๊ฒฐ๋ถ€ยท์ค‘์š” ํ˜•์ƒ ์•ˆ์ „๊ณ„์ˆ˜ 2, ์ž๋™ ๋ถ€ํ”ผ์œจ, ๊ฒฐ๊ณผ ํ•ด์„, ํŒŒํŠธ๋กœ ๋งŒ๋“ค๊ธฐ, ๊ฐ€๊ณต ๋ชจ๋“œ ๊ณ„ํš

API ๋ ˆ์‹œํ”ผ

solidworks-api.md

๊ฒ€์ฆ๋œ SolidWorks API ํ˜ธ์ถœ (์Šค์ผ€์น˜, ๋กœํ”„ํŠธ, ์Šค์œ•, ํŒจํ„ด, ๊ตฌ์„ฑ, ๋ฉ”์ดํŠธ, ๊ฒ€์‚ฌ, STL ๋ถˆ๋Ÿฌ์˜ค๊ธฐ)

์–ด์…ˆ๋ธ”๋ฆฌ ๊ฐ€์ด๋“œ

assembly-guide.md

์กฐ๋ฆฝ ์ ˆ์ฐจ A0โ€“A8, ๋ฉ”์ดํŠธยท๊ธฐ์ค€ยท์ž์„ธ ๊ทœ์น™, ๊ธฐ๊ตฌ ๊ฒ€์ฆ(์†”๋ฒ„/๊ธฐํ•˜ ์ž์„ธ), ํŒŒํ‚น, ์ฐฝ ๋‹ซ๊ธฐ, ํ•จ์ • ํ‘œ

์„ค๊ณ„ ์›Œํฌํ”Œ๋กœ

design-workflow.md

์„ค๊ณ„โ†’๋ชจ๋ธ๋งโ†’๊ฒ€์ฆโ†’์ด์Šˆ ๋ถ„๋ฅ˜ ํ”Œ๋ผ์ดํœ , ๊ฒ€์ฆ ๋ฐฐํ„ฐ๋ฆฌ V1โ€“V6, ์‹œ๊ฐ„ ์ œํ•œ, ๋ฃจํ”„ ๋ณด๊ณ  ํ˜•์‹

๋…ธํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ๊ฐ™์€ ํ˜•์‹(๋งจ ์œ„ title, tags, summary์™€ ## ์„น์…˜)์œผ๋กœ knowledge/์— .md ํŒŒ์ผ์„ ๋„ฃ๊ณ  Claude๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์„ธ์š”. ์ˆ˜์น˜๋ฅผ ๋„ฃ์„ ๋•Œ๋Š” ์ถœ์ฒ˜(๊ทœ๊ฒฉ ๋ฒˆํ˜ธ, ์นดํƒˆ๋กœ๊ทธ)๋ฅผ ํ•จ๊ป˜ ์ ์–ด ์ฃผ์„ธ์š”.

๊ธฐ์–ด ์ƒ์„ฑ๊ธฐ

gear_design(๊ณ„์‚ฐ๋งŒ)๊ณผ create_gear(SolidWorks ๋„ค์ดํ‹ฐ๋ธŒ ํ”ผ์ฒ˜)๋กœ ์ผ๋ฐ˜์ ์ธ ๊ธฐ์–ด๋ฅผ ๋งŒ๋“ค์–ด์š”. ๊ธฐ์–ด ์ข…๋ฅ˜๋Š” OpenSCAD ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ chrisspen/gears์— ๋งž์ท„์ง€๋งŒ(ํ—ค๋ง๋ณธ ๋ฒ ๋ฒจ๊ณผ ์ฒด๊ฒฐ ๊ตฌ๋ฉ ์žˆ๋Š” ๋ž™์€ ์ œ์™ธ, ์œ ์„ฑ๊ธฐ์–ด๋Š” gear_design์œผ๋กœ ๊ณ„์‚ฐํ•œ ๋’ค ๋ถ€ํ’ˆ๋ณ„๋กœ ์ƒ์„ฑ), ๊ทธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” CC BY-NC-SA 3.0(๋น„์ƒ์—…ยท๋™์ผ์กฐ๊ฑด)์ด๋ผ ์ฝ”๋“œ๋Š” ์“ฐ์ง€ ์•Š๊ณ  ๊ทœ๊ฒฉ(ISO 21771, ISO 53, Gleason/AGMA 2005, DIN 3975) ๊ณต์‹์œผ๋กœ ์ง์ ‘ ๊ตฌํ˜„ํ–ˆ์–ด์š”. ์‚ฌ์ดํด๋กœ์ด๋“œ์™€ ํ•˜๋ชจ๋‹‰ ๋“œ๋ผ์ด๋ธŒ๋Š” ์™„์ œํ’ˆ ๊ตฌ๋งค๋ฅผ ๊ถŒํ•ด์„œ ์ƒ์„ฑ ๋Œ€์ƒ์—์„œ ๋บ์–ด์š”.

type

ํ˜•์ƒ

๋ฐฉ์‹

spur, helical, herringbone

์™ธ์ ‘ ์Šคํผยทํ—ฌ๋ฆฌ์ปฌยทํ—ค๋ง๋ณธ

ISO 53 ๋ž™์œผ๋กœ ์ฐฝ์„ฑํ•œ ์ธ๋ณผ๋ฅ˜ํŠธ์™€ ํŠธ๋กœ์ฝ”์ด๋“œ ์ด๋ฟŒ๋ฆฌ, ์–ธ๋”์ปท ์ž๋™ ๋ฐ˜์˜

internal

๋‚ด์ ‘(๋ง) ๊ธฐ์–ด

์ธ๋ณผ๋ฅ˜ํŠธ์™€ ์›ํ˜ธ ์ด๋ฟŒ๋ฆฌ ํ•„๋ ›

rack

์Šคํผยทํ—ฌ๋ฆฌ์ปฌ ๋ž™

ISO 53 ๊ธฐ์ค€ ๋ž™, ํ—ฌ๋ฆฌ์ปฌ ๋ž™๋„ ๋๋‹จ ์ง๊ฐ

bevel, spiral_bevel

์ง์„ ยท์ŠคํŒŒ์ด๋Ÿด ๋ฒ ๋ฒจ

Tredgold ๋“ฑ๊ฐ€ ๋‹จ๋ฉด ๋กœํ”„ํŠธ์™€ ๊ฐ€์ด๋“œ ์ปค๋ธŒ, Gleason ์น˜ํ˜• ๋น„์œจ

worm, worm_wheel, worm_set

ZA ์›œ, ์›œํœ 

์›œ์€ ํ—ฌ๋ฆญ์Šค ์Šค์œ•, ์›œํœ ์€ ๋ชฉ(throat)์ด ์žˆ๋Š” ํ—ฌ๋ฆฌ์ปฌ ๊ทผ์‚ฌ

  • ๊ธฐ๋ณธ๊ฐ’๊ณผ ๊ทผ๊ฑฐ: ์••๋ ฅ๊ฐ 20ยฐ์™€ ISO 53 A [std], ๋ฐฑ๋ž˜์‹œ 0.04 m [heur], ์น˜ํญ 10 m [heur], ์ž‘์€ ํ”ผ๋‹ˆ์–ธ์€ ์–ธ๋”์ปท ํ•œ๊ณ„ ์ „์œ„ x_min๊ณผ V-zero ์ง [std], ๋ง๊ธฐ์–ด ๋ฆผ d_f + 6 m [heur]. ๊ฒฐ๊ณผ์— ๊ทผ๊ฑฐ ํƒœ๊ทธ๊ฐ€ ํ•จ๊ป˜ ๋‚˜์™€์š”.

  • ์ž๊ฐ€ ๊ฒ€์ฆ: SolidWorks ๋ถ€ํ”ผ๋ฅผ ์ •ํ™•ํ•œ ์น˜ํ˜• ๋‹จ๋ฉด์  ร— ์น˜ํญ๊ณผ ๋น„๊ต(๋ณดํ†ต 0.1 % ์ด๋‚ด), ๋ฐ”๋”” 1๊ฐœ, ์žฌ์ƒ์„ฑ ์˜ค๋ฅ˜ ์—†์Œ, ํ—ฌ๋ฆฌ์ปฌ์€ ์žฌ์งˆ ํƒ์นจ์œผ๋กœ ๋‚˜์„  ๋ฐฉํ–ฅ๊นŒ์ง€ ํ™•์ธํ•ด์š”.

  • build_mate: true: ์ง ๊ธฐ์–ด(์™ธ์ ‘์€ ๋ฐ˜๋Œ€ ๋ฐฉํ–ฅ, ๋‚ด์ ‘์€ ๊ฐ™์€ ๋ฐฉํ–ฅ)๋„ ๋งŒ๋“ค๊ณ  ํ•œ ํ”ผ์น˜ ๊ตด๋ฆฌ๋ฉด์„œ ์ž„์‹œ ๋ฐ”๋””๋กœ ๊ฐ„์„ญ์„ ์žฌ์š”. ์ธก์ •๊ฐ’: ์Šคํผยทํ—ฌ๋ฆฌ์ปฌยทํ—ค๋ง๋ณธยท๋‚ด์ ‘ยท๋ž™ 0 mmยณ, ์ŠคํŒŒ์ด๋Ÿด ๋ฒ ๋ฒจ 0.03โ€“0.09 mmยณ(Tredgold ๊ทผ์‚ฌ), ๊ฐ™์€ ๋ฐฉํ–ฅ ํ—ฌ๋ฆฌ์ปฌ ์Œ์€ 162 mmยณ๋กœ ์ž˜๋ชป๋œ ์กฐํ•ฉ์„ ์žก์•„๋‚ด์š”.

  • ์ขŒํ‘œ๊ณ„: ์ถ• +Z, z = 0 ๋ฉด์ด ์ •๋ฉด, ์ดํ™ˆ ํ•˜๋‚˜๊ฐ€ +X ์ค‘์‹ฌ. ์ง ๋ฐฐ์น˜์™€ ์œ„์ƒ์€ ๊ฒฐ๊ณผ์˜ phase_deg๋ฅผ ์“ฐ๊ณ , ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ง€์‹ ๋ฒ ์ด์Šค gear-generators์— ์žˆ์–ด์š”.

์˜ˆ: "๋ชจ๋“ˆ 1.5, 18:36 ์Šคํผ ๊ธฐ์–ด ํ•œ ์Œ, ๋ณด์–ด 8์— ํ‚คํ™ˆ" โ†’ create_gear {"type": "spur", "module": 1.5, "teeth": 18, "mate_teeth": 36, "build_mate": true, "bore": 8, "keyway": true}

ํ† ํด๋กœ์ง€ ์ตœ์ ํ™”

topology_optimize๋Š” ToPy(MIT)๋ฅผ Python 3 + scipy๋กœ ์˜ฎ๊ธด SIMP ์ตœ์ ํ™”์˜ˆ์š”. ์ตœ์†Œ ์ปดํ”Œ๋ผ์ด์–ธ์Šค(๊ฐ•์„ฑ ์ตœ๋Œ€), ์ปดํ”Œ๋ผ์ด์–ธํŠธ ๋ฉ”์ปค๋‹ˆ์ฆ˜, ์ •์ƒ ์—ด์ „๋„(๋Œ€๋ฅ˜๋Š” ๋ง‰ ๊ณ„์ˆ˜๋กœ), ๊ฐ•์„ฑ+์—ด ๋ณตํ•ฉ์„ 2D ํŒ์žฌ์™€ 3D๋กœ ํ’€์–ด์š”. ์œ ๋™ CFD๋Š” ๋„ฃ์ง€ ์•Š์•˜์–ด์š”.

  • ์•ˆ์ „๊ณ„์ˆ˜ 2 ๊ทœ์น™: ํ•˜์ค‘(loads, ์ฒด๊ฒฐ๋ถ€ force)๊ณผ ์—ด(power_W, heat_W)์€ ์ตœ๋Œ€ ์‚ฌ์šฉ๊ฐ’์œผ๋กœ ๋„ฃ๊ณ , ํ•ด์„ยท๋ฏธ๋ฆฌ๋ณด๊ธฐยท๋ชจ๋“  ๊ฒ€ํ† ๋Š” ๊ทธ 2๋ฐฐ(safety_factor, 2 ๋ฏธ๋งŒ์€ ์˜ค๋ฅ˜)๋กœ ํ•ด์š”.

  • ์ฒด๊ฒฐ๋ถ€(interfaces): ๋ณผํŠธ(ISO 273 ํ†ต๊ณผ ๊ตฌ๋ฉ), ํƒญ(ISO 2306 ํƒญ ๋“œ๋ฆด), ํ•€, ํŒจ๋“œ. ๊ตฌ๋ฉ์€ ๋น„์šฐ๊ณ  ๋ฐ˜์ง€๋ฆ„ max(1.5 d, ์™€์…” ์ž๋ฆฌ + ์š”์†Œ 1๊ฐœ)์˜ ๋ง์€ ๋ณด์กดํ•ด์š”. ๊ตฌ๋ฉ ๋ฒฝ ์ ˆ์ ์ด ์ง€์ง€ยทํ•˜์ค‘ยท์—ด์›ยท๋ฐฉ์—ด(๊ธฐ์ค€ ์˜จ๋„) ์—ญํ• ์„ ํ•ด์š”. ๊ฒฐ๊ณผ์— ์ฒด๊ฒฐ๋ถ€๋ณ„ ๋ณผํŠธ ์ „๋‹จยท์ธ์žฅ, ์ง€์••, ๋๋‹จ ์ฐข๊น€, ํƒญ ์ฒด๊ฒฐ ๊ธธ์ด(๋ณผํŠธ ํ•ญ๋ณต ์ „ ๋‚˜์‚ฌ์‚ฐ ํŒŒ์† ๋ฐฉ์ง€) ์ด์šฉ๋ฅ ์ด ๋‚˜์™€์š”.

  • ์ค‘์š” ํ˜•์ƒ(critical): ๋ฒ ์–ด๋ง ์ž๋ฆฌ, ์‹ค๋ง ๋ฉด ๋“ฑ์€ ํ•ญ์ƒ ๋‚จ๊ฒจ์š”.

  • ๊ฒ€ํ† : ์„ค๊ณ„ ํ•˜์ค‘์—์„œ ์‘๋ ฅ ์Šคํฌ๋ฆฌ๋‹(๋ฐ€๋„ 0.5 ์ด์ƒ, ์ฒด๊ฒฐ๋ถ€ ์ œ์™ธ)์ด ํ•ญ๋ณต ์ดํ•˜, ์„ค๊ณ„ ์—ด์—์„œ ์ตœ๊ณ  ์˜จ๋„๊ฐ€ max_temperature_C ์ดํ•˜์ธ์ง€ ๋ด์š”. ์ตœ์ข… CAD๋Š” SOLIDWORKS Simulation์œผ๋กœ ์„ค๊ณ„ ํ•˜์ค‘์—์„œ ๋‹ค์‹œ ํ™•์ธํ•ด์š”.

  • volume_fraction: "auto": ์‘๋ ฅยท์˜จ๋„ ๊ฒ€ํ† ๋ฅผ ํ†ต๊ณผํ•˜๋Š” ๊ฐ€์žฅ ๊ฐ€๋ฒผ์šด ๋ถ€ํ”ผ์œจ์„ ์ด๋ถ„ ํƒ์ƒ‰ํ•ด์š”.

  • ๊ฒ€์ฆ: ์š”์†Œ ๊ฐ•์„ฑ ํ–‰๋ ฌ์ด ToPy์˜ SymPy ์ •์˜์™€ ๊ธฐ๊ณ„ ์ •๋ฐ€๋„๋กœ ๊ฐ™๊ณ , MBB ๋ณด ๊ณ„์‚ฐ์ด Sigmund 99์ค„ ์ฝ”๋“œ์™€ ๊ฐ™์€ ๊ฐ’์„ ๋‚ด์š”(์ฒซ ๋ฐ˜๋ณต 1e-11, 8ํšŒ ๋ฐ˜๋ณต 1e-9).

  • ๋ฌธ์ œ๋Š” mm๋กœ ์ •์˜ํ•ด์š”: size, element_size, thickness, volume_fraction, supports, loads, keep_out/keep_in(๋ณผํŠธ ๊ตฌ๋ฉ ์ฃผ๋ณ€์€ ๋ณด์กด, ์›€์ง์ด๋Š” ๋ถ€ํ’ˆ ์ž๋ฆฌ๋Š” ์ œ์™ธ), material. ToPy .tpd ํŒŒ์ผ๋„ ๊ทธ๋Œ€๋กœ ๋ฐ›์•„์š”.

  • ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—…์œผ๋กœ ๋Œ๊ณ  ์ด ํ˜ธ์ถœ์€ ์ตœ๋Œ€ wait์ดˆ ๊ธฐ๋‹ค๋ ค์š”. ๋œ ๋๋‚ฌ์œผ๋ฉด job์œผ๋กœ ๋‹ค์‹œ ํ™•์ธํ•ด์š”. ๊ฒฐ๊ณผ์—๋Š” ๋ฐ˜๋ณต ์ˆ˜, ๋ถ€ํ”ผ์œจ, ์ปดํ”Œ๋ผ์ด์–ธ์Šค, ํ•˜์ค‘์  ๋ณ€์œ„(mm), ์งˆ๋Ÿ‰, ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ด๋ฏธ์ง€๊ฐ€ ๋“ค์–ด ์žˆ์–ด์š”.

  • build: true: 2D ๊ฒฐ๊ณผ๋Š” ๋ฐ€๋„ 0.5 ๋“ฑ๊ณ ์„ ์„ ์Šคํ”Œ๋ผ์ธ์œผ๋กœ ๊ทธ๋ ค ๋‘๊ป˜๋งŒํผ ๋Œ์ถœํ•ด์š”(๋ถ€ํ”ผ ์˜ค์ฐจ 0.02 %). 3D ๊ฒฐ๊ณผ๋Š” STL์„ ๋ฉ”์‹œ ์†”๋ฆฌ๋“œ ๋ฐ”๋””๋กœ ๋ถˆ๋Ÿฌ์™€์š”(๋‹ค์‹œ ๋ชจ๋ธ๋งํ•  ๋•Œ ์ฐธ๊ณ ์šฉ).

  • ์†๋„(์ธก์ •): 2D 120 ร— 60 ์š”์†Œ ์•ฝ 4์ดˆ, 3D 40 ร— 20 ร— 10 ์š”์†Œ ๋ฐ˜๋ณต๋‹น ์•ฝ 0.7์ดˆ.

์˜ˆ: ์™ผ์ชฝ ๊ณ ์ •, ์˜ค๋ฅธ์ชฝ ๋ ์ค‘์•™์— 1000 N, ๋ถ€ํ”ผ 40 %, ๋‘๊ป˜ 6 mm ์•Œ๋ฃจ๋ฏธ๋Š„ ๋ธŒ๋ž˜ํ‚ท โ†’ {"problem": {"size": [120, 60], "element_size": 1, "thickness": 6, "volume_fraction": 0.4, "supports": [{"edge": "left"}], "loads": [{"at": [120, 30], "force": [0, -1000]}], "material": {"E": 70000, "density": 2.7}}, "build": true}

์„ค์ • ํŒŒ์ผ config.json

solidworks_mcp/config.json์„ ๊ณ ์น˜๋ฉด ์ฝ”๋“œ๋ฅผ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š๊ณ  ๋™์ž‘์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์–ด์š”. ๋ฐ”๊พผ ๋’ค์—๋Š” Claude๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์„ธ์š”.

ํ‚ค

๊ธฐ๋ณธ๊ฐ’

์„ค๋ช…

exe_path

"auto"

SLDWORKS.exe ๊ฒฝ๋กœ, auto๋ฉด ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์—์„œ ์ฐพ์Œ

part_template, assembly_template, drawing_template

"auto"

์ƒˆ ๋ฌธ์„œ ํ…œํ”Œ๋ฆฟ ๊ฒฝ๋กœ

startup_timeout

120

SolidWorks ์‹คํ–‰์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์‹œ๊ฐ„(์ดˆ)

connection_retry_interval

5

์—ฐ๊ฒฐ ์žฌ์‹œ๋„ ๊ฐ„๊ฒฉ(์ดˆ)

max_retries

3

์—ฐ๊ฒฐ ์žฌ์‹œ๋„ ํšŸ์ˆ˜

default_unit

"mm"

๊ธฐ๋ณธ ๊ธธ์ด ๋‹จ์œ„

log_level

"INFO"

๋กœ๊ทธ ์ˆ˜์ค€ (DEBUG, INFO, WARNING, ERROR)

log_file

"solidworks_mcp.log"

๋กœ๊ทธ ํŒŒ์ผ ์ด๋ฆ„ (solidworks_mcp ํด๋” ์•ˆ)

default_extrude_depth, default_fillet_radius, default_chamfer_distance, default_circle_radius

10, 2, 2, 25

์ธ์ž๋ฅผ ์ƒ๋žตํ–ˆ์„ ๋•Œ ์“ฐ๋Š” ๊ฐ’(mm)

๋ฌธ์ œ ํ•ด๊ฒฐ

Claude์— SolidWorks ๋„๊ตฌ๊ฐ€ ์•ˆ ๋ณด์—ฌ์š”

  1. Claude๋ฅผ ํŠธ๋ ˆ์ด ์•„์ด์ฝ˜ โ†’ ์ข…๋ฃŒ(Quit)๋กœ ์™„์ „ํžˆ ๋„๊ณ  ๋‹ค์‹œ ์‹คํ–‰ํ•˜์„ธ์š”.

  2. ์„ค์ • โ†’ ๊ฐœ๋ฐœ์ž์—์„œ solidworks ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

  3. setup_mcp.log์—์„œ could not update ๊ฐ™์€ ๋ฉ”์‹œ์ง€๊ฐ€ ์žˆ๋Š”์ง€ ๋ณด์„ธ์š”.

  4. Claude๋ฅผ ๋ˆ ์ƒํƒœ์—์„œ ์„ค์น˜๋ฅผ ํ•œ ๋ฒˆ ๋” ์‹คํ–‰ํ•ด ๋ณด์„ธ์š”.

  5. Claude์˜ MCP ๋กœ๊ทธ๋ฅผ ๋ณด์„ธ์š”: %APPDATA%\Claude\logs\mcp-server-solidworks.log (MSIX ์„ค์น˜ํŒ์€ %LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\logs\).

pip install -r requirements.txt๊ฐ€ ์‹คํŒจํ•ด์š”: ์ด ์ €์žฅ์†Œ์˜ requirements.txt๋ฅผ ์“ฐ๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š” (asyncio-compat ์—†์Œ, mcp<2).

์„œ๋ฒ„๊ฐ€ ๋ฐ”๋กœ ๊บผ์ง€๊ณ  ๋กœ๊ทธ์— 'Server' object has no attribute 'list_tools'๊ฐ€ ์žˆ์–ด์š”: mcp 2.x๊ฐ€ ์„ค์น˜๋œ ๊ฑฐ์˜ˆ์š”. .venv\Scripts\python.exe -m pip install "mcp>=1,<2"

"๊ตฌ์„ฑ์›์ด ์—†์Šต๋‹ˆ๋‹ค"(Member not found) ์˜ค๋ฅ˜: ์œ„ execute_python ๊ณ ๊ธ‰ ์‚ฌ์šฉ์˜ COM ๊ทœ์น™์„ ๋ณด์„ธ์š”. ์ด ์ €์žฅ์†Œ์˜ ๊ธฐ๋ณธ ๋„๊ตฌ๋Š” ์ˆ˜์ •๋ผ ์žˆ์–ด์š”.

์—ฐ๊ฒฐ์ด ์•ˆ ๋ผ์š”: SolidWorks๊ฐ€ ์‹คํ–‰ ์ค‘์ธ์ง€, ๋ผ์ด์„ ์Šค๋‚˜ ์‹œ์ž‘ ๋Œ€ํ™”์ƒ์ž๊ฐ€ ๋–  ์žˆ์ง€ ์•Š์€์ง€ ํ™•์ธํ•˜์„ธ์š”. get_solidworks_info๋กœ ์„ค์น˜๊ฐ€ ํƒ์ง€๋˜๋Š”์ง€ ๋ณด๊ณ , ์•ˆ ๋˜๋ฉด config.json์˜ exe_path์— ๊ฒฝ๋กœ๋ฅผ ์ง์ ‘ ๋„ฃ์œผ์„ธ์š”.

ํด๋”๋ฅผ ์˜ฎ๊ฒผ์–ด์š”: setup_windows.bat์„ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋ฉด ๊ฒฝ๋กœ๊ฐ€ ๊ฐฑ์‹ ๋ผ์š”.

์—…๋ฐ์ดํŠธ์™€ ์ œ๊ฑฐ

  • ์—…๋ฐ์ดํŠธ: ์„ค์น˜ํ•  ๋•Œ์˜ PowerShell ํ•œ ์ค„์„ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜, ์ €์žฅ์†Œ์—์„œ git pull ํ›„ setup_windows.bat์„ ์‹คํ–‰ํ•˜์„ธ์š” (์ƒˆ ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋ผ์š”).

  • ์ œ๊ฑฐ: ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ์—์„œ setup_windows.bat -Uninstall(๋˜๋Š” install.ps1 -Uninstall)์„ ์‹คํ–‰ํ•˜๋ฉด Claude DesktopยทClaude Code ๋“ฑ๋ก๊ณผ ์Šคํ‚ฌ์„ ์ง€์›Œ์š”. ๊ทธ๋‹ค์Œ ํด๋”๋ฅผ ์‚ญ์ œํ•˜์„ธ์š”. ์„ค์น˜ ์ „ ์„ค์ •์€ claude_desktop_config.json.bak-* ๋ฐฑ์—…์— ์žˆ์–ด์š”. Claude ๊ณ„์ •์— ์ €์žฅํ•œ ์Šคํ‚ฌ์€ Claude ์„ค์ •์—์„œ ์ง€์šฐ์„ธ์š”.

๋กœ๋“œ๋งต

SolidWorks ์ง€์›์„ ๊ฐ€์žฅ ๋จผ์ € ํ•ด์š”. ์ง„ํ–‰ ์ˆœ์„œ:

  • Text-to-CAD ๊ฒ€์ฆ ๋ฃจํ”„: model_report, render_views, export_model, check_interference, execute_python ๋„์šฐ๋ฏธ

  • ์—์ด์ „ํŠธ ๊ฐ€์ด๋“œ: ํ† ํฐ ์ ˆ์•ฝ ๊ทœ์น™๊ณผ ์„ค๊ณ„ ๊ทผ๊ฑฐ ๊ทœ์น™ (์„œ๋ฒ„ instructions)

  • ์„ค๊ณ„ ์ง€์‹ ๋ฒ ์ด์Šค 1์ฐจ: ์„ค๊ณ„ ์ •์ฑ…, ๊ธฐ์–ด, ๋ฒ ์–ด๋ง, ์ฒด๊ฒฐ, ๊ณต์ฐจ, ์ถ•ยทํ‚ค, ์žฌ๋ฃŒ, DFM, API ๋ ˆ์‹œํ”ผ

  • ๋ถ€ํ’ˆ DB: KS/ISO ํ‘œ์ค€ ๋ถ€ํ’ˆ ์น˜์ˆ˜ ํ‘œ์™€, ์‚ฌ์šฉ์ž๊ฐ€ ํ™•์ธํ•œ ํ•œ๊ตญ ๋ฏธ์Šค๋ฏธ ํ’ˆ๋ฒˆ ๋“ฑ๋กยท๊ฒ€์ƒ‰ (๋ฏธ์Šค๋ฏธ ์‚ฌ์ดํŠธ๋Š” robots.txt์™€ ์•ฝ๊ด€์ด ์ž๋™ ์ˆ˜์ง‘์„ ๋ง‰์•„์„œ ํฌ๋กค๋งํ•˜์ง€ ์•Š์•„์š”)

  • ๊ธฐ์–ด ์ƒ์„ฑ๊ธฐ: ์Šคํผ, ํ—ฌ๋ฆฌ์ปฌ, ํ—ค๋ง๋ณธ, ๋‚ด์ ‘, ๋ž™, ์ง์„ ยท์ŠคํŒŒ์ด๋Ÿด ๋ฒ ๋ฒจ, ์›œยท์›œํœ  (๊ทœ๊ฒฉ ๊ณต์‹, ๋ถ€ํ”ผยท๋ฌผ๋ฆผ ์ž๊ฐ€ ๊ฒ€์ฆ)

  • ํ† ํด๋กœ์ง€ ์ตœ์ ํ™”: 2D/3D ๊ฐ•์„ฑยท์ปดํ”Œ๋ผ์ด์–ธํŠธ ๋ฉ”์ปค๋‹ˆ์ฆ˜ (ToPy ํฌํŒ…), 2D ๊ฒฐ๊ณผ๋Š” ๋Œ์ถœ ํŒŒํŠธ๋กœ

  • ์—ดยท๋ณตํ•ฉ ์œ„์ƒ ์ตœ์ ํ™”: ์—ด์ „๋„ + ๋Œ€๋ฅ˜ ๊ฒฝ๊ณ„, ์ตœ๋Œ€ ํ•˜์ค‘ยท์—ด์˜ 2๋ฐฐ ์„ค๊ณ„, ์ฒด๊ฒฐ๋ถ€ ์ž๋™ ์ฒ˜๋ฆฌ์™€ ๊ฒ€ํ† , ์ž๋™ ๋ถ€ํ”ผ์œจ

  • ํ‘œ์ค€ ๊ฒ€์ฆ๊ณผ ์›Œํฌํ”Œ๋กœ: verify_model(V1 ํŒŒํŠธ, V2 ์–ด์…ˆ๋ธ”๋ฆฌ), ์–ด์…ˆ๋ธ”๋ฆฌ ๊ฐ€์ด๋“œ, ์„ค๊ณ„-๋ชจ๋ธ๋ง-๊ฒ€์ฆ ํ”Œ๋ผ์ดํœ 

  • ๊ฐ€๊ณต ์ตœ์ ํ™” ๋ชจ๋“œ: 2.5D ๋ฐ€๋งยท๊ณต๊ตฌ ๋ฐ˜๊ฒฝยท๋ฒฝ/๋ฐ”๋‹ฅ ๋‘๊ป˜ ์ œ์•ฝ (์กฐ์‚ฌ ์™„๋ฃŒ, topology-optimization.md์˜ ๊ณ„ํš ์ฐธ๊ณ )

  • ์œ ์„ฑ๊ธฐ์–ด ์–ด์…ˆ๋ธ”๋ฆฌ ์ž๋™ ๋ฐฐ์น˜์™€ 3D ์ตœ์ ํ™” ๊ฒฐ๊ณผ์˜ ๋ฆฌ๋ชจ๋ธ๋ง ๋ณด์กฐ

์—ด์ „๋„(๋Œ€๋ฅ˜๋Š” ๋ง‰ ๊ณ„์ˆ˜)๋Š” ์ž์ฒด FE๋กœ ๋„ฃ์—ˆ์–ด์š”. ์œ ๋™ CFD(SOLIDWORKS Flow Simulation ์—ฐ๋™)๋Š” ๊ฒฐ๊ณผ ์‹ ๋ขฐ์„ฑ ๋ฌธ์ œ๋กœ ๊ณ„์† ๋ณด๋ฅ˜ํ•ด์š”.

ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

Solidworks-MCP/
โ”œโ”€โ”€ install.ps1                # ํ•œ ์ค„ ์„ค์น˜ (irm ... | iex): ์ฝ”๋“œ ๋ฐ›๊ธฐ, Python ์ฐพ๊ธฐ, setup_mcp.py ์‹คํ–‰
โ”œโ”€โ”€ setup_windows.bat          # ์›ํด๋ฆญ ์„ค์น˜ (๋”๋ธ”ํด๋ฆญํ•˜๋ฉด install.ps1 ์‹คํ–‰)
โ”œโ”€โ”€ setup_mcp.py               # ์„ค์น˜ ๋กœ์ง: .venv, ํŒจํ‚ค์ง€, ์ž๊ฐ€ ์ง„๋‹จ, Claude DesktopยทClaude Code ๋“ฑ๋ก, ์Šคํ‚ฌ
โ”œโ”€โ”€ skills/solidworks-design/  # Claude ์Šคํ‚ฌ: ์„ค๊ณ„ ์ž‘์—… ๊ทœ์น™ (์„œ๋ฒ„ instructions๋ฅผ ์•ˆ ๋„˜๊ธฐ๋Š” Cowork ๊ฐ™์€ ํด๋ผ์ด์–ธํŠธ์šฉ)
โ”œโ”€โ”€ solidworks_mcp_server.py   # MCP ์„œ๋ฒ„ ์ง„์ž…์ 
โ”œโ”€โ”€ requirements.txt
โ”œโ”€โ”€ knowledge/                 # ์„ค๊ณ„ ์ง€์‹ ๋ฒ ์ด์Šค (Markdown ๋…ธํŠธ)
โ”œโ”€โ”€ solidworks_mcp/
โ”‚   โ”œโ”€โ”€ server.py              # MCP ๋„๊ตฌ ์ •์˜์™€ ์ฒ˜๋ฆฌ
โ”‚   โ”œโ”€โ”€ instructions.md        # ๋งค ์„ธ์…˜ ์—์ด์ „ํŠธ์—๊ฒŒ ์ฃผ๋Š” ์ž‘์—… ๊ทœ์น™
โ”‚   โ”œโ”€โ”€ verification.py        # model_report, render_views, export_model, check_interference
โ”‚   โ”œโ”€โ”€ knowledge.py           # ์ง€์‹ ๋ฒ ์ด์Šค ๊ฒ€์ƒ‰
โ”‚   โ”œโ”€โ”€ com.py                 # late binding COM ๋„์šฐ๋ฏธ (val, call, arr, plane ...)
โ”‚   โ”œโ”€โ”€ gears/                 # ๊ธฐ์–ด: geometry(์ธ๋ณผ๋ฅ˜ํŠธ), bevel, build(SolidWorks), api(๋„๊ตฌ ์ธ์ž)
โ”‚   โ”œโ”€โ”€ topopt/                # ํ† ํด๋กœ์ง€ ์ตœ์ ํ™” (ToPy ํฌํŒ… + ์—ด): problem, topology, physics(์—ดยท์‘๋ ฅยท์ฒด๊ฒฐ๋ถ€), export, run, cad
โ”‚   โ”œโ”€โ”€ tests/                 # ๊ธฐ์–ดยท์ตœ์ ํ™”ยท์„ค์น˜ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ (python -m unittest solidworks_mcp.tests.test_gears ...)
โ”‚   โ”œโ”€โ”€ config.py, config.json # ์„ค์ •
โ”‚   โ”œโ”€โ”€ constants.py           # SolidWorks ์ƒ์ˆ˜
โ”‚   โ”œโ”€โ”€ automation/            # base(์—ฐ๊ฒฐ), documents, sketches, features
โ”‚   โ””โ”€โ”€ utils/                 # ๋‹จ์œ„ ๋ณ€ํ™˜, SolidWorks ์„ค์น˜ ํƒ์ง€
โ”œโ”€โ”€ scripts/                   # ์›๋ณธ ํ”„๋กœ์ ํŠธ์˜ VBS ์˜ˆ์ œ
โ”œโ”€โ”€ solidworks_com.py, solidworks_simulation.py   # ์›๋ณธ ํ”„๋กœ์ ํŠธ์˜ ์ด์ „ ๋ฒ„์ „ ์Šคํฌ๋ฆฝํŠธ
โ””โ”€โ”€ DEVELOPMENT_ROADMAP.md     # ์›๋ณธ ํ”„๋กœ์ ํŠธ์˜ ๊ฐœ๋ฐœ ๊ณ„ํš

๋ผ์ด์„ ์Šค์™€ ํฌ๋ ˆ๋”ง

MIT ๋ผ์ด์„ ์Šค์˜ˆ์š” (LICENSE). ์›๋ณธ ํ”„๋กœ์ ํŠธ: alisamsam/Solidworks-MCP, Samsaam Ali Baig. ์›๋ณธ ์ €์ž‘๊ถŒ ํ‘œ์‹œ์™€ ๋ผ์ด์„ ์Šค ๋ฌธ๊ตฌ๋ฅผ ์œ ์ง€ํ•ด ์ฃผ์„ธ์š”.

ํ† ํด๋กœ์ง€ ์ตœ์ ํ™” ์ฝ”๋“œ(solidworks_mcp/topopt/)๋Š” William Hunter์˜ ToPy(MIT)๋ฅผ ์˜ฎ๊ธด ๊ฒƒ์ด๊ณ , ๋ผ์ด์„ ์Šค ์ „๋ฌธ์€ solidworks_mcp/topopt/LICENSE_TOPY.md์— ์žˆ์–ด์š”. ToPy์˜ 2D ๋ถ€๋ถ„์€ Ole Sigmund์˜ 99์ค„ ์ฝ”๋“œ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ํ•ด์š”. ๊ธฐ์–ด ์ƒ์„ฑ๊ธฐ๋Š” chrisspen/gears(CC BY-NC-SA 3.0)์˜ ์ฝ”๋“œ๋ฅผ ์“ฐ์ง€ ์•Š์•˜์–ด์š”.


English

Contents

  1. Overview

  2. Changes from the original

  3. Requirements

  4. Quick start

  5. What the installer does

  6. Manual setup

  7. Usage

  8. Text-to-CAD workflow

  9. Tool reference

  10. Advanced: execute_python

  11. Design knowledge base

  12. Gear generators

  13. Topology optimization

  14. Configuration (config.json)

  15. Troubleshooting

  16. Updating and uninstalling

  17. Roadmap

  18. Project structure

  19. License and credits

Overview

SolidWorks MCP Server is a Model Context Protocol server that lets an AI agent such as Claude drive SolidWorks. Instead of clicking through menus, you describe the geometry you want and Claude builds it through the SolidWorks COM API: parts, sketches and features.

  • 52 tools (35 CAD and verification + 17 Design Studio): connection, documents, sketches, features, utilities, execute_python for direct SolidWorks API access, verification (text-to-CAD), design-knowledge search, gear generation and topology optimization

  • Agent working rules (token budget, design rationale) are applied automatically in every session

  • SolidWorks 2023โ€“2025, installation auto-detected from the registry

  • Units: mm, cm, m, inch, ft (default mm)

  • Activity log: solidworks_mcp/solidworks_mcp.log

Changes from the original

Area

Change

Install fix

Removed asyncio-compat from requirements.txt. It does not exist on PyPI, so pip install -r requirements.txt always failed.

Startup fix

Pinned mcp>=1.0.0,<2. mcp 2.x removed the Server.list_tools() / call_tool() decorators this server uses, so the server crashed on startup with AttributeError.

One-line install

install.ps1 (one PowerShell line, or double-click setup_windows.bat) + setup_mcp.py get the code, find Python (or offer to install it with winget), create the virtual environment, install packages, self-test the server, register it with Claude Desktop and Claude Code and install the design skill. Ask Claude to install the repository and it runs this for you.

SolidWorks 2025 COM

Added _com_value() in automation/base.py and fixed list_open_documents ("Member not found"), get_document_info ('int' object is not callable) and list_features (returned only the first feature; suppression state was always false).

Localized SolidWorks

create_sketch only looked for "Front Plane", so it failed in non-English UIs (Korean: ์ •๋ฉด/์œ—๋ฉด/์šฐ์ธก๋ฉด). It now falls back to the default planes' actual names.

Repository cleanup

.env removed (the original contained an API key; the server does not use it), .venv/ ignored, CRLF line endings enforced for .bat files.

Text-to-CAD verification

Added model_report, render_views, export_model, check_interference; execute_python gets injected helpers and a report option.

Design knowledge base

12 notes in knowledge/ with knowledge_search and knowledge_get.

Gear generators

gear_design, create_gear: spur, helical, herringbone, internal, rack, straight/spiral bevel, worm and worm wheel from the standards' formulas, self-checked by volume and mesh interference.

Topology optimization

topology_optimize: ToPy ported to Python 3 for 2D/3D stiffness and compliant-mechanism problems, plus heat conduction with convection films and a combined mode. Loads and heat are maximum values designed at 2 x (safety factor at least 2); bolt, tapped-hole, pin and pad joints get standard holes, keep-in rings and per-joint checks. Results are turned into SolidWorks parts.

Agent guide

Workflow, token rules and rationale policy are sent as MCP server instructions in every session.

Design skill

skills/solidworks-design: a Claude skill that brings the same working rules to clients that do not pass server instructions on, such as Cowork. The tool descriptions also point to knowledge_get("agent-guide").

Fewer output tokens

No duplicated execute_python output, compact JSON without \u escapes, tracebacks trimmed to the script frames.

Requirements

  • Windows 10 / 11 (64-bit)

  • SolidWorks 2023โ€“2025, installed and licensed

  • Python 3.10 or newer (64-bit): the python.org installer or the Python Install Manager (py). Without one, the installer can install Python 3.13 with winget

  • Claude Desktop or Claude Code

  • Internet access for the first install (pip packages, about 60 MB including numpy and scipy for topology optimization)

Tested with SolidWorks 2025 (revision 33.5.0, Korean UI), Python 3.14.7 and Claude Desktop for Windows (Microsoft Store/MSIX build).

Quick start

The easiest way is to ask Claude to install it, as shown at the top. To do it yourself:

  1. Run the installer: paste this line into PowerShell.

    irm https://raw.githubusercontent.com/hayward2007/solidworks-mcp/main/install.ps1 | iex

    The code goes to %USERPROFILE%\solidworks-mcp. If you downloaded the repository yourself (git clone https://github.com/hayward2007/solidworks-mcp.git or a ZIP), you can double-click setup_windows.bat in it instead. You are done when it prints All set. The folder path is written into Claude's config, so run it again if you move the folder later.

  2. Quit Claude Desktop completely and start it again: right-click the Claude icon in the system tray (bottom-right, possibly under the ^ arrow), choose Quit, then start Claude again. Closing the window leaves it running in the background, and it will not read the new config. In Claude Code, start a new session.

  3. Open SolidWorks and ask Claude: "Connect to SolidWorks".

In Claude, Settings โ†’ Developer should show the solidworks server as running.

Using Cowork? Save the design skill too. Cowork does not pass the server instructions (working rules) to the model; the solidworks-design skill brings them in. In Cowork, ask Claude to "save the solidworks-design skill from https://github.com/hayward2007/solidworks-mcp" and save the card it shows. On claude.ai you can upload the dist\solidworks-design.zip the installer writes under Settings โ†’ Capabilities โ†’ Skills. For Claude Code the installer puts the skill into ~/.claude/skills.

What the installer does

  1. Gets the code: git clone into %USERPROFILE%\solidworks-mcp (the GitHub ZIP when git is missing), or updates an existing copy. Started from setup_windows.bat inside a copy of the repository, it uses that folder as it is.

  2. Finds a 64-bit Python 3.10+: the py -0p list, py -3, python on PATH, then %LOCALAPPDATA%\Python\pythoncore-3.*, %LOCALAPPDATA%\Programs\Python\Python3* and %ProgramFiles%\Python3*. It picks the newest of 3.10โ€“3.14, which numpy, scipy and pywin32 ship wheels for. Without one it offers to install Python 3.13 with winget (-InstallPython installs it without asking).

  3. Creates a virtual environment in .venv inside the project folder (reuses a working one).

  4. Installs requirements.txt (mcp 1.x, pywin32, python-dotenv, Pillow, numpy, scipy).

  5. Self-test: starts the server over stdio, exactly like Claude Desktop does, and checks the MCP handshake and the tool list (52 tools).

  6. Registers the solidworks server in Claude Desktop's config. Other servers and settings are kept, and a claude_desktop_config.json.bak-date-time backup is written before any change. The Microsoft Store (MSIX) config location is updated too.

  7. If Claude Code (the claude CLI) is installed, registers the server with claude mcp add --scope user and copies the design skill to ~/.claude/skills/solidworks-design. It also writes dist\solidworks-design.zip for uploading the skill to Claude Desktop / claude.ai.

  8. Saves everything it printed to setup_mcp.log.

It is safe to run again; an existing registration shows already up to date. Options: -InstallDir <path>, -InstallPython, -NoClaudeDesktop, -NoClaudeCode, -NoSkill, -Uninstall; setup_windows.bat passes them on (e.g. setup_windows.bat -Uninstall).

Manual setup

1) Install the packages

cd C:\path\to\Solidworks-MCP
py -m venv .venv
.venv\Scripts\python.exe -m pip install -r requirements.txt

2) Claude Desktop

Open Claude โ†’ Settings โ†’ Developer โ†’ Edit Config and add this under mcpServers in claude_desktop_config.json:

{
  "mcpServers": {
    "solidworks": {
      "command": "C:\\path\\to\\Solidworks-MCP\\.venv\\Scripts\\python.exe",
      "args": ["C:\\path\\to\\Solidworks-MCP\\solidworks_mcp_server.py"]
    }
  }
}

Config file locations:

  • Standard install: %APPDATA%\Claude\claude_desktop_config.json

  • Microsoft Store/MSIX install: %LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\claude_desktop_config.json

Use the full path to the .venv interpreter rather than "command": "python": python on PATH may be the Microsoft Store alias or a different Python without the packages. After saving, quit Claude from the tray and start it again.

3) Claude Code

claude mcp add --scope user solidworks -- "C:\path\to\Solidworks-MCP\.venv\Scripts\python.exe" "C:\path\to\Solidworks-MCP\solidworks_mcp_server.py"
claude mcp list

Usage

  1. Open SolidWorks first. If it is not running, connect_solidworks starts it and waits up to 120 seconds.

  2. Ask Claude in plain language. Lengths are in mm unless you say otherwise.

Examples:

  • "Connect to SolidWorks"

  • "Create a new part, draw a 30 mm radius circle on the Top plane and extrude it 15 mm"

  • "Draw a 100 ร— 50 mm rectangle on the Front plane, extrude it 20 mm, then cut a 10 mm hole through the center"

  • "List the features" / "List open documents" / "Show the active document info"

  • "Save it as C:\work\bracket.SLDPRT"

  • "Use execute_python to compute the volume and mass of this part"

Claude typically chains create_sketch โ†’ draw_* โ†’ close_sketch โ†’ extrude_sketch. If a sketch is left open, get_sketch_status shows its state.

Text-to-CAD workflow

A loop that lets the agent turn short or vague requests into a spec, then build, look and measure, and iterate quickly. It is sent to the agent in every session as the server instructions (solidworks_mcp/instructions.md); in Cowork the solidworks-design skill brings it in.

  1. Spec: purpose, datums, protected interfaces, envelope, loads/motion, process and material in sufficient detail; no length cap. Every number gets a basis, in this order: [req] requirement or existing geometry > [std] standard > [calc] calculation > [cat] catalogue or user-verified MISUMI part > [dfm] process rule > [heur] rule of thumb > [neutral] a neutral value when nothing else applies (symmetry, 1:1, equal spacing, R10 preferred numbers, whole mm).

  2. Retrieve justified context: design_context(mode="quality"); legacy search/get remain available.

  3. Build in stages: one execute_python call per stage, parameters at the top of the script.

  4. Verify every stage: model_report (errors, bodies, box, mass), sufficient orthographic/section/material render_views, check_interference for assemblies.

  5. Quality gate: no rebuild errors, intended body count, dimensions match the spec, no unintended interference, process rules met, before moving on.

  6. Short report: key dimensions with their basis, check numbers, at most 3 next options.

Quality before compression: retain numerical and visual evidence, sources and assumptions. Product improvement includes three alternatives, quantitative and aesthetic assessment, a review export and explicit user review. A legacy standard tag is not source verification. Details: knowledge/agent-guide.md; rationale rules: knowledge/design-policy.md.

Tool reference

Every tool that takes lengths also accepts an optional unit (mm, cm, m, inch, ft); when omitted, the default unit (mm) is used.

Category

Tool

What it does

Main arguments

Connection

connect_solidworks

Connect to the running SolidWorks (starts it if needed)

-

Connection

get_solidworks_info

Installation info (version, path, templates)

-

Documents

create_new_part

New part

-

Documents

create_new_assembly

New assembly

-

Documents

open_document

Open a file

filepath (required)

Documents

save_document

Save (Save As when a path is given)

filepath

Documents

close_document

Close the active document

save (default false)

Documents

get_document_info

Active document name, path and type

-

Documents

list_open_documents

Open documents

-

Sketches

create_sketch

Start a sketch on a default plane

plane: Front / Top / Right

Sketches

create_sketch_on_face

Sketch on the face found at a 3D point

x, y, z

Sketches

draw_line

Line

x1, y1, x2, y2

Sketches

draw_circle

Circle

x, y, radius

Sketches

draw_rectangle

Rectangle from two corners

x1, y1, x2, y2

Sketches

draw_arc

Arc from center, radius and start/end angles (ยฐ)

cx, cy, radius, start_angle, end_angle

Sketches

draw_polygon

Regular polygon

cx, cy, radius, sides

Sketches

close_sketch

Exit the active sketch

-

Sketches

get_sketch_status

Sketch diagnostics

-

Features

extrude_sketch

Boss-extrude

depth, both_directions

Features

cut_extrude

Cut-extrude

depth, through_all, both_directions

Features

fillet_edges

Fillet the selected edges

radius

Features

chamfer_edges

Chamfer the selected edges

distance, angle

Features

list_features

Feature tree (name, type, suppressed)

-

Utilities

set_units

Change the default unit

unit: mm / cm / m / inch

Utilities

execute_python

Run Python with SolidWorks API access (helpers injected)

code, report

Verification

model_report

Active document summary: rebuild errors, features, bodies, bounding box (mm), volume, mass, material

-

Verification

render_views

One small labelled image of standard views (sketches/planes hidden, user's view restored)

views, size (default 384), hide_references

Verification

export_model

Save a copy as STEP, STL, 3MF, IGES, Parasolid, ...

format (default step), path

Verification

check_interference

Interference volumes (mmยณ) between assembly components

-

Verification

verify_model

Standard verification battery (V1 part, V2 assembly): fixed rows value/uncertainty/limit/pass, interference allowances, free and over-constrained components, other open windows, issue candidates

targets, allow, parked

Knowledge

knowledge_search

Search the design knowledge base (Korean or English keywords)

query, limit

Knowledge

knowledge_get

One section, a whole topic, or index

id

Gears

gear_design

Gear dimensions, profile shifts, centre distance, contact ratio, interference warnings (no CAD)

kind, module, teeth

Gears

create_gear

Build a gear as native features and check it (optionally with its mate and a mesh check)

type, module, teeth, build_mate

Optimization

topology_optimize

Start / poll a 2D or 3D topology optimization (stiffness, heat conduction with convection, combined) designed at 2 x maximum force and heat with joint checks, build the part from the result

problem or tpd, job, build

fillet_edges and chamfer_edges work on edges that are already selected; select them in SolidWorks or with execute_python.

Advanced: execute_python

For anything the basic tools do not cover (lofts, patterns, assembly mates, mass properties, image export, ...) use execute_python to call the SolidWorks API directly.

  • Available names: sw (SldWorks.Application), doc (active document), automation (the server's SolidWorksAutomation object), win32com, pythoncom, math, os, json

  • Injected helpers: val, call, arr, strings, byref_int, byref_bool, select (SelectByID2), plane("front"/"top"/"right") (localized plane names), feats(), feat(name), active(), report(), render(views), store (a dict kept between calls), mm (0.001), deg (ฯ€/180)

  • Whatever you print() and the value of result are returned. With report: true the model report is appended; render() attaches an image.

  • The code runs as-is on this PC, so only use it with requests you trust.

SolidWorks 2025 is reached through late binding, which has a few COM pitfalls:

  1. Zero-argument members run as soon as you access them. Adding () after members such as GetTitle, GetType, FirstFeature, GetNextFeature or GetFirstDocument raises "Member not found" or 'int' object is not callable.

  2. If a method that takes arguments misbehaves, call obj._FlagAsMethod("MethodName") before calling it.

  3. Pass numeric arrays as win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_R8, values).

  4. Localized SolidWorks uses localized names for the default planes and origin (Korean: ์ •๋ฉด, ์œ—๋ฉด, ์šฐ์ธก๋ฉด, ์›์ ). Use view IDs instead of view names, for example doc.ShowNamedView2("", 7) for isometric.

P = dict(w=60.0, h=40.0, t=8.0)          # w, h [req]; t [neutral, R10]
sm = doc.SketchManager
select(doc, plane("top"), "PLANE")       # also finds the localized Top plane
call(sm, "InsertSketch", True)
call(sm, "CreateCenterRectangle", 0, 0, 0, P["w"] / 2 * mm, P["h"] / 2 * mm, 0)
call(sm, "InsertSketch", True)
result = report()                        # errors, bodies, box, mass

Design knowledge base

The agent searches the Markdown notes in knowledge/. Notes are written in English to save tokens; Korean keywords are linked through tags and a search dictionary.

Topic

File

Contents

Agent guide

agent-guide.md

workflow, token rules, quality gate, report format

Design policy

design-policy.md

basis ladder, neutral defaults (symmetry, 1:1, preferred numbers), safety factors, geometry defaults

Gears

gears.md

type selection; spur, helical, bevel, spiral bevel, worm, planetary formulas; strength; verified modeling recipe

Bearings

bearings.md

types, 68xx/69xx/60xx/62xx dimensions, life, fits, shoulders

Fasteners

fasteners.md

pitches and tap drills, ISO 273 holes, counterbores, engagement, torque, pins

Fits and tolerances

fits-tolerances.md

ISO 286 fit values, IT grades, ISO 2768, 3D printing allowances

Shafts and keys

shafts-keys.md

shaft sizing, key dimensions, retaining ring grooves, D-cuts

Materials

materials.md

metals, plastics and 3D printing materials

DFM

dfm.md

machining, sheet metal, injection moulding, FDM/SLA/SLS rules

Gear generators

gear-generators.md

create_gear types, frames, defaults and their basis, self-checks, assembly placement

Topology optimization

topology-optimization.md

problem spec in mm, thermal and combined modes, safety factor 2 on joints and critical features, automatic volume fraction, reading results, turning them into parts, machining-mode plan

API recipes

solidworks-api.md

verified SolidWorks API calls (sketches, lofts, sweeps, patterns, configurations, mates, checks, STL import)

Assembly guide

assembly-guide.md

assembly procedure A0-A8, mate/datum/pose rules, motion checks (solver or geometric poses), parking, closing windows, pitfall table

Design workflow

design-workflow.md

design-model-verify-triage flywheel, verification batteries V1-V6, time boxes, loop report format

To add a note, put a .md file in knowledge/ with the same layout (title, tags, summary at the top, ## sections) and restart Claude. Give a source (standard number, catalogue) for every value.

Gear generators

gear_design (numbers only) and create_gear (native SolidWorks features) cover the common gear types. The type list follows the OpenSCAD library chrisspen/gears (except herringbone bevels and racks with screw holes; planetary sets are computed with gear_design and built part by part), but that library is CC BY-NC-SA 3.0 (non-commercial, share-alike), so none of its code is used: everything is implemented from the standards (ISO 21771, ISO 53, Gleason/AGMA 2005, DIN 3975). Cycloidal and strain-wave drives are left out (buy them as units).

type

Geometry

Method

spur, helical, herringbone

external spur, helical, herringbone

involute and trochoidal root generated by the ISO 53 rack, undercut included

internal

internal (ring) gear

involute with a circular root fillet

rack

spur or helical rack

ISO 53 basic rack, square ends also for helical racks

bevel, spiral_bevel

straight or spiral bevel

Tredgold section loft with guide curves, Gleason proportions

worm, worm_wheel, worm_set

ZA worm, worm wheel

helix sweep; wheel = throated helical approximation

  • Defaults and basis: 20 deg and ISO 53 A [std], backlash 0.04 m [heur], face width 10 m [heur], small pinions get the undercut limit x_min with a V-zero mate [std], ring rim d_f + 6 m [heur]. Results carry the basis tags.

  • Self-checks: SolidWorks volume against the exact tooth-section area x face width (normally within 0.1 %), one body, no rebuild errors, helix hand confirmed by probing the material.

  • build_mate: true builds the mating gear (opposite hand external, same hand internal) and rolls the pair through one pitch with temporary bodies. Measured: spur, helical, herringbone, internal and rack pairs 0 mmยณ; spiral bevel 0.03-0.09 mmยณ (Tredgold approximation); a same-hand helical pair shows 162 mmยณ, so wrong combinations are caught.

  • Frames: axis +Z, z = 0 face on the Front plane, a tooth space centred on +X. Use phase_deg from the result to place pairs; details in the knowledge note gear-generators.

Example: "module 1.5, 18:36 spur pair, 8 mm bore with keyway" -> create_gear {"type": "spur", "module": 1.5, "teeth": 18, "mate_teeth": 36, "build_mate": true, "bore": 8, "keyway": true}

Topology optimization

topology_optimize is a SIMP optimizer ported from ToPy (MIT) to Python 3 + scipy: minimum compliance (maximum stiffness), compliant mechanisms, steady heat conduction (convection as film coefficients) and stiffness plus heat together, 2D plates and 3D. Fluid CFD is not included.

  • Safety factor 2: loads (loads, joint force) and heat (power_W, heat_W) are maximum service values; analysis, preview and every check use 2 x (safety_factor, below 2 is an error).

  • Joints (interfaces): bolt (ISO 273 clearance), tapped hole (ISO 2306 tap drill), pin and pad. The hole is void, a ring of radius max(1.5 d, washer seat + one element) stays solid, and the hole-wall nodes act as support, load, heat source or sink. Results list per-joint utilisation: bolt shear and tension, bearing, tear-out, tapped-hole engagement (thread must not strip before the bolt yields).

  • Critical features (critical) such as bearing seats and sealing faces always stay solid.

  • Checks: stress screening (density >= 0.5, joints excluded) at the design load against yield, and peak temperature at the design heat against max_temperature_C. Verify the final CAD in SOLIDWORKS Simulation at the design loads.

  • volume_fraction: "auto" bisects for the lightest volume fraction that passes the stress and temperature checks.

  • Verification: the element matrices equal ToPy's SymPy definitions to machine precision, and the MBB beam reproduces Sigmund's 99-line code (first iteration to 1e-11, eight iterations to 1e-9).

  • Problems are given in mm: size, element_size, thickness, volume_fraction, supports, loads, keep_out / keep_in (keep material around bolt holes, clear space for moving parts), material. ToPy .tpd files are accepted as they are.

  • Runs as a background job; the call waits up to wait s, then poll with job. Results include iterations, volume fraction, compliance, load-point displacement (mm), mass and a preview image.

  • build: true: a 2D result becomes splines along the 0.5-density contour extruded by the thickness (volume error 0.02 %); a 3D result is imported from STL as a mesh solid body (reference for remodelling).

  • Speed (measured): 2D 120 x 60 elements about 4 s; 3D 40 x 20 x 10 elements about 0.7 s per iteration.

Example: left edge fixed, 1000 N at the middle of the right end, 40 % volume, 6 mm aluminium bracket -> {"problem": {"size": [120, 60], "element_size": 1, "thickness": 6, "volume_fraction": 0.4, "supports": [{"edge": "left"}], "loads": [{"at": [120, 30], "force": [0, -1000]}], "material": {"E": 70000, "density": 2.7}}, "build": true}

Configuration (config.json)

Edit solidworks_mcp/config.json to change behavior without touching code, then restart Claude.

Key

Default

Description

exe_path

"auto"

Path to SLDWORKS.exe; auto reads the registry

part_template, assembly_template, drawing_template

"auto"

Templates for new documents

startup_timeout

120

Seconds to wait for SolidWorks to start

connection_retry_interval

5

Seconds between connection retries

max_retries

3

Connection retries

default_unit

"mm"

Default length unit

log_level

"INFO"

DEBUG, INFO, WARNING or ERROR

log_file

"solidworks_mcp.log"

Log file name (inside solidworks_mcp)

default_extrude_depth, default_fillet_radius, default_chamfer_distance, default_circle_radius

10, 2, 2, 25

Values used when an argument is omitted (mm)

Troubleshooting

The SolidWorks tools don't show up in Claude

  1. Quit Claude from the tray icon (Quit) and start it again.

  2. Check the solidworks server under Settings โ†’ Developer.

  3. Look for could not update messages in setup_mcp.log.

  4. Run the installer once more while Claude is closed.

  5. Read Claude's MCP log: %APPDATA%\Claude\logs\mcp-server-solidworks.log (MSIX build: %LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\logs\).

pip install -r requirements.txt fails: make sure you are using this repository's requirements.txt (no asyncio-compat, mcp<2).

The server exits immediately and the log shows 'Server' object has no attribute 'list_tools': mcp 2.x got installed. Run .venv\Scripts\python.exe -m pip install "mcp>=1,<2".

"Member not found" errors: see the COM rules in Advanced: execute_python. The built-in tools in this repository are already fixed.

It can't connect: check that SolidWorks is running and that no license or startup dialog is open. Run get_solidworks_info to see whether the installation is detected; if not, set exe_path in config.json.

You moved the folder: run setup_windows.bat again to update the paths.

Updating and uninstalling

  • Update: run the PowerShell line again, or git pull in your copy and run setup_windows.bat (installs new packages).

  • Uninstall: run setup_windows.bat -Uninstall (or install.ps1 -Uninstall) in a command prompt; it removes the Claude Desktop and Claude Code registrations and the skill. Then delete the folder. Your pre-install config is in the claude_desktop_config.json.bak-* backup. A skill saved in your Claude account is removed in Claude's settings.

Roadmap

SolidWorks support comes first. Order of work:

  • Text-to-CAD verification loop: model_report, render_views, export_model, check_interference, execute_python helpers

  • Agent guide: token rules and design-rationale rules (server instructions)

  • Design knowledge base v1: design policy, gears, bearings, fasteners, fits, shafts and keys, materials, DFM, API recipes

  • Parts database: KS/ISO standard part tables plus MISUMI Korea part numbers registered by the user (the MISUMI site's robots.txt and terms forbid automated collection, so it is not crawled)

  • Gear generators: spur, helical, herringbone, internal, rack, straight and spiral bevel, worm and worm wheel (standard formulas, self-checked volume and mesh)

  • Topology optimization: 2D/3D stiffness and compliant mechanisms (ToPy port), 2D results as extruded parts

  • Thermal and combined topology optimization: heat conduction with convection films, design at 2 x maximum force and heat, automatic joint handling and checks, automatic volume fraction

  • Standard verification and workflow: verify_model (V1 part, V2 assembly), assembly guide, design-model-verify flywheel

  • Machining optimization mode: 2.5D milling, tool radius, wall and floor thickness constraints (survey done; plan in topology-optimization.md)

  • Planetary assembly placement and help with remodelling 3D optimization results

Heat conduction (convection as film coefficients) is now built in with its own FE. Fluid CFD (SOLIDWORKS Flow Simulation) stays out of scope because its results were not trusted enough.

Project structure

Solidworks-MCP/
โ”œโ”€โ”€ install.ps1                # one-line installer (irm ... | iex): gets the code, finds Python, runs setup_mcp.py
โ”œโ”€โ”€ setup_windows.bat          # one-click installer (double-click; runs install.ps1)
โ”œโ”€โ”€ setup_mcp.py               # installer logic: .venv, packages, self-test, Claude Desktop and Claude Code registration, skill
โ”œโ”€โ”€ skills/solidworks-design/  # Claude skill: design working rules (for clients such as Cowork that do not pass server instructions on)
โ”œโ”€โ”€ solidworks_mcp_server.py   # MCP server entry point
โ”œโ”€โ”€ requirements.txt
โ”œโ”€โ”€ knowledge/                 # design knowledge base (Markdown notes)
โ”œโ”€โ”€ solidworks_mcp/
โ”‚   โ”œโ”€โ”€ server.py              # MCP tool definitions and handlers
โ”‚   โ”œโ”€โ”€ instructions.md        # working rules sent to the agent in every session
โ”‚   โ”œโ”€โ”€ verification.py        # model_report, render_views, export_model, check_interference
โ”‚   โ”œโ”€โ”€ knowledge.py           # knowledge base search
โ”‚   โ”œโ”€โ”€ com.py                 # late-binding COM helpers (val, call, arr, plane, ...)
โ”‚   โ”œโ”€โ”€ gears/                 # gears: geometry (involute), bevel, build (SolidWorks), api (tool arguments)
โ”‚   โ”œโ”€โ”€ topopt/                # topology optimization (ToPy port + heat): problem, topology, physics (heat, stress, joints), export, run, cad
โ”‚   โ”œโ”€โ”€ tests/                 # gear, optimizer and installer unit tests (python -m unittest solidworks_mcp.tests.test_gears ...)
โ”‚   โ”œโ”€โ”€ config.py, config.json # configuration
โ”‚   โ”œโ”€โ”€ constants.py           # SolidWorks constants
โ”‚   โ”œโ”€โ”€ automation/            # base (connection), documents, sketches, features
โ”‚   โ””โ”€โ”€ utils/                 # unit conversion, SolidWorks detection
โ”œโ”€โ”€ scripts/                   # VBS examples from the original project
โ”œโ”€โ”€ solidworks_com.py, solidworks_simulation.py   # earlier scripts from the original project
โ””โ”€โ”€ DEVELOPMENT_ROADMAP.md     # the original project's development plan

License and credits

MIT License (LICENSE). Original project: alisamsam/Solidworks-MCP by Samsaam Ali Baig. Please keep the original copyright notice and license text.

The topology optimization code (solidworks_mcp/topopt/) is a port of ToPy by William Hunter (MIT); the full license is in solidworks_mcp/topopt/LICENSE_TOPY.md. ToPy's 2D part is based on Ole Sigmund's 99-line code. The gear generators do not use code from chrisspen/gears (CC BY-NC-SA 3.0).

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to build, measure, verify, and correct parametric SolidWorks parts and assemblies locally via the COM API, supporting operations like sketching, extruding, modeling, dimensioning, material assignment, export, and assembly mating.
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    Enables Claude or any MCP client to drive a live SOLIDWORKS session through its COM API, modeling parts, building assemblies with mates, checking interferences and machining feasibility, and exporting STEP or DXF files. It also exposes a local semantic index of the SOLIDWORKS API so the model can look up signatures, enums, and official examples before running arbitrary Python against the session.
    22
    1
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables an AI assistant to drive an already-running SOLIDWORKS session over its COM API, so it can build sketches, solid features, reference geometry, assemblies, mates, and engineering drawings, then inspect the result through topology listings, mass properties, measurements, and screenshots returned as images.
    1
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables Claude to control SolidWorks through natural language, supporting part and assembly creation, sketches, advanced features, dimension editing, selection inspection, screenshots, and rebuilds.
    MIT