# IDialogCevirici Hızlı Başlangıç Kılavuzu

Bu kılavuz, IDialogCevirici sistemini kurmanız ve kullanmanız için adım adım talimatlar içerir.

## 📋 Ön Gereksinimler

1. **CATIA V5** kurulu olmalı
2. **Python 3.12** (veya 3.6+)
3. **FikoYT V2024** projesi

## 🚀 Kurulum Adımları

### Adım 1: Bağımlılıkları Yükleyin

```bash
cd D:\__sistem__\Masaustu\FikatiaV2024
python312.2\python.exe -m pip install PyQt6 pywin32 requests
```

### Adım 2: COM Kaydını Yapın

Windows'a COM nesnesini kaydedin:

```bash
cd IDialoglar\IDialogCevirici
D:\__sistem__\Masaustu\FikatiaV2024\python312.2\python.exe registerCom.py
```

Başarılı bir kayıt mesajı göreceksiniz.

## 🎯 Kullanım Senaryoları

### Senaryo 1: Python'dan Doğrudan Başlatma

**En basit test yöntemi:**

```bash
cd D:\__sistem__\Masaustu\FikatiaV2024\IDialoglar\IDialogCevirici
D:\__sistem__\Masaustu\FikatiaV2024\python312.2\python.exe test_dialog.py
```

**Ne olacak?**
1. CATIA'ya bağlanacak
2. Dialog penceresi açılacak
3. Server'ı manuel olarak başlatabileceksiniz

### Senaryo 2: CATIA Makrosu ile Başlatma

**CATIA içinden başlatmak için:**

1. CATIA'yı açın
2. **Tools → Macro → Macros...** menüsüne gidin
3. `TestCatiaScript.CATScript` dosyasını seçin
4. **Run** butonuna tıklayın

**Alternatif: VBA Editor'den:**

```vbscript
Sub CATMain()
    Dim fikoDialog
    Set fikoDialog = CreateObject("FikoYT.IDialogCevirici")
    fikoDialog.Calistir CATIA
End Sub
```

### Senaryo 3: HTTP API Kullanımı

#### Adım 1: Server'ı Başlatın

1. Dialog penceresini açın (Senaryo 1 veya 2 ile)
2. Port numarasını ayarlayın (varsayılan: 8080)
3. **"Server Başlat"** butonuna tıklayın
4. "Server çalışıyor" mesajını görmelisiniz

#### Adım 2: Health Check

Yeni bir terminal açın:

```bash
curl http://localhost:8080/health
```

**Beklenen yanıt:** `OK`

#### Adım 3: Status Kontrolü

```bash
curl http://localhost:8080/status
```

**Beklenen yanıt:**
```json
{
  "status": "running",
  "server": "IDialogCevirici",
  "catia_connected": true
}
```

#### Adım 4: Dosya Dönüştürme

**Python ile:**

```python
import requests

response = requests.post('http://localhost:8080/convert', json={
    'source_file': r'D:\Projelerim\part.CATPart',
    'output_dir': r'D:\Ciktilar',
    'output_name': 'donusmus_parca'
})

print(response.json())
```

**cURL ile:**

```bash
curl -X POST http://localhost:8080/convert ^
  -H "Content-Type: application/json" ^
  -d "{\"source_file\": \"D:\\\\Projelerim\\\\part.CATPart\", \"output_dir\": \"D:\\\\Ciktilar\", \"output_name\": \"donusmus_parca\"}"
```

**Test script ile:**

```bash
cd D:\__sistem__\Masaustu\FikatiaV2024\IDialoglar\IDialogCevirici
D:\__sistem__\Masaustu\FikatiaV2024\python312.2\python.exe test_client.py "D:\Projelerim\part.CATPart"
```

## 📊 Dialog Arayüzü Kullanımı

### Ana Pencere Bileşenleri

```
┌─────────────────────────────────────────────────┐
│ FikoYT Dialog Çevirici - WRL Dönüştürme Servisi │
├─────────────────────────────────────────────────┤
│ Port: [8080] [Server Başlat] [Server Durdur]    │
├─────────────────────────────────────────────────┤
│ Durum: Server çalışıyor (Port: 8080)            │
├─────────────────────────────────────────────────┤
│ Server Logları:                                  │
│ ┌─────────────────────────────────────────────┐ │
│ │ [2024-11-30 10:30:00] Server başlatıldı    │ │
│ │ [2024-11-30 10:35:12] 127.0.0.1 - POST ...  │ │
│ │ [2024-11-30 10:35:13] ✓ Dönüştürüldü: ...  │ │
│ └─────────────────────────────────────────────┘ │
│ [Logları Temizle]                                │
└─────────────────────────────────────────────────┘
```

### Kontroller

1. **Port Ayarı**: Server'ın dinleyeceği port numarası
2. **Server Başlat**: HTTP server'ını başlatır
3. **Server Durdur**: Server'ı durdurur
4. **Logları Temizle**: Log alanını temizler
5. **Durum Çubuğu**: Server durumunu gösterir
6. **Log Alanı**: Gerçek zamanlı server logları

## 🔧 Sorun Giderme

### Hata: "CATIA parametresi boş olamaz!"

**Neden:** CATIA çalışmıyor veya bağlantı kurulamıyor

**Çözüm:**
1. CATIA'nın açık olduğundan emin olun
2. CATIA'da bir döküman açın
3. Dialog'u tekrar başlatın

### Hata: "Port zaten kullanımda"

**Neden:** 8080 portu başka bir uygulama tarafından kullanılıyor

**Çözüm:**
1. Port numarasını değiştirin (örn: 8081, 8082)
2. Veya diğer uygulamayı kapatın

### Hata: "ModuleNotFoundError: No module named 'PyQt6'"

**Neden:** PyQt6 kurulu değil

**Çözüm:**
```bash
D:\__sistem__\Masaustu\FikatiaV2024\python312.2\python.exe -m pip install PyQt6
```

### Hata: "Dosya açılamadı"

**Neden:** Kaynak dosya bulunamıyor veya CATIA formatında değil

**Çözüm:**
1. Dosya yolunu kontrol edin
2. Backslash'leri çift yazın: `D:\\Projeler\\part.CATPart`
3. Veya raw string kullanın: `r'D:\Projeler\part.CATPart'`
4. Dosyanın CATIA formatında olduğundan emin olun (.CATPart, .CATProduct)

### Server yanıt vermiyor

**Çözüm:**
1. Server'ın çalıştığını kontrol edin (Durum: "Server çalışıyor")
2. Firewall ayarlarını kontrol edin
3. Doğru port numarasını kullandığınızdan emin olun
4. Server loglarını inceleyin

## 📝 Örnek Kullanım Senaryosu

### Senaryo: Toplu Dosya Dönüştürme

**Amaç:** Bir klasördeki tüm CATPart dosyalarını WRL'e dönüştürmek

**Adımlar:**

1. **Server'ı başlatın**

2. **Python scripti oluşturun:**

```python
import os
import requests

# Ayarlar
source_dir = r'D:\CATIA_Dosyalari'
output_dir = r'D:\WRL_Ciktilar'
server_url = 'http://localhost:8080'

# Klasördeki tüm .CATPart dosyalarını bul
catpart_files = [f for f in os.listdir(source_dir) if f.endswith('.CATPart')]

print(f"Toplam {len(catpart_files)} dosya bulundu.")

# Her dosyayı dönüştür
for i, filename in enumerate(catpart_files, 1):
    source_file = os.path.join(source_dir, filename)
    output_name = os.path.splitext(filename)[0]

    print(f"\n[{i}/{len(catpart_files)}] Dönüştürülüyor: {filename}")

    try:
        response = requests.post(f'{server_url}/convert', json={
            'source_file': source_file,
            'output_dir': output_dir,
            'output_name': output_name
        }, timeout=120)

        if response.status_code == 200:
            result = response.json()
            print(f"  ✓ Başarılı: {result['output_file']}")
        else:
            print(f"  ✗ Hata: {response.text}")

    except Exception as e:
        print(f"  ✗ İstek hatası: {e}")

print("\nDönüştürme tamamlandı!")
```

3. **Scripti çalıştırın:**

```bash
D:\__sistem__\Masaustu\FikatiaV2024\python312.2\python.exe toplu_donustur.py
```

## 🎓 İleri Seviye Kullanım

### Farklı Port Kullanımı

```python
# Dialog oluştururken port değiştirin
dialog = IDialogCevirici(Catia=catia)
dialog.server_port = 9000
dialog.show()
```

### Logları Dosyaya Kaydetme

Dialog log alanından logları kopyalayıp dosyaya kaydedebilirsiniz, veya custom log handler ekleyebilirsiniz.

### Güvenlik: Sadece Localhost

Server varsayılan olarak tüm IP'lerden bağlantı kabul eder. Sadece localhost için:

`IDialogCevirici.py` dosyasında:

```python
# Değiştir:
server_address = ('', port)

# Şuna:
server_address = ('127.0.0.1', port)
```

## 📞 Destek

Sorularınız için:
- README.md dosyasına bakın
- Test scriptlerini inceleyin
- FikoYT Development Team ile iletişime geçin

## ✅ Kontrol Listesi

Başlamadan önce kontrol edin:

- [ ] CATIA V5 kurulu ve çalışıyor
- [ ] Python 3.12 (veya 3.6+) kurulu
- [ ] PyQt6 kurulu (`pip install PyQt6`)
- [ ] pywin32 kurulu (`pip install pywin32`)
- [ ] COM kaydı yapıldı (`python registerCom.py`)
- [ ] CATIA'da bir döküman açık
- [ ] Firewall server portuna izin veriyor (isteğe bağlı)

## 🎉 Başarı!

Artık IDialogCevirici'yi kullanmaya hazırsınız!

İyi çalışmalar.
