#pragma once // Başlangıç ayar seti: uygulama durumlarını (tema/ışık/ızgara/kamera/hızlı-3D/döküm) // merkezi AyatSistemi'ne bağlar, kalıcı değerleri (fikocad.ayar "ayar.") // uygular, değişiklik köprüsünü (kalıcı yaz + olay) ve "Araçlar → Ayarlar…" menü // komutunu kurar. main.cpp'den alt sistemler kurulduktan sonra BİR KEZ çağrılır. #include "fiko/core/temel.hpp" namespace fiko { namespace dokum { struct Derece; } struct UygulamaBaglam; struct AyarlarPencereDurum; void ayarlarKaydet(UygulamaBaglam& b, AyarlarPencereDurum& pencere); // Döküm simülasyonu varsayılan çözünürlüğü ("dokum.cozunurluk" ayarı). // DokumSistemi::ekle yeni sim oluştururken okur (bkz. entegrasyon kontratı). u32 dokumVarsayilanCozunurluk(); // Voxel görselini parçanın ham AABB'sine kırp ("dokum.voxel_kirp", varsayılan açık). // Kapalı = eski davranış: en dıştaki küpler parçayı ~h/2 aşar (40mm → 42mm). bool dokumVoxelKirp(); // Kafes kapsama uyarı eşiği ("dokum.kapsama_uyari_esik", varsayılan 0.5). // voxel metal hacmi / gerçek parça hacmi bu oranın altındaysa panel uyarır // (ince cidar merkez-sınıflamasında kaybolur → "%100 doldu" yalanı). 0 = kapalı. f32 dokumKapsamaEsik(); // DFSPH divergence çözücü ("dokum.sph_divergence_cozucu", varsayılan KAPALI). // ÖLÇÜLDÜ 07-16: açıkken ince çözünürlükte hız alanını patlatıyor (h=2mm: 98.0 vs // 7.3 m/s), üstelik daha yavaş. Kaba çözünürlükte fark yok. Kütüphane varsayılanı // (SphDolumAyar.divergenceCozucu=true) eski davranış; fikocad bunu geçirir. bool dokumSphDivergenceCozucu(); // SPH emitter havuz tavanı ("dokum.sph_maks_partikul", varsayılan 400000). // Gereken partikül tavanı aşarsa emitter havuz dolunca susar → büyük kalıp // SPH'de asla %100 dolamaz; panel sphEmitPlani ile uyarır. u32 dokumSphMaksPartikul(); // "Uygula" kütle çarpanı ("dokum.giris_kutle_pay", varsayılan 1.05): girişlerin // toplam kütlesi kaviteden azsa panel kütleleri kavite × pay'a ölçekler. f64 dokumGirisKutlePay(); // Giriş "kavite dışında" uyarı eşiği ("dokum.giris_uzak_esik_h", ×hücre boyu). f64 dokumGirisUzakEsikH(); // Kafes ŞİŞME uyarı eşiği ("dokum.kapsama_sisme_esik", voxel/parça hacim oranı; // vars. 1.5, 0 = kapalı). İnce plakalar kaba hücreye yapışınca %100 doluluk // temsilî kalır — eski eşik yalnız <%50 (görmüyor) tarafını yakalıyordu. f64 dokumKapsamaSismeEsik(); // "Cidarı ölç" pratik cidar yüzdeliği ("dokum.cidar_yuzdelik", 0.10 = p10; // 0 = ham minimum). Ham min tek paha kilitlenip absürt res önerisi üretiyordu. f64 dokumCidarYuzdelik(); // Porozite izo-eşiği veriden türet ("dokum.porozite_oto_esik", varsayılan açık) // + yüzdelik ("dokum.porozite_esik_yuzdelik", 0.90 = en kötü %10 vurgulanır). // Sabit %0.5 "her yer kırmızı" yapıyordu (ÖLÇÜLDÜ: hücrelerin %58'i üstünde). bool dokumPoroziteOtoEsik(); f64 dokumPoroziteYuzdelik(); // Derece (kum döküm flask) yeni sim varsayılanları ("dokum.derece_*"): // göster + yan/üst/alt kum payları + duvar. DokumSistemi::ekle çağırır. void dokumDereceVarsayilanUygula(dokum::Derece& d); // Kum bloğu saydamlığı ("dokum.derece_kum_saydamlik") — parçayı boğmasın. f64 dokumDereceKumSaydamlik(); // Kum yoğunluğu [kg/m³] ("dokum.kum_yogunluk") — kum ihtiyacı raporu. f64 dokumKumYogunluk(); // ---- SPH partikül bulutu (çalkantı görseli) -------------------------------- // SPH çözümünde kare-başı partikül konumunu SAKLA ("dokum.sph_partikul_kaydet", // varsayılan açık). Kapalı = eski davranış (kare yalnız hücre doluluğu taşır) → // "Partikül bulutu" görünümü boş kalır. Bellek: partikül × kare × 20B. bool dokumPartikulKaydet(); // Kayıtta n'de bir partikül sakla ("dokum.sph_partikul_alt_ornek"); belleği böler. u32 dokumPartikulAltOrnek(); // Blob yarıçapı = hücre boyu × oran ("dokum.sph_partikul_yaricap_oran"). f32 dokumPartikulYaricapOran(); // Çizimde n'de bir partikül çiz ("dokum.sph_partikul_ciz_alt_ornek"); kayıt DURUR, // yalnız mesh hafifler (scrubber akıcılığı). u32 dokumPartikulCizAltOrnek(); // ---- Strafor montaj paneli varsayılanları (kategori "Strafor") ------------- f64 straforVarsayilanHedefEn(); f64 straforVarsayilanHedefBoy(); f64 straforVarsayilanHedefYuk(); bool straforGeciciOncelik(); u32 straforVaryantSayisi(); bool straforOffcutNesting(); f64 straforIscilikAgirlik(); // APT (.FikoApt/.apt) ithalinde yolu sahneye çizme, simülasyon penceresinde // oynat ("cam.apt_ithal_simulasyon", varsayılan açık). Kapalı = eski davranış. bool aptIthalSimulasyon(); bool aptAktiviteAyir(); f64 aptYayTolerans(); // Zekâ Motoru komut kapısı ("zeka.aktif", varsayılan AÇIK). Kapalıyken // "Zekâ Analizi" komutu Türkçe uyarı verir, govdeCoz koşmaz. bool zekaAktif(); // Zekâ Analizi async hesap ("zeka.hesap_async", varsayılan AÇIK): ağır OCCT // okumaları worker'da derin kopyada; kapalıyken birebir eski senkron yol. bool zekaHesapAsync(); // Geçici dosya politikası ("Geçici Dosyalar" kategorisi) yalnız ayar_kayitlari.cpp // içinde yaşar; dışarıdan erişim gecimi.hpp (yol katmanı) + AyatSistemi üzerinden. bool ozmoKafaAyrilikProses(); bool diagonalKafaAyrilikProses(); // ---- Ürün Ağacı bağlantı çizgileri ayarları ------------------------------- // "Ürün Ağacı" kategorisinde görünen bağlantı gösterimi ayarları. bool agacBaglantiGoster(); // Bağlantı çizgilerini göster (varsay: açık) f32 agacBaglantiKalibrasyon(); // Çizgi konum düzeltmesi (piksel, varsay: 0.0) } // namespace fiko