#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import os
import FreeCAD
import FreeCADGui
import Part

# Debug fonksiyonu
def debug(msg):
    print(f"[DEBUG] {msg}", flush=True)

debug("Script başlatıldı")

# Dosya yolları (hardcoded)
input_file = r"D:\__sistem__\ProgramFiles\FreeCAD\bin\freecad1.stp"
output_dir = r"D:\__sistem__\ProgramFiles\FreeCAD\bin"
base_name = "cikti"

debug(f"Girdi dosyası: {input_file}")
debug(f"Çıktı klasörü: {output_dir}")

if not os.path.exists(input_file):
    debug("Hata: Girdi dosyası bulunamadı")
    sys.exit(1)

# GUI başlat
try:
    FreeCADGui.showMainWindow()
    debug("GUI başlatıldı")
except Exception as e:
    debug(f"Hata GUI: {e}")
    sys.exit(1)

# Belge oluştur
doc = FreeCAD.newDocument()
debug("Yeni belge oluşturuldu")

# STEP yükle
shape = Part.Shape()
shape.read(input_file)
Part.show(shape)
debug("STEP dosyası yüklendi")

# Görünüm
view = FreeCADGui.ActiveDocument.ActiveView

# Kaydedilecek açılar: (method_name, suffix, açıklama)
angles = [
    ("viewAxonometric", "1", "Axonometric"),
    ("viewFront", "2", "Front"),
    ("viewBack", "3", "Back"),
    ("viewTop", "4", "Top"),
    ("viewBottom", "5", "Bottom"),
    ("viewLeft", "6", "Left"),
    ("viewRight", "7", "Right"),
    ("viewIsometric", "8", "Isometric")
]

# PNG üret
for method_name, suffix, label in angles:
    try:
        getattr(view, method_name)()  # view.method_name() çağrısı
        view.fitAll()
        output_file = os.path.join(output_dir, f"{base_name}_{suffix}.png")
        view.saveImage(output_file, 1920, 1080, 'White')
        debug(f"{label} görünümü kaydedildi: {output_file}")
    except Exception as e:
        debug(f"Hata {label} görünümü kaydederken: {e}")

debug("Tüm açılar tamamlandı")
