6 puan yazan GN⁺ 2025-12-22 | 2 yorum | WhatsApp'ta paylaş
  • OpenSCAD kullanarak basit bir pil tutucu tasarlanırken kod tabanlı CAD'in temel kavramlarını inceleyen bir örnek
  • Daha önce Autodesk Fusion ile AA·AAA piller için parametrik bir kutu yapılmıştı; bu model OpenSCAD ile yeniden uygulanarak öğrenme süreci ilerletildi
  • Kodda numRows, numColumns, batteryType gibi değişkenler değiştirilerek özelleştirilmiş tutucular üretilebiliyor ve pahalı CAD yazılımları olmadan da aynı sonuç elde edilebiliyor
  • difference() ve translate() kullanılarak kutu ve deliklerin tekrar tekrar oluşturulup çıkarıldığı bir yapı var; basit ama verimli bir tasarım yaklaşımı
  • Karmaşık modellerde sınırlamaları olsa da, spacer, bearing drift gibi basit geometrik yapıları üretmek için kullanışlı bir araç olarak değerlendiriliyor

OpenSCAD ile pil tutucu tasarımı

  • AA ve AAA piller için temel kutu tipi bir düzenleyici, Autodesk Fusion'da tasarlandıktan sonra OpenSCAD ile yeniden oluşturuldu
    • Mevcut Fusion modeli, değişkenleri ayarlayarak pil boyutu ile satır ve sütun sayısını değiştirebilen parametrik bir yapıya sahip
    • Tamamlanan model Printables'a yüklendi
  • OpenSCAD, kod yazarak 3D nesneler oluşturan bir CAD aracı ve basit yapılı modelleri öğrenmek için uygun
    • Yazar, OpenSCAD eğitimlerinin bir bölümünü referans alarak yaklaşık bir saat pratik yaptı
    • Ortaya çıkan çalışma battery_holder_generator.scad dosyası olarak paylaşıldı

Kod yapısı ve çalışma biçimi

  • Başlıca değişkenler olarak AA, AAA, heightCompartment, thicknessWall, numRows, numColumns, batteryType vb. tanımlanıyor
    • widthBox, lengthBox, depthBox bu değişkenlerin kombinasyonlarından hesaplanıyor
  • difference() fonksiyonu ile önce temel kutu (cube) oluşturuluyor, ardından içeride pil yuvaları tekrar tekrar çıkarılıyor
    • for döngüsü ve translate() ile deliklerin konumu hesaplanıyor, cube() ile her delik oluşturuluyor
    • let() kullanılarak startColumn ve startRow değerlerinin döngü içinde tanımlanması gereken kısmın kafa karıştırıcı olduğu belirtiliyor

OpenSCAD ve Fusion karşılaştırması

  • Aynı model, Fusion ve OpenSCAD'de ayrı ayrı oluşturulduktan sonra slicer içinde karşılaştırıldı
    • Sonuçta çıktıların neredeyse aynı olduğu görüldü; OpenSCAD, hafif kod tabanlı yaklaşımıyla hızlı değişikliklere izin veriyor
    • Pahalı CAD yazılımları olmadan da aynı seviyede sonuçlar elde edilebiliyor

Kullanım alanları ve sınırlar

  • Karmaşık tasarımlar için uygun olmasa da, spacer, bearing drift gibi basit geometrik yapılar üretmekte çok kullanışlı
    • Günlük hayatta sık gereken basit parçaların üretimini otomatikleştirmede güçlü bir tarafı var
  • OpenSCAD'in kod merkezli tasarım yaklaşımı, tekrarlı ve düzenli yapılar üretmede verimli

Sonuç

  • OpenSCAD, basit 3D modelleri hızlıca oluşturabilen kod tabanlı bir CAD aracı olarak değerlendiriliyor
    • Yazar bunu, “sadece bir kutu çizip delikler açmak ama oldukça hoş” diye ifade ediyor
    • Gelecekte basit tasarım işlerinde Fusion'dan daha pratik olabilir

2 yorum

 
ahwjdekf 2025-12-22

