Sac fire takip

kayaaz06

Altın Üye
Katılım
6 Mart 2025
Mesajlar
3
Excel Vers. ve Dili
2021
Altın Üyelik Bitiş Tarihi
16-08-2026
Merhaba, sac plakaları dışardan alıyoruz.
Ve bunları proje bazlı kestiriyoruz örnek veriyorum.
1200*2400*2mm plaka alıyoruz bu plakadan 390*490*2mm sac kestiriyoruz. Fire oranını hesaplayacagım kolay bir yöntem varmı ?
 
Katılım
20 Ekim 2005
Mesajlar
498
s.a.
Kod:
Sub Fire_Hesapla()
    Dim PlakaGenislik As Double
    Dim PlakaYukseklik As Double
    Dim ParcaGenislik As Double
    Dim ParcaYukseklik As Double
    Dim Kerf As Double
    Dim GerekliParca As Long
   
    Dim Satir1 As Long, Sutun1 As Long, Satir2 As Long, Sutun2 As Long
    Dim ParcaAdet1 As Long, ParcaAdet2 As Long, EnIyiParcaAdet As Long
    Dim PlakaAlan As Double, ParcaAlan As Double
    Dim KullanilanAlan As Double, FireAlan As Double, FireYuzde As Double
    Dim PlakaSayisi As Long, ToplamFireAlan As Double, ToplamFireYuzde As Double
   
    ' Hücrelerden verileri al
    With ThisWorkbook.Sheets("Hesaplama")
        PlakaGenislik = .Range("A2").Value
        PlakaYukseklik = .Range("B2").Value
        ParcaGenislik = .Range("C2").Value
        ParcaYukseklik = .Range("D2").Value
        Kerf = .Range("E2").Value
        GerekliParca = .Range("F2").Value
    End With
   
    ' Plaka ve parça alanı
    PlakaAlan = PlakaGenislik * PlakaYukseklik
    ParcaAlan = ParcaGenislik * ParcaYukseklik
   
    ' Yerleşim 1 (orijinal yön)
    Satir1 = Int((PlakaGenislik + Kerf) / (ParcaGenislik + Kerf))
    Sutun1 = Int((PlakaYukseklik + Kerf) / (ParcaYukseklik + Kerf))
    ParcaAdet1 = Satir1 * Sutun1
   
    ' Yerleşim 2 (90° döndürülmüş)
    Satir2 = Int((PlakaGenislik + Kerf) / (ParcaYukseklik + Kerf))
    Sutun2 = Int((PlakaYukseklik + Kerf) / (ParcaGenislik + Kerf))
    ParcaAdet2 = Satir2 * Sutun2
   
    ' En iyi yerleşim
    EnIyiParcaAdet = WorksheetFunction.Max(ParcaAdet1, ParcaAdet2)
   
    ' Hesaplamalar
    KullanilanAlan = ParcaAlan * EnIyiParcaAdet
    FireAlan = PlakaAlan - KullanilanAlan
    FireYuzde = FireAlan / PlakaAlan
   
    ' Gerekli plaka sayısı
    PlakaSayisi = WorksheetFunction.Ceiling(GerekliParca / EnIyiParcaAdet, 1)
   
    ' Toplam fire hesapları
    ToplamFireAlan = PlakaSayisi * PlakaAlan - GerekliParca * ParcaAlan
    ToplamFireYuzde = ToplamFireAlan / (PlakaSayisi * PlakaAlan)
   
    ' Sonuçları yazdır
    With ThisWorkbook.Sheets("Hesaplama")
        .Range("G2").Value = PlakaAlan
        .Range("H2").Value = ParcaAlan
        .Range("I2").Value = EnIyiParcaAdet
        .Range("J2").Value = KullanilanAlan
        .Range("K2").Value = FireAlan
        .Range("L2").Value = FireYuzde
        .Range("M2").Value = PlakaSayisi
        .Range("N2").Value = ToplamFireAlan
        .Range("O2").Value = ToplamFireYuzde
    End With
   
    MsgBox "Fire hesaplaması tamamlandı!" & vbCrLf & _
           "Plaka başına parça: " & EnIyiParcaAdet & vbCrLf & _
           "Fire oranı: " & Format(FireYuzde, "0.00%") & vbCrLf & _
           "Toplam plaka sayısı: " & PlakaSayisi & vbCrLf & _
           "Toplam fire oranı: " & Format(ToplamFireYuzde, "0.00%"), vbInformation, "Fire Hesaplama"
End Sub
 
Katılım
6 Mart 2024
Mesajlar
329
Excel Vers. ve Dili
2010 TR & 2016 TR
Alternetif çözüm

Belirtilen ölçülerdeki levhadan, girilen ölçülere göre kesilecek parçaların maksimum adetini, fire m² ve fire oranını (%) hesaplar.
Eğer bilgisayarda AutoCAD yüklüyse, kesim planını çizip DWG olarak kaydeder.

📁 Levha Parca Kesimi.xlsm



 
Son düzenleme:
Üst