Marlin Menyesuaikan laju gerak makan

9

Saya menggunakan firmware Marlin (1.1.0-RC7 - 31 Juli 2016) untuk printer 3d. Saat ini pencetakan tidak sempurna karena sedikit ketidakakuratan dalam gerakan sepanjang sumbu x dan y. Saya mencoba mengubah laju gerak makan untuk kecepatan di sepanjang sumbu xy saat printer sedang beroperasi untuk memastikan printer berhenti tepat waktu dan mencetak dengan akurat.

Saya memiliki beberapa kode untuk mengontrol laju gerak makan tetapi masalahnya adalah saya tidak yakin di mana saya seharusnya membuat penyesuaian ini. Dalam file configuration.h saya melihat kode ini: (baris 742 dan 753)

/*line 742*/ #define HOMING_FEEDRATE_XY (50*60) 
/*line 753*/ #define DEFAULT_MAX_FEEDRATE {300, 300, 5, 25}  // (mm/sec)

Saya mungkin salah mengerti sesuatu tetapi sepertinya ini mengatur laju gerak makan ke nilai default yang sama dengan maksimum.

Jika laju gerak makan berubah selama pencetakan, saya kira itu akan dilakukan di Marlin_main.cpp tapi saya tidak yakin bagian mana yang benar-benar berubah. Bisakah seseorang mengarahkan saya ke arah yang benar di sini?

Jadikan itu kenyataan
sumber
Laju umpan diatur oleh kode-g yang Anda berikan, mengapa tidak mengatur laju umpan cetak lebih rendah? Satu-satunya hal yang akan Anda ubah di firmware tanpa memodifikasinya adalah tingkat feed maksimum dan homing.
tjb1

Jawaban:

3

Anda dapat mengubah laju gerak makan maksimum yang diizinkan di Configuration.h, tetapi laju gerak makan aktual yang digunakan tidak ditentukan oleh firmware Anda. Kecepatan gerak makan ditentukan dalam file G-Code. Perintah seperti

G0 X10.0 Y15.0 Z3.0 F9000

menunjukkan perpindahan ke (10.15,3) pada laju gerak makan 9000 mm / mnt. Jika F tidak ditentukan, laju gerak makan yang digunakan terakhir digunakan.

Anda hanya perlu memberikan perintah kode-G yang sesuai dengan laju gerak makan yang Anda inginkan di dalamnya. Tidak ada alasan untuk memodifikasi firmware untuk mendapatkan laju gerak makan yang berbeda.

Tom van der Zanden
sumber
Jadi, apakah laju gerak makan harus sama untuk semua sumbu x, y dan z? Anda juga mengetahui bagian mana dari Marlin_main.cpp yang bertanggung jawab untuk membaca perintah dari file G-Code?
wujudkanlah
Tidak, laju gerak makan untuk masing-masing sumbu dihitung sehingga laju gerak makan total adalah 9000 mm / dt (mis., Jarak euclidian antara titik yang dibagi waktu untuk bergerak sama dengan laju gerak makan). Jika Anda beralih dari 0,0 menjadi 2,1 laju gerak makan untuk X akan dua kali lebih tinggi dari laju gerak makan untuk Y. Saya tidak yakin apa yang Anda coba capai, tetapi mengubah firmware mungkin bukan opsi yang tepat . Jika Anda bersikeras, Anda mungkin harus melihat prepare_movefungsinya.
Tom van der Zanden
Anda tidak dapat mengatur laju gerak makan untuk sumbu secara independen karena dengan demikian satu sumbu mungkin mencapai tujuannya sebelum yang lain melakukannya. Anda ingin pindah dari X, Y ke X ', Y' untuk menghasilkan garis lurus. Oleh karena itu laju makan bergantung satu sama lain.
Tom van der Zanden
2

Sepertinya Anda mungkin ingin melihat langkah-langkah per mm.

#define DEFAULT_AXIS_STEPS_PER_UNIT

Baris ini adalah tempat Anda mengkalibrasi jumlah langkah per mm. Untuk mengkalibrasi, tandai titik di sepanjang sumbu, lalu gerakkan sumbu itu sekitar 100 mm. Jika tidak bergerak 100 mm dengan tepat, lakukan perubahan

(how far it moved)       (how far it should have moved)
------------------   =   ------------------------------
(current steps/mm)         (new steps/mm) --> find this
Curt Hayes
sumber
1

Anda memiliki garis untuk menyesuaikan laju umpan. Yang pertama (baris 742) relevan dengan laju umpan maksimum XY saat beranda (tidak selama pencetakan). Saya pikir ini bukan masalah dalam kasus khusus Anda dan Anda dapat membiarkannya apa adanya.

Yang kedua (baris 753) adalah laju umpan saat mencetak untuk XY. Khususnya angka dalam kurung mengacu pada (X, Y, Z, E). Jika printer Anda bergerak, ini dapat mempengaruhi XY lebih dari Z dan E. Jadi, Anda dapat mencoba menyesuaikan dua angka pertama.

Karena situasi yang sangat spesifik tidak mungkin untuk memberi Anda tingkat umpan berdasarkan perhitungan karena Anda berurusan dengan akselerasi eksternal yang disebabkan oleh situasi ponsel. Anda perlu mencoba dan menyesuaikannya sampai Anda benar.

Pengaturan lain yang juga dapat membantu Anda mengkompensasi akselerasi eksternal, jika ada, adalah akselerasi dari kedua sumbu tersebut. Anda harus menemukan dua garis seperti ini:

#define DEFAULT_MAX_ACCELERATION {1500,1500,50,250}    
#define DEFAULT_ACCELERATION 1500 // akselerasi X, Y, Z dan E max dalam mm / s ^ 2 untuk gerakan pencetakan

Namun akselerasi sumbu dapat berdampak pada kualitas pencetakan.

FeliceM
sumber