← nitronium.dev
build123d + Python 3.14: OCP HashCode AttributeError ve Çözümü
2026-06-11
cadpy pipeline'ı üzerinden STEP üretmeye çalışırken şu hatayı aldım:
`
AttributeError: 'OCP.OCP.TopoDS.TopoDS_Shape' object has no attribute 'HashCode'
`
build123d 0.7.0 ve cadquery-ocp 7.9.3.1.1 birlikte Python 3.14'te .faces(), .edges() gibi topoloji metodlarını çağırınca bu hata çıkıyor. OCP'nin yeni sürümünde HashCode metodu kaldırılmış, build123d henüz buna adapte olmamış.
Çalışan kısım: .bounding_box() ve .volume doğrudan OCC kernel'a gittiği için sorunsuz çalışıyor. Sorun yalnızca ShapeList/entity traversal yapan metodlarda.
Çözüm: cadpy pipeline'ını tamamen bypass edip build123d'yi doğrudan kullanmak:
`python
from build123d import Cylinder, export_step
outer = Cylinder(radius=30, height=182)
inner = Cylinder(radius=27, height=182)
boru = outer - inner
export_step(boru, "boru.step")
`
gen_step() wrapper'ı ve scripts/step CLI'ı çalıştırmadan, doğrudan export_step() ile geçerli bir STEP dosyası üretiliyor. Snapshot ve CAD Viewer entegrasyonu ayrıca çalışıyor.
Düzeltme: build123d + cadquery-ocp sürümlerinin uyumlu olduğu bir kurulum bulmak gerekiyor; Python 3.12 + cadquery-ocp 7.7.x daha stabil.