# FikoYT - Çıkarıcı Dialog (IFikoCikariciDialog)

## Genel Bakış

Bu dialog, CATIA CAD dosyalarından aşağıdaki işlemleri gerçekleştirmenizi sağlar:

- **WRL Kaydı**: 3D modeli VRML formatında çıkartma
- **Resim Çekme**: Belge görüntüsünü PNG formatında alma
- **Dokümantasyon**: Teknik dokümantasyon (JSON) oluşturma
- **Gizli Klasör**: Tüm çıktılar `.fikoyt` gizli klasöründe saklanır

---

## 📁 Dosya Yapısı

```
IFikoCikariciDialog/
├── __init__.py                   # Paket dosyası
├── registerCom.py                # COM Registry kaydı
├── IFikoCikariciDialog.py         # Ana dialog sınıfı (PyQt6)
├── threadManager.py              # Async işlemler ve thread safety
├── formAna.ui                    # PyQt6 Designer form
└── Resimler/
    ├── hiper.gif                 # Loading animasyonu
    └── ok.png                    # Buton ikonları
```

---

## 🔧 Kurulum Adımları

### 1️⃣ **COM Registrasyonu** (Bir Kez Yapılır)

Aşağıdaki batch dosyasını **Yönetici olarak** çalıştırınız:

```bash
D:\__sistem__\Masaustu\FikatiaV2024\REGISTER_IFikoCikariciDialog.bat
```

**Sonuç:** COM nesnesi Windows Registry'sine kaydedilir.
- ProgID: `FikoYT.IFikoCikariciDialog`
- CLSID: Otomatik oluşturulur

### 2️⃣ **Resim Dosyalarını Kopyalayın** (Opsiyonel)

Eğer GIF ve PNG dosyaları eksikse, başka bir dialog'tan kopyalayın:

```bash
xcopy "D:\__sistem__\Masaustu\FikatiaV2024\IDialoglar\IFikoAktiviteAyirici\Resimler\*.gif" ^
       "D:\__sistem__\Masaustu\FikatiaV2024\IDialoglar\IFikoCikariciDialog\Resimler\" /Y

xcopy "D:\__sistem__\Masaustu\FikatiaV2024\IDialoglar\IFikoAktiviteAyirici\Resimler\*.png" ^
       "D:\__sistem__\Masaustu\FikatiaV2024\IDialoglar\IFikoCikariciDialog\Resimler\" /Y
```

---

## 📌 CATIA'da Kullanım

### Yöntem 1: Makro Dosyasını Doğrudan Çalıştır

1. CATIA'yı açın
2. **Tools** → **Macros** → **Run Macro** seçin
3. Dosya yolu: `D:\__sistem__\Masaustu\FikatiaV2024\CATIA_MAKRO_Cikarici.catvbs`
4. **Run** butonuna tıklayın

### Yöneth 2: Makroyu CATIA Toolbar'ına Ekle (Daha Kolay)

1. **Tools** → **Customize** açın
2. **Macros** sekmesine git
3. Makro dosyasını bul ve toolbar'a sürükle
4. Sonra bir butona tıkla = Dialog açılır

---

## 💾 Veri Depolama (.fikoyt Klasörü)

Dialog çalıştırıldığında, dokümandaki klasörde `.fikoyt` adında gizli bir klasör açılır:

```
Dokuman_Klasoru/
└── .fikoyt/                      # Gizli klasör
    ├── model.wrl                 # 3D model (VRML)
    ├── screenshot.png            # Belge görüntüsü
    └── dokumantasyon.json        # Teknik bilgiler
```

**JSON Dosyası Örneği:**
```json
{
  "olusturma_tarihi": "2024-11-22T15:30:45.123456",
  "dokuman_adi": "Part1.CATPart",
  "dokuman_tam_yolu": "C:\\Projeler\\Part1.CATPart",
  "belge_turu": ".CATPart",
  "kaydedilmis": true,
  "islemler": {
    "wrl_kayit": true,
    "resim_cikti": true
  }
}
```

---

## 🎮 Dialog Arayüzü

### Seçenekler Paneli

