Tôi bắt đầu viết một ứng dụng tính toán tổng thời gian in ước tính từ tệp mã G cho một mô hình đã được cắt.
Chương trình hoạt động và nó khá chính xác.
Nó hoạt động như sau:
- Nó quét toàn bộ tệp mã G để xác định tất cả các chuyển động
- Nó tính toán thời gian cho mỗi lần di chuyển bằng cách chia khoảng cách phân đoạn cho tốc độ tính bằng mm / s.
Giả sử đây là mã G:
G28 ; home all axes
G1 Z0.200 F5400.000
G1 X158.878 Y27.769 E6.65594 F900.000
Đây là phép tính mà nó thực hiện:
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
Trong ví dụ này, bản in sẽ mất khoảng 10,7 giây.
Tổng quát hơn, công thức được sử dụng là, cho mỗi chuyển động:
moveTime = segmentLength / mmPerSecond
Bằng cách tổng hợp tất cả thời gian di chuyển, chúng tôi có tổng thời gian in ước tính.
Tôi đã thấy rằng một số diễn đàn nói rằng thời gian in 3D cũng phụ thuộc vào một số cài đặt trên máy in 3D, đặc biệt là Gia tốc X, Gia tốc Y, Gia tốc Z, Jerk và Z-Jerk.
Tôi muốn sử dụng các giá trị đó để tính thời gian in chính xác hơn; tuy nhiên, tôi không hiểu làm thế nào những giá trị đó ảnh hưởng đến thời gian di chuyển:
- Làm thế nào nên tăng tốc và Jerk; và, làm thế nào để họ tăng tốc hoặc làm chậm thời gian in?
- Tôi nên chỉnh sửa công thức của mình như thế nào để đưa Gia tốc và Jerk vào tính toán thời gian in?