すでにスライスされたモデルのGコードファイルから推定総印刷時間を計算するアプリケーションの作成を開始しました。
プログラムは機能し、かなり正確です。
次のように機能します。
- Gコードファイル全体をスキャンして、すべての動きを特定します
- セグメント距離を速度(mm / s)で割ることにより、各移動の時間を計算します。
これがGコードであるとしましょう:
G28 ; home all axes
G1 Z0.200 F5400.000
G1 X158.878 Y27.769 E6.65594 F900.000
これは、次の計算です。
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
この例では、印刷に約10.7秒かかります。
より一般的には、使用される式は各ムーブメントに対して次のとおりです。
moveTime = segmentLength / mmPerSecond
すべての移動時間を合計することにより、合計の推定印刷時間がわかります。
一部のフォーラムでは、3D印刷時間は3Dプリンターの一部の設定、特に加速X、加速Y、加速Z、ジャーク、およびZジャークにも依存すると述べています。
これらの値を使用して、印刷時間をより正確に計算できるようにしたいと思います。ただし、これらの値が移動時間にどのように影響するかわかりません。
- 加速とジャークはどのように考慮されるべきですか。そして、どのようにして印刷時間を速くしたり遅くしたりしますか?
- 印刷時間の計算に加速度とジャークを含めるには、式をどのように編集すればよいですか?