- ☑ **WRL (3D Model) Formatında Kaydet**
  - CATIA 3D modeli VRML (.wrl) formatında dışa aktarır
  - Başka sistemlerde görüntülenebilir

- ☑ **Görüntüyü PNG Olarak Çek**
  - Aktif belgenin ekran görüntüsünü alır
  - Dokümantasyonda kullanılabilir

- ☑ **Teknik Dokümantasyon Oluştur (JSON)**
  - Belge metadatası ve işlem bilgileri kaydedilir
  - Veri takibi için JSON formatı

### İşlem Butonları

- **WRL Olarak Kaydet** → `model.wrl` oluşturur
- **Resim Çek (PNG)** → `screenshot.png` oluşturur
- **Dokümantasyon Oluştur** → `dokumantasyon.json` oluşturur
- **Çıkış** → Dialog'u kapatır

### Durum Çubuğu

İşlemlerin durumu gösterilir:
- `Loading...` animasyonu sırasında çalışır
- Tamamlandığında: `✓ [TIP] kaydedildi: [DOSYA_YOLU]`
- Hata durumunda: `✗ Hata: [HATA_MESAJI]`

---

## 🚀 Kod Özellikleri

### PyQt6 Entegrasyonu
- Modern PyQt6 arayüzü
- Signal/Slot sistemi
- Async işlemler (UI bloke olmaz)

### COM Thread Safety
- `pythoncom.CoMarshalInterThreadInterfaceInStream()` ile COM nesneleri thread-safe aktarılır
- Arka planda işlem yapılırken UI yanıt veriyor

### CATIA Entegrasyonu
- Aktif belge otomatik olarak alınır
- Belgenin klasörüne `.fikoyt` oluşturulur
- `IDokuman` sarmalama sınıfı kullanılır

---

## 🔍 Hata Çözümleme

### "COM nesnesi yüklenemedi" Hatası

**Sebep:** Dialog COM Registry'ye kaydedilmemiş

**Çözüm:**
```bash
# Yönetici olarak çalıştır:
D:\__sistem__\Masaustu\FikatiaV2024\REGISTER_IFikoCikariciDialog.bat
```

### "UI dosyası yüklenemedi" Hatası

**Sebep:** `formAna.ui` dosyası bulunamadı

**Çözüm:**
- Dialog klasörü yolunu kontrol et
- `formAna.ui` dosyası mevcut mu diye kontrol et

### ".fikoyt klasörü oluşturulamadı" Hatası

**Sebep:** Yazma yetkisi yok

**Çözüm:**
- Dosya/klasör izinlerini kontrol et
- İzin yetkilendirme yapılmış olduğundan emin ol

### "Resim çekilemedi" Hatası

**Sebep:** CATIA gösterim sistemi erişilemiyor

**Çözüm:**
- Belgenin görüntüleme penceresinin açık olduğundan emin ol
- CATIA güncelle

---

## 📝 Geliştirilecek Özellikler

Gelecek sürümlerde eklenebilecek:

- [ ] Step (STEP) formatı dışa aktarma
- [ ] PDF dokümantasyon oluşturma
- [ ] Çok sayıda belge batch işleme
- [ ] Özel ad şablonları (template)
- [ ] Otomatik backup ayarları
- [ ] E-posta gönderme entegrasyonu

---

## 📞 Teknik Destek

Sorunlar için kontrol listesi:

1. COM Registry kaydı yapıldı mı? → `REGISTER_IFikoCikariciDialog.bat`
2. CATIA belge açık mı?
3. İçeriği kaydetti misiniz? → `dokuman.Kaydet()`
4. Python 3.8+ kurulu mu?
5. PyQt6 kütüphanesi kurulu mu? → `pip install PyQt6`
6. Windows yönetici yetkisi var mı?

---

## 🔐 Güvenlik

- `.fikoyt` klasörü Windows tarafından gizlidir (Hidden attribute)
- Kayıtlı veriler belgenin klasöründe saklanır
- COM nesneleri güvenli thread'le geçilir
- Hiçbir dış ağa bağlantı yok

---

## 📄 Lisans

FikoYT Projesi - Dahili Kullanım

---

**Sürüm:** 1.0
**Tarih:** 2024-11-22
**Durum:** Üretim Hazırı (Production Ready)