Ben freecad'i şiddetle tavsiye ediyorum

 
GN⁺ 2025-12-22
Hacker News yorumları
  • OpenSCAD, programcı zihniyetine tam uyan bir CAD aracı
    Her şeyi parametrik hale getirebildiğiniz için, bir kez yaptığınız proje muhafazasını sadece birkaç değişkeni değiştirerek farklı sürümlerde üretebiliyorsunuz
    En güncel nightly build’de Manifold backend’i etkinleştirince render süresi dakikalardan saniyelere düşüyor
    Resmi 2021 sürümü artık fazla eski olduğu için kullanması zor
    BOSL2 kütüphanesi fillet, rounding, attachment gibi özellikler ekleyerek OpenSCAD’i oyuncak seviyesinden pratik bir tasarım aracına dönüştürüyor
    Git dostu olması da çok iyi; Fusion 360’ın ikili dosyalarına kıyasla .scad dosyalarındaki değişiklikleri karşılaştırmak çok daha kolay

  • OpenSCAD’in sınırlarını hissedince Python ile SDF (signed distance function) tabanlı 3D mesh üretim kütüphanesi sdf’yi kendim yazdım
    Python’ın esnek mantığını kullanarak modeller kurulabiliyor ve mevcut 3D mesh’ler içe aktarılıp erozyon, genişletme, kesme, oyma gibi işlemler yapılabiliyor
    Bu projede hâlâ yapılacak çok iş var ama bu alana büyük ilgi duyduğumu düşünüyorum

    • Bunun Build123d ya da CadQuery gibi diğer Python tabanlı modelleme araçlarından farkının ne olduğunu merak ediyorum
      STL, bir bitmap gibi üçgen koordinatlarını saklarken STEP, bir vektör çizimi gibi modeli oluşturan komutları saklıyor
      GUI tabanlı CAD araçlarının çoğu STEP tabanlı olduğu için uyumlulukları iyi
      Eğer SDF yalnızca STL üretiyorsa, GUI CAD ile uyumluluk açısından Build123d veya CadQuery öğrenmek daha iyi olmaz mı diye düşünüyorum
      Build123d, Fusion360 ya da FreeCAD’de olduğu gibi önce 2D sketch çizip sonra 3D’ye dönüştürme yaklaşımını benimsediği için GUI ile kod tabanlı CAD arasında gidip gelmek kolay
    • Bu kütüphanenin konik değişken adımlı helis sorununu çözebileceğini umuyorum
    • PythonSCAD de libfive üzerinden SDF desteği sunuyor — örnek sayfasında ortalara doğru “sdf” diye aratabilirsiniz
    • Özellikle metaball (blobby) tarzı blending’i kolayca yapabilmesi çok etkileyici
    • Mevcut STL dosyalarını içe aktarıp delik açabilmesi ya da başka nesneler birleştirebilmesi ilginç
      Meshlab gibi araçlarda hata mesajları çok anlaşılmaz olduğu için başarısız olmuştum; bu yaklaşımla çalışmak çok daha sezgisel görünüyor
  • OpenSCAD’i yakın zamanda kullanmaya başladım; çoğu CAD sayısız özellik öğrenmenizi isterken OpenSCAD tek sayfalık bir A4 cheat sheet ile anlatılabiliyor
    2021 sürümü yerine git master kullanırsanız çok daha hızlı ve güncel özelliklere sahip oluyor
    BOSL2 kütüphanesi sayesinde geleneksel CAD’in karmaşık özelliklerini kendiniz uygulamak zorunda kalmıyorsunuz ve iç yapısını görebildiğiniz için öğrenmesi de keyifli

    • Ben de OpenSCAD sayesinde 3D baskı tasarımında ihtiyaç duyduğum hassasiyeti elde ettim
      GUI CAD’de 0.25 mm’lik bir değişiklik için tüm delikleri ve cutout’ları yeniden ayarlamak gerektiğinden çok zorlanıyordum; kod tabanlı yaklaşım bu sorunu ortadan kaldırıyor
      BOSL2’nin varsayılan center origin yaklaşımı sayesinde dönüşümler çok daha kolaylaşıyor
    • git master sürümü, eski sürümlere göre render’da onlarca kat daha hızlı
    • Cheat sheet bağlantısı isteniyor
    • Ama keskin kenarları kaldırma gibi işler hâlâ zor; bu da bir sınır olarak kalıyor
    • BOSL2 gerçekten güçlü ve kullanışlı bir kütüphane
  • OpenSCAD’de nesne kavramı olmadığı için box1.width gibi erişimlerin mümkün olmaması üzücü
    Build123d denedim ama çok hatalı ve belgeleri de yetersizdi. Umarım zamanla düzelir

  • OpenSCAD’in güçlü yanı; küre, silindir ve küpü matematiksel olarak birleştirerek modellemeyi kolaylaştırması
    Zayıf yanı ise modellemenin sınırlarının da bu matematiksel birleştirme yaklaşımıyla belirlenmesi
    Python desteği sunan PythonSCAD fork’unun yakında ana sürüme entegre edilmesi planlanıyor

    • OpenSCAD mutlak koordinat tabanlı olduğu için göreli yerleşim ya da katılar arasındaki ilişkileri ifade etmek zor
      Cıvata gibi bir modeli yapmak için her parçayı ayrı üretip üst üste bindirmek gerekiyor
      Gerçek parçalarla hizalamak için çok fazla manuel hesap yapmak gerekiyor ve sabit kodlanmış ölçüleri değiştirmek de zor
      En güncel beta sürümündeki renderer çok daha hızlı, mutlaka denenmeli
    • OpenSCAD’de hull ve Minkowski sum da var; öğrenildiğinde çok güçlü araçlara dönüşüyorlar
    • Tarayıcıda çalışan JavaScript sürümü OpenJSCAD de mevcut
      GitHub deposuna bakabilirsiniz
    • Java tabanlı Bowler Studio da öneriliyor. Clojure desteği ve fizik simülasyonu özellikleri yerleşik olarak geliyor
    • Nokta koordinatlarını elle tanımlayarak karmaşık şekiller de oluşturabilirsiniz ama sıralaması öyle hassas ki adeta MENSA testi gibi hissettiriyor
  • Hafif bir 3D modelleyici olarak OpenSCAD’in sadeliğini seviyorum
    Devasa bir GUI CAD yerine, grafik programlama yapar gibi temel şekiller ve dönüşümlerle model oluşturabiliyorsunuz
    Kodu uzun süre sonra yeniden açsanız bile birkaç satıra bakınca hemen anlayabiliyorsunuz

    • Eskiden OpenSCAD’i çok kullandım ama pratikte geleneksel CAD’in çoğu zaman daha sezgisel olduğunu düşünüyorum
      Matematiksel hesap gerektiren kısıtlarda GUI CAD’in sketch araçları çok daha basit
      CAD’de adım adım geri gidip yapıyı görebiliyorsunuz; script çözümlemeye gerek kalmıyor
  • OpenSCAD, kendi editörü yerine harici editör kullanmanıza izin veriyor
    Harici editörde kaydedince önizleme otomatik olarak yenileniyor
    Harici editör ayar kılavuzu

  • Bir zamanlar OpenSCAD’e giriş için “10 temel kavram” adlı bir eğitim yazmıştım
    Eğitim bağlantısı

  • İpucu: $fn değişkeniyle çözünürlük ayarı yapılabilir
    $fn = $preview ? 32 : 64;

    • Ancak FEM analizi için dışa aktarım yaparken $fn değerini çok yükseltmek mesh performansını düşürebilir
      Görsel pürüzsüzlükten çok analiz doğruluğu önemli olduğu için 32–64 civarı uygun olur
  • Gerçekten kullanışlı modeller üretmek emek istiyor ama eksiksiz bir parametrik modeli 2 KB’lık bir metin dosyasıyla ifade edebilmek inanılmaz çekici
    Git diff anlamlı şekilde çalışıyor ve customizer paneliyle modeli bir uygulama gibi ayarlayabiliyorsunuz
    FreeCAD’in dev XML dosyalarına göre çok daha verimli

    • Ben en çok tekil parça değişiklikleri ya da varyasyonlar yapıyorum; Python kullanınca bu tür tekrar eden işler çok daha kolaylaşıyor
    • Modelleri matematiksel olarak tanımlamak bana daha doğal geliyor
      Ama chamfer veya rounding gibi özelliklerin yerleşik gelmemesi ve bunların cone ya da sphere ile yapılan Minkowski işlemleriyle oluşturulması can sıkıcı olabiliyor