Zaten dilimlenmiş bir dosyanın tahmini yazdırma süresini hesaplama


10

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:

  1. Tüm hareketleri tanımlamak için tüm G kodu dosyasını tarar
  2. 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:

  1. 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?
  2. Yazdırma süresi hesaplamasına Hızlanma ve Sarsıntı eklemek için formülümü nasıl düzenlemeliyim?

Ne kadar hassas olmalısın? Evet, hızlanmaları takabilir ve motorların yavaşlamadan önce asla tam hıza ulaşmadığı kısa çalışmaları telafi edebilirsiniz, ancak net sonuç sadece% 2 oranında kapalıysa, umursar mısınız? Kare bir piramit gibi basit bir şey yazdırmayı deneyin ve tahmininizi gerçekle karşılaştırın.
Carl Witthoft

Mümkün olduğunca kesin olmak istiyorum ... Şu anda 9 saatlik bir baskıda, tahmin ve gerçeklik arasındaki fark 10-15 dakika, bu çok fazla. Ben hızlanma ve pislik ederken baskı nasıl ele alındığını bulmak için marlin kaynak koduna bakacağız
Backslash

Belki slic3r'i kontrol edebilir ve bu parametreleri nasıl hesapladığını görebilirsiniz. Dilimleme sırasında zaman tahmini aldığını hatırlıyorum.
FarO

@FarO Slic3r kullanıyorum ve hiç bir zaman tahmini görmedim. Belki doğru yere bakmıyorum ama web üzerinde bu özelliği isteyen çok sayıda kullanıcı var, bu yüzden korkarım Slic3r'de baskı süresini bilmenin bir yolu yoktur.
BackSlash

@BackSlash Genellikle çıktı günlüğünde dilimlemenin sonunda Repetier'da görüyorum. Sanırım Repetier'ın kendisinden!
FarO

Yanıtlar:


5

Hızlanma ayarının makine hareketini nasıl etkilediğini görmek için yazıcı ürün yazılımına bakmayı denedim . Anlatabildiğim kadarıyla, Hızlandırma , baktığım firmware'e bağlı olarak farklı bir şekilde uygulanmış gibi görünüyordu ve ayrıca yazıcıda kullanılan ayarların ne olduğundan etkilendi. Daha fazla bakmadım çünkü her farklı yazılım için farklı kurallar yazmak çok fazla sorun gibiydi. Belki de bu konuda daha fazla bilgi sahibi olan biri çoğu yazılımın aynı hesaplamaları kullanıp kullanmadığını bilir.

Hızlanma ayarının baskının süresinde çok fazla bir fark yaratmayacağından şüpheleniyorum. Yavaş hızlarda baskı yaptığım küçük baskılarda bir fark yaratmış gibi görünmüyorlar. Nozulun hızlanma ve yavaşlama zamanının olduğu uzun yollara sahip daha yüksek hızlarda daha büyük baskılar yazdırıyorsanız, zamanla daha büyük bir fark fark edeceğinizden şüpheleniyorum.

Tahmini süre ile gerçek zaman arasındaki en büyük hatanın, makinenin talimatları işlemek için harcadığı zaman olduğunu gördüm. Yazıcıya gönderilmesi gereken çok kısa hareketleri olan ve yazıcı tarafından işlenmesi ve hesaplanması gereken bir model yazdırırken, yazıcının bir saniye boyunca duracağını fark ettim. Yazıcıların hareketlerinde bir fark görmek için yeterince uzun değil, ancak duymak için yeterince dikkat çekici. Daha ucuz yazıcılarda bunun hızlanmadan daha büyük bir hataya yol açacağından şüpheleniyorum.

Birisi hızlandırma ayarlarının yazıcı tarafından nasıl hesaplandığını ve hızlandırma ayarlarını yazıcıdan çıkarmak için hangi G-kodu komutunun kullanılabileceğini öğrenebilirse, bu konuda daha fazla bilgi edinmek gerçekten ilgimi çeker.


Cevabınız için teşekkür ederim, aramaya devam edeceğim. Beni doğru yöne yönlendirdiğiniz için teşekkürler: Marlin kaynak kodunu okuyabilir ve hızlanma ve pislik kontrol parçalarını arayabilirim, kesinlikle yardımcı olacaktır, bunu düşünmedim! Teşekkür ederim!
BackSlash

