STL Dosyasını Python ile Parametrik Olarak Değiştirme

STL dosyaları 3D baskı ve modelleme işlerinde yaygın kullanılır. Bir modeli ölçeklemek, döndürmek ya da belirli bölgelerini değiştirmek gerektiğinde her seferinde tasarım yazılımını açmak yerine Python ile hızlıca işi halledebilirsin.

Bunun için numpy-stl kütüphanesi ideal. STL dosyasını okur, üçgen ağını (mesh) NumPy dizileri olarak sunar ve değiştirdikten sonra yeni dosya olarak kaydedersin.

Önce kütüphaneyi kur:

1pip install numpy-stl

Şimdi STL dosyasını yükleyip, tüm köşeleri (vertices) 2 katına ölçekleyen bir örnek:

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası
1from stl import mesh
2import numpy as np
3
4# STL dosyasını oku
5model = mesh.Mesh.from_file('model.stl')
6
7# Tüm köşeleri 2 katına ölçekle
8model.vertices *= 2
9
10# Yeni dosya olarak kaydet
11model.save('model_scaled.stl')
12
13print("Dosya kaydedildi: model_scaled.stl")

Beklenen çıktı: model_scaled.stl dosyası, orijinal modelin iki katı büyüklükte oluşturulur.

Daha karmaşık bir örnek: Z ekseninde 45 derece döndür ve belirli bir eksende hareket ettir:

1from stl import mesh
2import numpy as np
3
4model = mesh.Mesh.from_file('model.stl')
5
6angle = np.radians(45)
7rotation_matrix = np.array([
8[np.cos(angle), -np.sin(angle), 0],
9[np.sin(angle), np.cos(angle), 0],
10[0, 0, 1]
11])
12
13model.vertices = np.dot(model.vertices, rotation_matrix.T)
14
15model.vertices += [10, 0, 0]
16
17model.save('model_transformed.stl')
18print("Dönüştürülmüş model kaydedildi.")

Sık yapılan hata: Döndürme işleminden sonra normal vektörleri (yüzeylerin yönünü belirten değerler) güncellemeyi unutmak. STL dosyası hem köşeleri hem de normalleri içerir. numpy-stl kütüphanesi model.update_normals() metoduyla bunu otomatik yapar, ama bazı işlemlerden sonra elle çağırman gerekebilir. Özellikle 3D yazıcıya göndermeden önce kontrol et.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz