Katmanlı Baskıda Renk Değişimi: Filament Swap Kodlaması
Çok renkli 3D baskı yapmak için filament değiştirme işlemini elle yapmak yerine kodla otomatize edebilirsin. Baskı sırasında belirli katmanlarda renk geçişi yapan G-code komutları (yazıcıya talimat veren dil) yazarak bu işi kolaylaştırabilirsin.
Slicing yazılımı (baskı dosyasını hazırlayan program) tarafından üretilen G-code dosyasını değiştirerek istediğin katmanda filament değişim komutu ekleyebilirsin. Çoğu yazıcıda bu işi M600 komutu sağlar; yazıcı bu komuta gelince durup operatörün filament değiştirmesini bekler.
Aşağıdaki Python scripti, STL dosyasını analiz ederek belirli yüksekliklerde filament swap komutunu otomatik olarak G-code'a ekler:
1import re23def add_filament_swaps(gcode_file, swap_heights):4"""5G-code dosyasına belirtilen yüksekliklerde M600 (filament swap) komutu ekler.6swap_heights: liste, örn. [5.0, 10.0, 15.0] milimetre cinsinden7"""8with open(gcode_file, 'r') as f:9lines = f.readlines()1011output_lines = []12current_z = 013swap_index = 01415for line in lines:16# Z koordinatını yakala17z_match = re.search(r'Z([\d.]+)', line)18if z_match:19current_z = float(z_match.group(1))2021# Eğer mevcut Z, sonraki swap yüksekliğine ulaştıysa22if swap_index < len(swap_heights) and current_z >= swap_heights[swap_index]:23output_lines.append(f"; Filament swap at Z={swap_heights[swap_index]}\n")24output_lines.append("M600\n") # Filament değiştir25swap_index += 12627output_lines.append(line)2829with open(gcode_file.replace('.gcode', '_swapped.gcode'), 'w') as f:30f.writelines(output_lines)3132print(f"Yeni dosya kaydedildi: {gcode_file.replace('.gcode', '_swapped.gcode')}")3334# Kullanım35add_filament_swaps('model.gcode', [5.0, 10.0, 15.0])Bu script orijinal G-code dosyasını okur, 5mm, 10mm ve 15mm yüksekliklerine ulaşıldığında M600 komutu ekler ve yeni bir dosya oluşturur. Yazıcı bu satıra gelince ekstrüder (filament çıkışı) boşalır ve renk değiştirmeni bekler.
Praktik ipucu: Swap yüksekliklerini hesaplarken katman kalınlığını dikkate al. Eğer her katman 0.2mm ise ve 5mm'de renk değiştirmek istersen, bunu katman numarasına çevir (5 ÷ 0.2 = 25. katman). Slicing yazılımının (Cura, PrusaSlicer gibi) yerleşik renk değişim özelliğini de kullanabilirsin, ama script ile daha çok kontrol sağlarsın.
Dikkat: Filament swap sırasında yazıcı sıcaklığı sabit kalır. Farklı filament türleri (PLA, ABS) kullanıyorsan sıcaklık uyuşmazlığı sorun yaratabilir; bu durumda script içine sıcaklık değişim komutları (M104, M109) da ekleyebilirsin.
0 yorum