← Blog
Kod ile CAD ve CAD otomasyonu

Kod ile CAD: Fare Yerine Betikle Mekanik Parça Tanımlamak

Kod ile CAD, eskiz-tıkla akışını parçayı kuran bir betikle değiştirir. Araç haritası, STEP dosyası alıp alamayacağınızı belirleyen CSG/B-Rep ayrımı ve betiğin GUI'yi gerçekten yendiği durumlar.

Yazar:
Cadagen
Teknik inceleme:
CADAGEN Mühendislik Ekibi · Makine Mühendisi
Son güncelleme:
15 Ağustos 2026
Kaynaklar:
3 birincil kaynak, aşağıda listelendi

Kod ile CAD, bir parçayı fareyle çizmek yerine bir metin programında — parametreler, işlemler, dışa aktarım — tanımlamaktır. Betik, modelin kendisidir: çalıştırırsınız geometri çıkar, bir sayıyı değiştirip yeniden çalıştırırsınız farklı bir ölçü çıkar, Git'e commit'lersiniz her tasarım değişikliğinin gözden geçirilebilir bir geçmişi oluşur.

Üretim kodundan çıkan işlenmiş bir flanş

Yeni bir fikir değil (OpenSCAD 2010'a dayanır), ama iki sebeple belirgin şekilde daha ilgili hale geldi: modern Python kütüphaneleri artık mesh motoru yerine gerçek bir sınır gösterimi çekirdeği sürüyor ve büyük dil modelleri geometriyi doğrudan üretmekten çok daha iyi kod yazıyor.

Bir kod CAD betiği neye benzer

Kalıp araçlar arasında neredeyse aynıdır: parametreleri tanımla, primitifleri kur, birleştir, değiştirilecek geometriyi seç, dışa aktar.

from build123d import *

plaka_u, plaka_g, plaka_t = 80.0, 40.0, 10.0
delik_c, kenar = 6.0, 10.0
x, y = plaka_u / 2 - kenar, plaka_g / 2 - kenar

with BuildPart() as plaka:
    Box(plaka_u, plaka_g, plaka_t)
    with Locations((x, y), (-x, y), (x, -y), (-x, -y)):
        Hole(radius=delik_c / 2)
    fillet(plaka.edges().filter_by(Axis.Z), radius=5)

export_step(plaka.part, "plaka.step")

Bu kısa örnekte üç şey kritik:

  1. Ölçüler adlandırılmış değişkendir. plaka_u'yu değiştirmek aşağı akıştaki her şeyi yeniden üretir — iyi kurulmuş bir parametrik modelin davranışı, on iki satırda.
  2. Geometri tek tek değil, kurala göre seçilir. edges().filter_by(Axis.Z) "Z'ye paralel her kenar" demektir ve plaka ölçüsü değişince doğru kalır.
  3. Çıktı bir STEP dosyasıdır — mesh değil, kesin katı; çünkü kütüphane bir B-Rep çekirdeği sürüyor.

Araç haritası: hangisi ne üretir

Kod CAD araçları arasındaki en belirleyici fark, altındaki geometri motorudur. Üretebileceğiniz dosya formatlarını ve gerçek radüs işleminin var olup olmadığını o belirler.

Araç Dil Geometri motoru Native STEP En uygun kullanım
OpenSCAD Kendi bildirimsel DSL'i CSG → mesh Yok (STL / 3MF / OFF) 3B baskı parçaları, basılabilir parça aileleri, aparat
CadQuery Python Open CASCADE (B-Rep) Var Talaşlı imalat parçaları, STEP teslimatı
build123d Python Open CASCADE (B-Rep) Var Aynısı; daha açık topoloji ve geometri API'si
FreeCAD Python API Python Open CASCADE (B-Rep) Var Tam CAD içinde betikleme; FreeCADCmd ile başsız
JSCAD JavaScript CSG → mesh Yok Tarayıcı tabanlı konfigüratörler
replicad JavaScript / TypeScript Open CASCADE (WASM) Var STEP gereken tarayıcı içi B-Rep modelleme
Onshape FeatureScript FeatureScript Onshape çekirdeği Onshape üzerinden Özel feature'lar, kurumsal standart parça kütüphaneleri
CAD üretici API'leri Python / C# / C++ / VBA Host CAD çekirdeği Uygulama üzerinden Mevcut CAD lisansını otomatikleştirmek

CSG ve B-Rep, tek paragrafta

Yapısal katı geometri (CSG) bir şekli primitifler üzerindeki boolean işlemlerin ağacı olarak tanımlar. Uygulaması kolay ve sağlamdır, ama hesaplanan sonuç bir mesh'tir; gerçek radüs veya tolerans bağlayabileceğiniz kesin bir yüzey ya da kenar yoktur. Sınır gösterimi (B-Rep) ise gerçek analitik yüzeyleri ve kırpılmış eğrileri saklar; 6 mm'lik delik gerçek yarıçapı olan gerçek bir silindirik yüzeydir. Aşağı akıştaki her şey — STEP dışa aktarımı, CAM takım yolları, GD&T, montajda eşleşme — bu ayrıma bağlıdır.

Tek betiğin çekirdeğe göre kesin B-Rep katıya veya fasetli mesh'e ayrılması

Mühendisler işi neden koda taşıyor

Gerçekten işleyen sürüm kontrolü. Git'teki bir native CAD parça dosyası opak bir ikili bloktur; saklayabilirsiniz, gözden geçiremezsiniz. 90 satırlık bir betik ise meslektaşınızın okuyabileceği bir fark üretir: "et kalınlığı 2,5 → 3,0, dış yüzeye çekme açısı eklendi". Tasarım gözden geçirmesi kod gözden geçirmesine dönüşür.

Parça aileleri bedavaya. 40 braket varyantı üretmek bir for döngüsüdür, 40 farklı kaydet-as değil. Betikli CAD'in en hızlı geri döndüğü yer burasıdır.

Test edilebilir geometri. Betik başsız çalıştığı için sonucu CI'da doğrulayabilirsiniz: hacim beklenen aralıkta mı, sınırlayıcı kutu zarfa uyuyor mu, katı su geçirmez mi, gövde sayısı doğru mu.

def test_plaka_zarfi():
    parca = plaka_uret(uzunluk=80, genislik=40)
    bbox = parca.bounding_box()
    assert abs(bbox.size.X - 80) < 1e-6
    assert parca.volume > 0

Her şeyle entegrasyon. Bir betik müşteri ölçülerini içeren bir tabloyu okuyabilir, tedarikçi rulman deliğini bir veritabanından çekebilir, et kalınlığını bir gerilme hesabından türetebilir ve STEP'i tek bir süreçte üretebilir.

Tekrarlanabilirlik. Aynı betik, aynı kütüphane sürümü, aynı girdiler aynı geometriyi üretir. Denetime tabi işlerde bu, kolaylıktan daha önemlidir.

Neden varsayılan değil

  • Görsel keşif yok. Bir şekli sürükleyerek hissedemezsiniz. Her fikir görülmeden önce ifade edilmelidir; konsept çalışması için yavaştır.
  • Montajlar zayıftır. Mate'ler, girişim kontrolü ve kinematik GUI CAD'de birinci sınıf, kod CAD'de çoğunlukla manuel dönüşümlerdir.
  • Teknik resim bir boşluktur. Betikten GD&T'li ölçülendirilmiş bir 2B resim üretmek mümkün ama GUI'nin dakikalar içinde yaptığının çok gerisindedir. Bkz. GD&T temelleri.
  • Serbest form yüzey modelleme sınırlıdır. Class-A yüzeyler ve eğrilik sürekli geçişler GUI alanıdır.
  • Hata ayıklama farklıdır. Başarısız bir boolean kırmızı bir yüzey değil, bir yığın izi verir.

Pratik ölçüt: parça bir kez var olacaksa çizin; kırk varyantta var olacaksa veya başka bir program tarafından yeniden üretilecekse betikleyin.

Kod ile CAD ve yapay zeka ile üretilen modeller

Kod CAD, yapay zeka destekli CAD için yapısal bir sebeple orantısız derecede önemli hale geldi: dil modelleri ezici çoğunlukla metin ve kod üzerinde eğitilir ve geçerli B-Rep topolojisi üretmekten çok daha güvenilir şekilde sözdizimsel olarak geçerli program üretir. Bu yüzden çoğu text-to-CAD sisteminin pratik mimarisi dil → üretim betiği → çekirdek → CAD dosyası şeklindedir, dil → geometri değil.

Bunun üç faydalı sonucu var: ara ürün incelenebilir, hatalar teslimden önce yakalanabilir ve parametreler hayatta kalır. Ayrıntı: doğal dil ile CAD.

Başlarken sık yapılan hatalar

  • Türetilmiş değerleri sabit yazmak. Cıvata dairesi flans_capi - 2 * kenar ise, 62.5 değil o ifadeyi yazın.
  • Geometriyi indeksle seçmek. edges()[3] geometri değişir değişmez kırılır.
  • Sonda tek radüsle her şeyi radüslemek. Çekirdek radüs hataları genellikle o kenarda fiziksel olarak sığmayan bir yarıçap istemekten kaynaklanır.
  • Birimleri göz ardı etmek. Çoğu kütüphane sayıları birimsiz sayar ve teamül gereği milimetre kabul eder; STL hiç birim taşımaz.
  • Builder'ı dışa aktarmak. Birçok kütüphanede builder nesnesi katı değildir; dışa aktarım kafa karıştırıcı bir hatayla başarısız olur. Sonuç parçayı dışa aktarın.
  • Doğrulamayı atlamak. Başarıyla çalışan bir betik sıfır hacimli veya kopuk gövdeli bir şekil üretebilir. Hacmi, sınırlayıcı kutuyu ve gövde sayısını doğrulayın.

Sonuç

Kod ile CAD, parametrelerin ve ilişkilerin hem bilgisayarın hem meslektaşınızın okuyabileceği bir dilde yazıldığı parametrik modellemedir. Teslimat bir STEP dosyasıysa B-Rep destekli bir araç, basılabilir bir mesh ise CSG aracı seçin. Tekrarın, üretimin, testin veya entegrasyonun asıl mesele olduğu yerde kullanın — keşif, yüzey modelleme, montaj ve teknik resim için GUI'yi elinizde tutun.

Sık sorulan sorular

Kod ile CAD nedir?
Kod ile CAD (programatik veya betik tabanlı CAD), bir 3B modeli grafik arayüzde eskiz çizerek değil, bir metin programı yazarak tanımlamaktır. Betik parametreleri tanımlar, ekstrüzyon, radüs, boolean çıkarma gibi işlemlerle geometriyi kurar ve bir CAD dosyası dışa aktarır. Model kaynak kod olduğu için sürüm kontrolüne alınabilir, fark alınabilir, test edilebilir ve otomatik üretilebilir.
Kod ile CAD gerçek CAD dosyası mı üretir, yoksa sadece mesh mi?
Altındaki çekirdeğe bağlıdır. Open CASCADE gibi sınır gösterimi çekirdeği kullanan araçlar — CadQuery, build123d, FreeCAD'in Python API'si — kesin B-Rep katıları üretir ve STEP dışa aktarabilir. OpenSCAD gibi yapısal katı geometri (CSG) araçları mesh'e doğru çalışır; STL, 3MF veya OFF verir, native STEP çıkışı yoktur. Atölyenin doğrudan kullanabileceği bir dosya gerekiyorsa ilk kontrol edilmesi gereken şey budur.
Kod ile CAD geleneksel CAD'den daha mı iyi?
Hiçbiri evrensel olarak daha iyi değil. Kod ile CAD parça aileleri, tekrarlanabilir üretim, sürüm kontrolü, otomatik test ve diğer yazılımlarla entegrasyonda kazanır. Geleneksel GUI CAD ise serbest keşif, karmaşık yüzey modelleme, montaj mate'leri, teknik resim üretimi ve ölçüyü sürüklerken sonucu görmenin önemli olduğu her işte kazanır. Çoğu ekip ikisini birlikte kullanır.
Kod ile CAD için programcı olmak gerekir mi?
OpenSCAD için hayır — dili küçük ve amaca özeldir, birçok makine mühendisi bir öğleden sonrada öğrenir. CadQuery ve build123d gibi Python kütüphaneleri için temel Python gerekir: değişkenler, döngüler, fonksiyonlar, import. Yazılım mühendisliği derinliği gerekmez; hata mesajı okuyup API referansına bakabilmek yeterlidir.

Kaynaklar

  1. build123d - Introductory examples (Hole, fillet, GridLocations selectors) — build123d docs
  2. CadQuery - QuickStart (Workplane, forConstruction, hole) — CadQuery docs
  3. OpenSCAD User Manual - Export formats (STL, OFF, AMF, 3MF, DXF, SVG, PDF) — OpenSCAD manual