3
"Hızlanma ayarının baskının süresinde çok fazla bir fark yaratmayacağından şüpheleniyorum." <- bu daha yanlış olamazdı. Baskı hızı ve detay boyutu arasındaki oran yüksek olduğunda (yani hızlı hız ayarı veya küçük detaylar veya her ikisi) baskı hızındaki hızlanma baskındır. Öyle ki [maks] hız ayarını 2 kat artırmanın baskı süresinde% 5'lik bir azalma yapması pek olası değildir.
R .. GitHub BUZA YARDIMCI DURDUR

5

Her şeyden önce, çevrimiçi olarak kullanabileceğiniz veya kaynağı https://www.gcodeanalyser.com/ ve http://gcode.ws/ adresinde okuyabileceğiniz hoş bir açık kaynak analizörü vardır . Tahminleri gerçek yazıcı ürün yazılımı ile tam olarak eşleşmez, ancak oldukça yakın bir iş yaparlar ve bunları okumak bilgilendirici olur.

Temel olarak, hızlanma ve sarsıntı arkasındaki hikaye, baskı kafasının hızını (hızını veya yönünü) değiştirememenizdir. Hızlanmak ve yavaşlamak zaman alır. Hızlanma, yazdırma kafasının hızının değişebileceği maksimum hızdır. Sarsıntı bir yanlış adlandırma / hackleme olayıdır ve iki segment / eğrinin birleşim noktasında izin verilen maksimum sahte-anlık değişikliktir. Sarsıntı noktası, her bir küçük köşede hızlanarak / yavaşlayarak birçok segmentten oluşan bir eğri boyunca hareket ederken dalgalı hareketlerden kaçınmaktır. Hem hızlanma hem de sarsıntı için iki ayar grubu olduğuna dikkat edin:

  • baskı hareketleri, seyahat hareketleri, duvarlar ve dolgular vb. için farklı hızlanma profilleri kullanmak amacıyla gcode'un bir parçası olarak sık sık değişen maksimum mutlak değer (3B vektör uzunluğu).

  • makinenin sınırlamaları için genellikle yazıcının ayarlarında veya yazıcınızın başlangıç ​​gcode profilinde ayarlanan ve hiçbir zaman değiştirilmeyen eksen başına mutlak değerler (standart 1D mutlak değer).

Hareket, her iki ayar kümesine her zaman saygı gösterecek şekilde sınırlandırılmıştır.

Yazıcı ürün yazılımı , motorların gerçekte nasıl çalıştırılacağına karar vermek için yaklaşan hareket komutlarında ilerleme ile birlikte hızlanma ve sarsıntı ayarlarını kullanır . Bir hareketi başlattığında, ivme kısıtlamaları içinde yapılandırılan maksimum hıza kadar hızlanması gerekir. Ayrıca, bir sonraki hareketin aynı yönde devam edeceğini bilmediği sürece, yarı yolda yavaşlamaya başlamalıdır; yavaşlamanın ne kadar olması, hareket vektörlerindeki farka bağlıdır. Bir sonraki hareket yaklaşık olarak aynı yönde olacaksa, köşede "anlık" bir hız değişikliği yapmak için sarsıntı payını kullanarak yavaşlamayı önleyebilir. Sadece uzun (hıza göre) doğrusal veya yaklaşık olarak doğrusal hareketleriniz varsa, istenen hıza ulaşırsınız.

Bu nedenle, baskı süresini tahmin etmek için bunu modellemeniz gerekir . Gcode'u işlerken / simüle ederken yazdırma kafası hızını takip edin ve her hareket komutu için, hızlanma sınırlarını (izin verdikleri maksimum hızda hızlanma) kullanarak hızı zamanın bir fonksiyonu olarak hesaplayın. Ayrıca, bir sonraki hareket komutunu başlatabilmek için hareketi sona erdirmek istediğiniz son hızı ve buna ulaşmak için gerekirse yavaşlamaya başlayacak bir noktayı bulmanız gerekir.


Sarsıntı hızlanmanın türevidir.
Trish

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.