Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

🏗️ cad3d - 3D CAD ve Modelleme

3D katı modelleme, CSG operasyonları ve teknik çizim

📦 118 Fonksiyon 📝 1599 Satır 💾 52.8 KB

📋 Genel Bakış

cad3d modülü, 3D katı modelleme, CSG (Constructive Solid Geometry) operasyonları ve parametrik tasarım için araçlar sağlar. STL, OBJ, STEP formatlarını destekler.

📦 Temel Şekiller

  • cad3d.Küp() - Küp/dikdörtgen prizma
  • cad3d.Küre() - Küre
  • cad3d.Silindir() - Silindir
  • cad3d.Koni() - Koni
  • cad3d.Torus() - Halka

🔧 CSG Operasyonları

  • cad3d.birleştir() - Union (iki şekli birleştirme)
  • cad3d.çıkar() - Difference (bir şekilden çıkarma)
  • cad3d.kesişim() - Intersection (kesişim)

🔄 Dönüşümler

  • cad3d.öteleme() - Taşıma
  • cad3d.döndürme() - Döndürme
  • cad3d.ölçekleme() - Ölçeklendirme
  • cad3d.aynalama() - Simetri

📐 İleri Düzey

  • cad3d.ekstrüzyon() - 2D'den 3D oluşturma
  • cad3d.döndürerek_oluştur() - Revolution
  • cad3d.süpürme() - Sweep
  • cad3d.loft() - Kesitler arası geçiş

💾 Dosya İşlemleri

  • cad3d.stl_dışa_aktar() - STL dosyası oluşturma
  • cad3d.obj_dışa_aktar() - OBJ dosyası
  • cad3d.step_dışa_aktar() - STEP dosyası

💡 Kullanım Örnekleri

Basit Mekanik Parça

kullan cad3d

// Ana gövde (dikdörtgen prizma)
değer gövde = cad3d.Küp(
    genişlik: 50.0,
    derinlik: 30.0,
    yükseklik: 10.0
)

// Delikler için silindirler
değer delik1 = cad3d.Silindir(
    yarıçap: 4.0,
    yükseklik: 12.0
).öteleme(-15.0, 0.0, -1.0)

değer delik2 = cad3d.Silindir(
    yarıçap: 4.0,
    yükseklik: 12.0
).öteleme(15.0, 0.0, -1.0)

// Delikleri gövdeden çıkar
değer parça = gövde
    .çıkar(delik1)
    .çıkar(delik2)

// STL dosyası olarak kaydet
cad3d.stl_dışa_aktar(parça, "mekanik_parça.stl")
yazdır("✓ Parça oluşturuldu: mekanik_parça.stl")

Parametrik Vida Tasarımı

kullan cad3d
kullan math

fonksiyon vida_oluştur(
    çap: Gerçek,
    uzunluk: Gerçek,
    adım: Gerçek,
    kafa_çapı: Gerçek
) -> cad3d.Katı {
    // Vida gövdesi
    değer gövde = cad3d.Silindir(
        yarıçap: çap / 2.0,
        yükseklik: uzunluk
    )
    
    // Vida başı (altıgen)
    değer başı = cad3d.Silindir(
        yarıçap: kafa_çapı / 2.0,
        yükseklik: çap * 0.7,
        kenar_sayısı: 6
    ).öteleme(0.0, 0.0, uzunluk)
    
    // Allen (altıgen yuva)
    değer yuva = cad3d.Silindir(
        yarıçap: kafa_çapı / 4.0,
        yükseklik: çap * 0.5,
        kenar_sayısı: 6
    ).öteleme(0.0, 0.0, uzunluk + çap * 0.3)
    
    // Parçaları birleştir ve yuvayı çıkar
    değer vida = gövde
        .birleştir(başı)
        .çıkar(yuva)
    
    dön vida
}

// M6 vida oluştur
değer m6_vida = vida_oluştur(
    çap: 6.0,
    uzunluk: 40.0,
    adım: 1.0,
    kafa_çapı: 10.0
)

cad3d.stl_dışa_aktar(m6_vida, "m6_vida.stl")
yazdır("✓ M6 vida oluşturuldu")

Kutu Tasarımı (Kapak ile)

kullan cad3d

fonksiyon kutu_tasarla(
    genişlik: Gerçek,
    derinlik: Gerçek,
    yükseklik: Gerçek,
    duvar_kalınlığı: Gerçek
) -> (cad3d.Katı, cad3d.Katı) {
    // Dış kutu
    değer dış = cad3d.Küp(genişlik, derinlik, yükseklik)
    
    // İç boşluk
    değer iç = cad3d.Küp(
        genişlik - 2.0 * duvar_kalınlığı,
        derinlik - 2.0 * duvar_kalınlığı,
        yükseklik - duvar_kalınlığı
    ).öteleme(0.0, 0.0, duvar_kalınlığı)
    
    // Alt kutu (içi oyuk)
    değer alt_kutu = dış.çıkar(iç)
    
    // Kapak
    değer kapak_yükseklik = duvar_kalınlığı * 3.0
    değer kapak_dış = cad3d.Küp(genişlik, derinlik, kapak_yükseklik)
    
    // Kapak iç kısmı (kutuya oturacak)
    değer kapak_iç = cad3d.Küp(
        genişlik - 2.0 * duvar_kalınlığı - 0.2,  // 0.2mm tolerans
        derinlik - 2.0 * duvar_kalınlığı - 0.2,
        kapak_yükseklik - duvar_kalınlığı
    ).öteleme(0.0, 0.0, duvar_kalınlığı)
    
    değer kapak = kapak_dış.çıkar(kapak_iç)
    
    // Kapağı kutunun üstüne yerleştir
    kapak = kapak.öteleme(0.0, 0.0, yükseklik)
    
    dön (alt_kutu, kapak)
}

// 100x80x50mm kutu oluştur
değer (kutu, kapak) = kutu_tasarla(
    genişlik: 100.0,
    derinlik: 80.0,
    yükseklik: 50.0,
    duvar_kalınlığı: 2.0
)

// Ayrı dosyalar olarak kaydet
cad3d.stl_dışa_aktar(kutu, "kutu_alt.stl")
cad3d.stl_dışa_aktar(kapak, "kutu_kapak.stl")

yazdır("✓ Kutu ve kapak oluşturuldu")
yazdır("  - kutu_alt.stl")
yazdır("  - kutu_kapak.stl")

🎯 İyi Uygulamalar

  • 3D yazıcı için duvar kalınlığı en az 2mm olmalı
  • Hareketli parçalar için 0.2-0.5mm tolerans bırakın
  • Karmaşık modelleri basit şekillere bölün
  • Boolean operasyonlar sonrası mesh kalitesini kontrol edin
  • STL export'ta yeterli çözünürlük kullanın
  • Parametrik tasarım için fonksiyonlar oluşturun

🔗 İlgili Modüller