---
name: fikoyt-python-freecad
description: Python/FreeCAD Flask API sunucusu (STEP analiz/render/dönüşüm, Redis cache) geliştirme. glTF/VRML97/JSON/GIF/PNG çıktıları, per-yüz renk, headless render. Bu skill "freecad", "python api", "step analiz", "step render", "gltf", "vrml", "convert", "headless render", "flask", "stp-to-vrml" anahtar kelimeleriyle tetiklenir.
---

# fikoyt-python-freecad — FreeCAD API geliştirme

Konum: `Python/` · Ana dosya: `freecad_api_server.py` (Flask) · Cache: Redis + bellek içi (1 saat TTL).
ÖNCE OKU (hafıza): `projeler/python/_index.md` → api-endpoints.md (route/param/response), step-analyzer.md, render-options.md.
⚠️ Git durumu: Python/ altındaki birçok eski dosya SİLİNMİŞ görünüyor (git status D) — dosya yazmadan önce `git status Python/` kontrol et, silinmiş dosyayı yanlışlıkla diriltme; ana sunucu dosyasının güncel halini bul.

## Endpoint'ler
`/analyze` (STEP analiz), `/render` (görüntü), `/convert-to-gltf`, `/convert-to-wrl97`, `/materials`, `/health`.
Tüketiciler: web 3D (fikoyt-zorro STEP akışı) + docker `stp-to-vrml` servisi — response formatını DEĞİŞTİRME (geriye uyum); yeni alan EKLE, alan silme/yeniden adlandırma yok.

## Çalıştırma
```
cd Python
freecad freecad_api_server.py     # veya: python freecad_api_server.py
```
FreeCAD headless: GUI modülleri import etme; render headless kalıbıyla (render-options.md). Uzun analizde Redis cache anahtarını değiştirme (istemciler bayat/yeni karışığı görmesin).

## Tarz + tuzaklar
- Küçük iş direkt; commit yalnız istenince; kullanıcıya dönen mesajlar Türkçe; kısa yanıt.
- Per-yüz renk çıkarımı tarihsel olarak hassas (JSON color fix geçmişi var) — renk üreten kodda değişiklik yaparken önce mevcut çıktıyı bir örnek STEP ile yakala, sonra karşılaştır.
- FreeCAD API sürüm-hassas: `App`/`Part`/`Mesh` çağrılarını değiştirirken try/except ile eski davranışı koru.
- Ağır işlem endpoint'lerinde timeout/streaming düşün; Flask'ı bloklayan uzun döngüye yeni iş ekleme.
