Update config, docs and add box model

- server.py: Output-Verzeichnis default auf models/ relativ zu server.py
- README.md: Claude Code statt Desktop, models/-Ordner, korrekte settings.json
- models/box.py: Offene Box 30x30x20mm, alle Maße als Variablen

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
nova
2026-03-13 15:29:23 +01:00
parent bcb90a6017
commit bae8071e69
3 changed files with 64 additions and 84 deletions
+54 -68
View File
@@ -10,7 +10,7 @@ Zusätzlich ist CQ-editor als GUI-Vorschau-Tool integriert.
1. [Voraussetzungen](#1-voraussetzungen) 1. [Voraussetzungen](#1-voraussetzungen)
2. [Installation](#2-installation) 2. [Installation](#2-installation)
3. [Claude Desktop einbinden](#3-claude-desktop-einbinden) 3. [Claude Code einbinden](#3-claude-code-einbinden)
4. [CQ-editor starten](#4-cq-editor-starten) 4. [CQ-editor starten](#4-cq-editor-starten)
5. [Verwendung in Claude](#5-verwendung-in-claude) 5. [Verwendung in Claude](#5-verwendung-in-claude)
6. [Projektstruktur](#6-projektstruktur) 6. [Projektstruktur](#6-projektstruktur)
@@ -24,7 +24,7 @@ Zusätzlich ist CQ-editor als GUI-Vorschau-Tool integriert.
|---|---|---| |---|---|---|
| Windows 10/11 | 64-Bit | Getestet auf Windows 11 | | Windows 10/11 | 64-Bit | Getestet auf Windows 11 |
| Python | ≥ 3.10 | [python.org](https://www.python.org/downloads/) – „Add to PATH" aktivieren | | Python | ≥ 3.10 | [python.org](https://www.python.org/downloads/) – „Add to PATH" aktivieren |
| Claude Desktop | aktuell | [claude.ai/download](https://claude.ai/download) | | Claude Code | aktuell | CLI-Tool von Anthropic |
| Git | optional | Für Versionsverwaltung | | Git | optional | Für Versionsverwaltung |
> **Hinweis:** Python 3.13 wird vollständig unterstützt (CadQuery 2.7.0 liefert fertige Wheels). > **Hinweis:** Python 3.13 wird vollständig unterstützt (CadQuery 2.7.0 liefert fertige Wheels).
@@ -76,57 +76,52 @@ Installierte Pakete (Auswahl):
# Ausgabe: cq-editor OK # Ausgabe: cq-editor OK
``` ```
### 2.5 Test-STL erzeugen ### 2.5 Output-Verzeichnis anlegen
```powershell ```powershell
.venv\Scripts\python -c " mkdir models
import cadquery as cq
from cadquery import exporters
from pathlib import Path
output = Path.home() / '3d-models'
output.mkdir(exist_ok=True)
result = cq.Workplane('XY').box(20, 20, 10)
exporters.export(result, str(output / 'test_box.stl'))
print('OK:', output / 'test_box.stl')
"
``` ```
Die STL-Datei wird in `C:\Users\<Benutzername>\3d-models\` gespeichert. STL-Dateien und Vorschauen werden in `cadquery\models\` gespeichert.
--- ---
## 3. Claude Code einbinden ## 3. Claude Code einbinden
**Claude Code** (CLI) nutzt `settings.json`, nicht `claude_desktop_config.json`. **Claude Code** (CLI) nutzt `settings.json` — **nicht** `claude_desktop_config.json`.
### 3.1 Konfigurationsdatei ### 3.1 Konfigurationsdatei
``` ```
C:\Users\thors\.claude\settings.json C:\Users\<Benutzername>\.claude\settings.json
``` ```
### 3.2 CadQuery-Server eintragen ### 3.2 CadQuery-Server eintragen
Der CadQuery-Server ist bereits eingetragen (Auszug): Den folgenden Block in `"mcpServers"` einfügen:
```json ```json
{ {
"mcpServers": { "mcpServers": {
"cadquery": { "cadquery": {
"type": "stdio", "type": "stdio",
"command": "C:/Users/thors/Documents/Claude/cadquery/.venv/Scripts/python.exe", "command": "C:/Users/<Benutzername>/Documents/Claude/cadquery/.venv/Scripts/python.exe",
"args": ["C:/Users/thors/Documents/Claude/cadquery/server.py"] "args": ["C:/Users/<Benutzername>/Documents/Claude/cadquery/server.py"],
"env": {
"CADQUERY_OUTPUT_DIR": "C:/Users/<Benutzername>/Documents/Claude/cadquery/models"
}
} }
} }
} }
``` ```
> **Hinweis:** In `settings.json` werden Pfade mit Forward-Slashes (`/`) geschrieben. > **Wichtig:** `<Benutzername>` durch den tatsächlichen Windows-Benutzernamen ersetzen.
> Pfade in `settings.json` werden mit Forward-Slashes (`/`) geschrieben.
### 3.3 Claude Code neu starten ### 3.3 Claude Code neu starten
Nach Änderungen an `settings.json` muss Claude Code neu gestartet werden. Nach Änderungen an `settings.json` muss Claude Code **vollständig** neu gestartet werden
(nicht nur eine neue Konversation öffnen — die App selbst beenden und neu starten).
Die MCP-Tools erscheinen dann automatisch in der Werkzeugliste. Die MCP-Tools erscheinen dann automatisch in der Werkzeugliste.
--- ---
@@ -139,26 +134,16 @@ CQ-editor ist ein Qt-basierter GUI-Editor mit Live-3D-Vorschau.
```powershell ```powershell
# Direkt über die installierte Executable: # Direkt über die installierte Executable:
C:\Users\<Benutzername>\Documents\Claude\cadquery\.venv\Scripts\cq-editor.exe .venv\Scripts\cq-editor.exe
# Alternativ über Python: # Alternativ über Python:
.venv\Scripts\python -m cq_editor .venv\Scripts\python -m cq_editor
``` ```
### Startskript (optional)
Für einfacheres Starten kann eine Datei `start-cq-editor.bat` im Projektverzeichnis
angelegt werden:
```batch
@echo off
C:\Users\<Benutzername>\Documents\Claude\cadquery\.venv\Scripts\cq-editor.exe
```
### Workflow mit CQ-editor ### Workflow mit CQ-editor
1. CQ-editor starten 1. CQ-editor starten
2. CadQuery-Code im Editor schreiben 2. Datei aus `models\` öffnen (z.B. `box.py`)
3. **F5** drücken → Live-Vorschau rechts aktualisiert sich 3. **F5** drücken → Live-Vorschau rechts aktualisiert sich
4. Datei → Export → STL zum Speichern 4. Datei → Export → STL zum Speichern
@@ -168,10 +153,10 @@ C:\Users\<Benutzername>\Documents\Claude\cadquery\.venv\Scripts\cq-editor.exe
### 5.1 Verfügbare MCP-Tools ### 5.1 Verfügbare MCP-Tools
Nach dem Neustart von Claude Desktop stehen drei Tools zur Verfügung: Nach dem Neustart von Claude Code stehen drei Tools zur Verfügung:
#### `mcp__cadquery__render_stl` #### `mcp__cadquery__render_stl`
Führt CadQuery-Python-Code aus und exportiert eine STL-Datei. Führt CadQuery-Python-Code aus und exportiert eine STL-Datei nach `models\`.
``` ```
Parameter: Parameter:
@@ -180,7 +165,7 @@ Parameter:
``` ```
#### `mcp__cadquery__preview_png` #### `mcp__cadquery__preview_png`
Exportiert eine SVG-Vorschau des Modells. Exportiert eine SVG-Vorschau des Modells nach `models\`.
``` ```
Parameter: Parameter:
@@ -189,7 +174,7 @@ Parameter:
``` ```
#### `mcp__cadquery__list_models` #### `mcp__cadquery__list_models`
Listet alle STL-Dateien im Output-Verzeichnis auf. Listet alle STL-Dateien in `models\` auf.
### 5.2 Code-Konventionen ### 5.2 Code-Konventionen
@@ -213,11 +198,23 @@ result = cq.Workplane("XY").box(20, 20, 10)
### 5.3 Beispiele ### 5.3 Beispiele
**Einfacher Quader:** **Offene Box mit parametrischen Maßen (siehe `models/box.py`):**
```python ```python
import cadquery as cq import cadquery as cq
result = cq.Workplane("XY").box(30, 20, 10) # Maße
breite = 30 # mm (X)
tiefe = 30 # mm (Y)
hoehe = 20 # mm (Z)
wandstaerke = 2 # mm
result = (
cq.Workplane("XY")
.box(breite, tiefe, hoehe)
.faces(">Z")
.shell(-wandstaerke)
)
show_object(result) show_object(result)
``` ```
@@ -234,14 +231,14 @@ result = (
show_object(result) show_object(result)
``` ```
**Parametrisches Modell:** **Quader mit abgerundeten Kanten:**
```python ```python
import cadquery as cq import cadquery as cq
breite = 40 breite = 40
hoehe = 20 tiefe = 20
tiefe = 10 hoehe = 10
radius = 3 radius = 3
result = ( result = (
cq.Workplane("XY") cq.Workplane("XY")
@@ -252,29 +249,15 @@ result = (
show_object(result) show_object(result)
``` ```
**Assembly (Baugruppe):**
```python
import cadquery as cq
box = cq.Workplane("XY").box(20, 20, 10)
zylinder = cq.Workplane("XY").cylinder(15, 5)
asm = (
cq.Assembly()
.add(box, name="basis", loc=cq.Location((0, 0, 0)))
.add(zylinder, name="zapfen", loc=cq.Location((0, 0, 10)))
)
show_object(asm)
```
### 5.4 Output-Verzeichnis ### 5.4 Output-Verzeichnis
STL-Dateien werden gespeichert in: STL-Dateien und SVG-Vorschauen werden gespeichert in:
``` ```
C:\Users\<Benutzername>\3d-models\ cadquery\models\
``` ```
Diesen Pfad kann man über die Umgebungsvariable `CADQUERY_OUTPUT_DIR` überschreiben. Der Pfad wird über `CADQUERY_OUTPUT_DIR` in `settings.json` gesetzt.
Fallback (wenn nicht gesetzt): `cadquery\models\` relativ zu `server.py`.
--- ---
@@ -283,6 +266,8 @@ Diesen Pfad kann man über die Umgebungsvariable `CADQUERY_OUTPUT_DIR` überschr
``` ```
cadquery/ cadquery/
├── .venv/ # Python Virtual Environment (nicht ins Git) ├── .venv/ # Python Virtual Environment (nicht ins Git)
├── models/ # Generierte STL- und SVG-Dateien + Python-Modelle
│ └── box.py # Beispiel: offene Box mit parametrischen Maßen
├── server.py # MCP-Server (FastMCP) ├── server.py # MCP-Server (FastMCP)
└── README.md # Diese Datei └── README.md # Diese Datei
``` ```
@@ -309,14 +294,15 @@ in eine Variable namens `result` speichern.
### STL-Datei wird nicht erstellt ### STL-Datei wird nicht erstellt
- Output-Verzeichnis prüfen: `C:\Users\<Benutzername>\3d-models\` - Output-Verzeichnis prüfen: `cadquery\models\` muss existieren
- Schreibrechte auf das Verzeichnis prüfen - Schreibrechte auf das Verzeichnis prüfen
### Claude Desktop zeigt keine MCP-Tools ### Claude Code zeigt keine MCP-Tools
1. `claude_desktop_config.json` auf korrekte Pfade und JSON-Syntax prüfen 1. `settings.json` auf korrekte Pfade und JSON-Syntax prüfen
2. Claude Desktop vollständig beenden (Taskleiste → Rechtsklick → Beenden) 2. Claude Code **vollständig** beenden (nicht nur Konversation schließen)
3. Claude Desktop neu starten 3. Claude Code neu starten
4. MCP-Server-Log prüfen: `%APPDATA%\Claude\logs\mcp-server-cadquery.log`
### Download bricht ab (cadquery-ocp / PyQt5-Qt5) ### Download bricht ab (cadquery-ocp / PyQt5-Qt5)
+8 -15
View File
@@ -1,23 +1,16 @@
"""
Offene Box: 40 x 60 x 50 mm, Wand- und Bodenstärke 2 mm
"""
import cadquery as cq import cadquery as cq
from cadquery import exporters
from pathlib import Path
OUTPUT = Path.home() / "3d-models" # Maße
OUTPUT.mkdir(exist_ok=True) breite = 30 # mm (X)
tiefe = 30 # mm (Y)
wall = 2 hoehe = 20 # mm (Z)
wandstaerke = 2 # mm
result = ( result = (
cq.Workplane("XY") cq.Workplane("XY")
.box(40, 60, 50) .box(breite, tiefe, hoehe)
.faces(">Z") .faces(">Z")
.shell(-wall) .shell(-wandstaerke)
) )
out = OUTPUT / "box_40x60x50.stl" show_object(result)
exporters.export(result, str(out))
print(f"STL gespeichert: {out}")
print(f"Größe: {out.stat().st_size // 1024} KB")
+2 -1
View File
@@ -13,7 +13,8 @@ from mcp.server.fastmcp import FastMCP
import cadquery as cq import cadquery as cq
from cadquery import exporters from cadquery import exporters
OUTPUT_DIR = Path(os.environ.get("CADQUERY_OUTPUT_DIR", Path.home() / "3d-models")) _default_output = Path(__file__).parent / "models"
OUTPUT_DIR = Path(os.environ.get("CADQUERY_OUTPUT_DIR", _default_output))
OUTPUT_DIR.mkdir(parents=True, exist_ok=True) OUTPUT_DIR.mkdir(parents=True, exist_ok=True)
mcp = FastMCP("cadquery") mcp = FastMCP("cadquery")