Zaten dilimlenmiş bir model için G-kod dosyasından tahmini toplam yazdırma süresini hesaplayan bir uygulama yazmaya başladım.
Program çalışıyor ve oldukça doğru.
Aşağıdaki gibi çalışır:
- Tüm hareketleri tanımlamak için tüm G kodu dosyasını tarar
- Segment mesafesini mm / s cinsinden hıza bölerek her hareket için zamanı hesaplar.
Bunun G kodu olduğunu varsayalım:
G28 ; home all axes
G1 Z0.200 F5400.000
G1 X158.878 Y27.769 E6.65594 F900.000
Bu yaptığı hesaplamadır:
totalTime = 0
# G28 ; home all axes
currentX = 0 mm
currentY = 0 mm
currentZ = 0 mm
# G1 Z0.200 F5400.000
newZ = 0.2 mm
mmPerSecond = 5400 / 60 = 90 mm/s
deltaZ = newZ - currentZ = 0.2 - 0 = 0.2 mm
segmentLength = deltaZ = 0.2 mm
moveTime = segmentLength / mmPerSecond = 0.2 / 90 = 0.002 s
totalTime = totalTime + moveTime = 0 + 0.002 = 0.002 s
# G1 X158.878 Y27.769 E6.65594 F900.000
newX = 158.878 mm
newY = 27.769 mm
mmPerSecond = 900 / 60 = 15 mm/s
deltaX = newX - currentX = 158.878 - 0 = 158.878 mm
deltaY = newY - currentY = 27.769 - 0 = 27.769 mm
segmentLength = square_root(deltaX² + deltaY²) = 161.287 mm
moveTime = deltaZ / mmPerSecond = 161.287 / 15 = 10.755 s
totalTime = totalTime + moveTime = 0.002 + 10.755 = 10.757 s
Bu örnekte, baskı yaklaşık 10.7 saniye sürecektir.
Daha genel olarak, kullanılan formül, her hareket için:
moveTime = segmentLength / mmPerSecond
Tüm taşıma sürelerini toplayarak, toplam tahmini baskı süresine sahibiz.
Bazı forumların 3D baskı süresinin 3D yazıcıdaki bazı ayarlara bağlı olduğunu, özellikle Hızlanma X, Hızlanma Y, Hızlanma Z, Sarsıntı ve Z-Sarsıntı olduğunu belirttiğini gördüm.
Bu değerleri yazdırma süresini daha doğru hesaplamak için kullanmayı mümkün kılmak istiyorum; Ancak, bu değerlerin hareket süresini nasıl etkilediğini anlamıyorum:
- Hızlanma ve Sarsıntı nasıl düşünülmeli; ve yazdırma süresini nasıl hızlandırır veya yavaşlatır?
- Yazdırma süresi hesaplamasına Hızlanma ve Sarsıntı eklemek için formülümü nasıl düzenlemeliyim?