Welcome! Log In Create A New Profile

Advanced

Misure di stampa (X,Y,Z) errate

Posted by davgiuffrida 
Misure di stampa (X,Y,Z) errate
July 13, 2016 01:22PM
Salve a tutti,

da poco ho acquistato una stampante 3D JGAurora A-3 e fortunatamente non hoh molti problemi di stampa, l'unico che non sto riuscendo a risolvere s è riuscire a calibrare esattamente le misure di stampa. Con due software ho creato due cubi da (20x20x20)mm, unoc ocon Autodesk 123D Design e l'atro con Sketchup entrambi sono stati stampati con misure fuori quota.

Asse X= 25,50mm
Asse Y= 20,38mm
Asse Z= 20,38mm

Il mio firmware é un MarlinKimbra 4.1.2
Mainboard: Arduino MEGA2560+ Ramps 1.4, paired with the A4982 driver chip

Sul firmware "Configuration_Cartesian.h" ho configurato i seguenti valori:

#define DEFAULT_AXIX_STEPS-PER-UNIT (98.5,100,404,100)

In allegato trovate anche il mio firmware attualmente installato

Spero che qualcuno possa aiutarmi a risolvere questo problema. Grazie a tutti.

Edited 4 time(s). Last edit at 07/13/2016 01:51PM by davgiuffrida.
Attachments:
open | download - MarlinKimbra_12lug16_asse_x.rar (357.7 KB)
Re: Misure di stampa (X,Y,Z) errate
July 14, 2016 02:09AM
Non capisco il tuo dilemma...
...trattasi di normalissima calibrazione di ogni stamante che, per quanto generata da un kit costruiti in grande serie e con grande serità, sarà sempre leggermente diversa dalla sua sorella gemella!
Stampati qualcosa su cui meglio diffondere l'errore, per esempio una L 100x100, ricalcolati gli step x unit di x ed y e risolvi!


Qualcosetta più che un neofina oramai, anche se non si finisce mai d'imparare!
DUE Stampati GEEETech i3B, GT2560+, Marlin GEEETech originale con un paio di modifichine personali (Pin dedicato per la Z Probe e stampa dell'ETE da SD), Barre Trapezie, Estrusore da 0.3 con filo da 1.75, una con estrusore metallico ed una con estrusore ridisegnato e stampato da me, Software AutoCAD/Slic3r/Repetier

My Thingiverse
My Linkedin
Re: Misure di stampa (X,Y,Z) errate
July 14, 2016 10:32AM
steps_per_mm = (nr.steps del motore_per_giro * driver_microstep) / (passo della cinghia * numero denti puleggia motore)

Questa è la formula per il calcolo dei passi motore

di norma i passi motore sono 200, i microstep 1/16, passo cinghia 2 (se GT2), nr denti puleggia (16,20 ecc)

questi dati comunque li devi ricavare tu dalla tua stampante

oppure con i dati vai su prusa-calculator

ciao
Re: Misure di stampa (X,Y,Z) errate
July 14, 2016 06:40PM
Grazie a tutti per le risposte ;-)

Sono partito con valori di
#define DEFAULT_AXIX_STEPS-PER-UNIT (98.5,100,404,100). Provando a stampare il cubo da 20x20x20mm, in base alle misure di stampa ottenute mi calcolo e modifico i valori di steps con la formula della proporzione.

Es: Asse X

Valore di steps asse X nel firmware = 98.5
Valore di stampa misurato con un calibro digitale X=20,50mm

20.50:98.5=20:x
x= (98.5x20)/20.50= 96.09= 96.10

Il valore di X già sistemato, adesso sto provando con l'asse Y e Z.

Grazie ancora

Edited 1 time(s). Last edit at 07/15/2016 05:22PM by davgiuffrida.
Re: Misure di stampa (X,Y,Z) errate
July 15, 2016 10:48AM
ciao
se puoi evita i valori dopo la virgola
es: 90.2 o 90 o 91
95.7 o 96 o 95
possibilmente arrotonda per intero
Re: Misure di stampa (X,Y,Z) errate
July 15, 2016 05:21PM
Ciao Amerigo,

ho letto adesso il tuo messaggio dopo che già sono riuscito a trovare tutti i valori corretti su tutti gli assi. Su un diametro di 52mm ho un errore -+ 1/10mm, quindi credo che sia accettabile. Per quanto riguarda da evitare i numeri dopo le virgole li ho inseriti ugualmente, ma se mi consigli di toglierli e di arrotondare posso cambiarli da subito, ma una curiosità, come mai conviene toglierli? Non possono rimanere? Cosa succede?

Grazie per i tuoi consigli
Re: Misure di stampa (X,Y,Z) errate
July 17, 2016 02:43AM
Ciao
Ho letto un post su questo forum ma non lo trovo
Ti dico quello che ho capito io: i passi motore si spostano 1 2 3 -- 99 100 101 ecc nr interi

Con la virgola il firmware dice di muoversi 3,5 passi
Il motore si sposta di 3 o 4 es: se è già a 10 si sposta a 13 o14 dopo di nuovo il firmware gli dice di muoversi ancora di 3,5
Allora il motore si rutroverà a 16 o a 18 e così via perdendo dei passi se questo lo moltiplichi per centinaia di volte ne va della precisione
Naturalmente questa non è la bibbia.... spinning smiley sticking its tongue out
Re: Misure di stampa (X,Y,Z) errate
July 17, 2016 10:09AM
Quote
Amerigo
...Naturalmente questa non è la bibbia.... spinning smiley sticking its tongue out

Quell'inpostazione del firmware serve come moltiplicatore utilizzato in complicate operazioni matematiche, operazioni che hanno poi l'ultimo risultato arrotondato all'intero per compandare correttamente il motore!
Se arrotondate voi sulla variabile iniziale rischiate un effetto valanga sulla precisione... io, per esempio, li ho un valore con TANTISSIME cifre dopo la virgola, frutto del controllo con calibro elettronico su una stampa di squadretta 100x100!


Qualcosetta più che un neofina oramai, anche se non si finisce mai d'imparare!
DUE Stampati GEEETech i3B, GT2560+, Marlin GEEETech originale con un paio di modifichine personali (Pin dedicato per la Z Probe e stampa dell'ETE da SD), Barre Trapezie, Estrusore da 0.3 con filo da 1.75, una con estrusore metallico ed una con estrusore ridisegnato e stampato da me, Software AutoCAD/Slic3r/Repetier

My Thingiverse
My Linkedin
Re: Misure di stampa (X,Y,Z) errate
July 17, 2016 10:46AM
...dovrei analizzare come funziona il firmware, cosa che francamente è un po' fuori dalla mia portata e dalla mia voglia ma se in un define viene usata una variabile intera questa viene passata intera al precompilatore che procederà al calcolo come numero intero fintanto che all'interno della operazione da svolgere non incontrerà un "real" con un risultato "real".

I reali hanno i loro pro ma anche tanti contro. Il contro maggiore è la lentezza delle operazioni ma non solo: certi numeri non sono riproducibili: per esempio lo 0,1 non esiste in virgola mobile, esiste lo 0,099999 boo ma non lo 0,1 e stessa cosa poi succede a livello di precisione.
Pertanto normalmente per non incorrere in fastidi ove possibile si preferisce sempre lavorare con gli interi, parlo a livello di programmazione, e passare ai virgola mobile solo quando strettamente necessario...
ora 80 step per unit sono poco più di un centesimo? Probabilmente già il firmware adatta la situazione con il calcolo interno.
Re: Misure di stampa (X,Y,Z) errate
July 17, 2016 11:21AM
Quote
qsecofr
...cosa che francamente è un po' fuori dalla mia portata...

Un consiglio spassionato... non è obbbligatorio commentare sempre e comunque, soprattutto quando non ci si sente alla portata di capire come funziona qualcosa...

PS: la define, in C ed anche nella versione Arduino, non è per definizione intera ma dipenda da cosa ci si scrive dentro... se cerchi anche solo con google trovi facilmente che la maggior parte delle stampanti con NEMA 17 + XL belt + puleggia 8 denti hanno 78.74 step per unit...

Edited 3 time(s). Last edit at 07/17/2016 11:27AM by Luca_Benedetto.


Qualcosetta più che un neofina oramai, anche se non si finisce mai d'imparare!
DUE Stampati GEEETech i3B, GT2560+, Marlin GEEETech originale con un paio di modifichine personali (Pin dedicato per la Z Probe e stampa dell'ETE da SD), Barre Trapezie, Estrusore da 0.3 con filo da 1.75, una con estrusore metallico ed una con estrusore ridisegnato e stampato da me, Software AutoCAD/Slic3r/Repetier

My Thingiverse
My Linkedin
Re: Misure di stampa (X,Y,Z) errate
July 17, 2016 01:41PM
come da un post su questo forum

Allora il motore 1,8° per fare un giro fa 200 step, gli step sono una cosa assoluta si muove da un magnete interno all'altro... Tramite un artificio pilotando i due magneti interni in corrente variabile, il motore si sposta di poco tra un magnete e un altro, questi sono i microstep pilotati dal driver.
Ora se abbiamo un driver 1/16 abbiamo 200 * 16 3200 microstep per fare un giro, ma sono 3200 ne uno in più ne uno in meno... Perfetto detto questo, noi dobbiamo dire al fw quanti step servono per far muove un determinato asse di 1 mm, questo dato è ricavato dalla demoltiplica data da pignone e cinta o per chi usa le barre dal passo delle barre...
Quindi se io gli dico devi fare 80 microstep per fare 1 mm il fw darà 80 impulsi al driver che piloterà il motore con 80 microstep facendolo muovere di 80/16 = 5 step e quindi 5 * 1,8° = 9°... Ci siamo fino a quì?
Ora secondo voi e secondo te, se io gli dico che per fare 1 mm servono 79.5587128064 il motore cosa fa di quanto si sposta???? quanti microstep farà, quanti ne darà il FW??
Il fw dopo il 79 microstep cosa fa, nulla si ferma al 79...
Se cerchi di spostarti di 2 mm ne farà 79,5587128064 * 2 = 159,1174256128 quindi ne farà 159. Se ti sposti di 10 mm sono 795,587128064 ~ 795. Se fai 2 cm quindi 20 mm sono 1591,174256128 ~ 1591 un continuo arrotondamento che cambia i valori.. E visto che il valore più piccolo è il mm avrai sempre un arrotondamento intorno a quel mm...
Il cubetto serve per calcolare se gli step sono giusti, ma se esce da 2 cm quando doveva essere da 1 cm e quindi hai gli step raddoppiati, ma non misurarlo al decimo variando la virgola e aggiungere numeri dopo la virgola all'infinito che tanto non servono a nulla.....
Se hai quelle variazioni potrebbe essere un deposito eccessivo o meno del filo..
Gli step nel tuo caso devono essere 80 e basta quello è il valore giusto....
Re: Misure di stampa (X,Y,Z) errate
July 17, 2016 02:53PM
Quote
Luca_Benedetto
Un consiglio spassionato... non è obbbligatorio commentare sempre e comunque, soprattutto quando non ci si sente alla portata di capire come funziona qualcosa...

PS: la define, in C ed anche nella versione Arduino, non è per definizione intera ma dipenda da cosa ci si scrive dentro... se cerchi anche solo con google trovi facilmente che la maggior parte delle stampanti con NEMA 17 + XL belt + puleggia 8 denti hanno 78.74 step per unit...

mi scuso se ho infastidito con il mio post. Rileggendolo mi sono reso conto di averlo scritto non male: malissimo e le mie intenzioni sono state pertanto interpretate male.... sembrava un trattato di C più che una richiesta di approfondimento ma nelle mie intenzioni c'era una richiesta di approfondire l'argomento (come state facendo) ed in particolare mi chiedevo se la dichiarazione intera (tipo scrivere 80) invece che in virgola mobile (tipo scrivere 80.0) di questi step poteva portare ad aumenti/diminuzioni del carico computazionale oppure ad arrotondamenti "non consoni" di qualche importanza.
Io la define in se la capisco : dove ho difficoltà è nell'individuare in un firmware da non so quante righe esattamente dove stiano le righe di codice "magico" che fanno il conto: se le avessi trovate mi sarei dato un risposta da solo, mi sarei messo il cuore in pace e non avrei postato nulla. Purtroppo ancora non le ho individuate e sono rimasto con la mia curiosità.
Comunque ancora scusa: e... la prossima volta, per dirla come l'avrebbe detto il mio vecchio professore: tra quello che dico, quello che scrivo e quello che penso preferite sempre quello che penso anche se non si capisce.smiling smiley
Re: Misure di stampa (X,Y,Z) errate
July 17, 2016 04:59PM
Che confusione!!! confused smiley Adesso si che ho le idee chiare confused smileyeye popping smileywinking smiley
Comunque a questo punto non so se devo lasciare la virgola o mettere gli interi, visto che per adesso sta funzionando lascio il firmware con le virgole, se più aventi dovessi avere problemi allora inizierò ad usare gli interi, senza offesa per nessuno smileys with beer
Anzi, grazie a tutti per la discussione animata thumbs upspinning smiley sticking its tongue out, spero solo che almeno possa servire anche a qualcun'altro.
Re: Misure di stampa (X,Y,Z) errate
July 18, 2016 04:30AM
quanto esposto da Amerigo non fa una piega, è perfetto, i motori sono quelli, i driver pure e con una GT2 e una puleggia con 20 denti per muoversi di 1 mm occorrono 80 microstep, ma è teoria.
In pratica se i nostri amici cinesi realizzano motori non perfettamente precisi, o la GT2 non ha un passo perfetto di 2 mm o la puleggia ha 20 denti ma un giro non sviluppa proprio 40 mm, o la somma delle 3 cose se siamo proprio fortunati cosa succede? quando dico all'asse X di spostarsi di 100 mm e lui ne fa 98 o 102 cosa faccio?
Re: Misure di stampa (X,Y,Z) errate
July 18, 2016 05:13AM
Devo precisare il post l' ho copiato pari pari, non è mio.
C11610c
Puoi mettere i passi a 79 78 o 81 82 ecc se si ha già 80 ma numeri interi comunque spinning smiley sticking its tongue out
Ciao
Re: Misure di stampa (X,Y,Z) errate
July 18, 2016 05:17AM
Quote
c11610o
...quando dico all'asse X di spostarsi di 100 mm e lui ne fa 98 o 102 cosa faccio?

Io ho messo una cifra con TANTISSIME cifre dopo la virgola, tipo 79.123456767 ed ora 100mm sono esattamente 100mm, misurati con il calibro digitale.

Per la cronaca ho controllato dove quella variabile viene usata, sia in Marlin che in MarlinKimbra...
...in entrambi i firmware l'unico posto dove viene usata è in configuration_store.cpp per inizializzare una variabile di tipo FLOAT: float tmp1[] = DEFAULT_AXIS_STEPS_PER_UNIT;

Edited 1 time(s). Last edit at 07/18/2016 05:20AM by Luca_Benedetto.


Qualcosetta più che un neofina oramai, anche se non si finisce mai d'imparare!
DUE Stampati GEEETech i3B, GT2560+, Marlin GEEETech originale con un paio di modifichine personali (Pin dedicato per la Z Probe e stampa dell'ETE da SD), Barre Trapezie, Estrusore da 0.3 con filo da 1.75, una con estrusore metallico ed una con estrusore ridisegnato e stampato da me, Software AutoCAD/Slic3r/Repetier

My Thingiverse
My Linkedin
Re: Misure di stampa (X,Y,Z) errate
July 18, 2016 05:47AM
Ok ragazzi, fortunatamente non ho problemi di questo tipo, il mio intervento aveva lo scopo di sollevare qualche dubbio ad Amerigo.
il n° di micropassi del motore ovviamente è intero, quindi se imposto 79,35 nel fw e sposto di un mm, in realtà il motore farà 79 micropassi, ma se gli dico di spostarsi di 100 mm ne farà 7935, che è intero, e avrò uno spostamento più preciso di quello che avrei avuto impostando 79 nel fw. O no?
Re: Misure di stampa (X,Y,Z) errate
July 18, 2016 06:07AM
Quote
c11610o
...quindi se imposto 79,35 nel fw e sposto di un mm...

c11610o, guarda che si chiama catena d'arrotondamento... si devono lasciare tutte le cifre dopo la vigola possibili fino all'ultimo, per evitare un arrotondamento anticipato che potrebbe falsare il risultato finale!
Basi di programmazione CAx...


Qualcosetta più che un neofina oramai, anche se non si finisce mai d'imparare!
DUE Stampati GEEETech i3B, GT2560+, Marlin GEEETech originale con un paio di modifichine personali (Pin dedicato per la Z Probe e stampa dell'ETE da SD), Barre Trapezie, Estrusore da 0.3 con filo da 1.75, una con estrusore metallico ed una con estrusore ridisegnato e stampato da me, Software AutoCAD/Slic3r/Repetier

My Thingiverse
My Linkedin
Re: Misure di stampa (X,Y,Z) errate
July 18, 2016 06:53AM
Quote
Luca_Benedetto

Per la cronaca ho controllato dove quella variabile viene usata, sia in Marlin che in MarlinKimbra...
...in entrambi i firmware l'unico posto dove viene usata è in configuration_store.cpp per inizializzare una variabile di tipo FLOAT: float tmp1[] = DEFAULT_AXIS_STEPS_PER_UNIT;

...che è d'appoggio e poco dopo viene usato per valorizzata la classe planner con gli axis_steps_per_unit sempre float e poi viene fatta la moltiplicazione X * axis_steps_per_unit e messo il risultato questa volta in un long... ho guardato meglio.
quindi hai perfettamente ragione tu: non so quante cifre decimali abbia senso mettere ma tanto il conto è sempre fatto sui float quindi male non fa comunque. Ora sono contento.

Edited 1 time(s). Last edit at 07/18/2016 07:41AM by qsecofr.
Re: Misure di stampa (X,Y,Z) errate
July 26, 2016 11:06AM
Ciao
Vi dico come la vedo io
diciamo che per fare un centimetro al motore servano 80 passi, ma tenendo conto delle variabili (es: giochi, tolleranze ecc) ne servano 87
metto 87 nel firmware e lui mi fa 87 passi precisi precisi, se li dico di fare 10 cm lui fa 870 passi ne uno in piu ne uno in meno altrimenti mi sballa le misure.

ora mettiamo nel firmware 87,+tutte le cifre che volete.. alla fine dopo complicate operazioni mi deve restituire un numero intero cioè 87 ne uno in piu ne uno in meno

penso anche, ognuno con la propria conoscenza e/o esperienza possa sentirsi libero di dire la sua, il forum è anche per questo.

non volevo dirlo ma per correttezza il post copiato è del Mago
Re: Misure di stampa (X,Y,Z) errate
July 26, 2016 12:54PM
Il mago conosce il suo firmware (ovviamente) alla perfezione, e come ogni programmatore non che si rispetti, ma con i controc..ni ha centrato a pieno il problema:

Quote
Amerigo
...alla fine dopo complicate operazioni mi deve restituire un numero intero...

La chiave di tutto è "alla fine", se inizi ad approssimare prima ti va bene quando chiedi esattamente 100,00mm, ma se ne chiedi 99,95mm l'approssimazione ti può giocare brutti scherzi, per questo nella programmazione CNC, in quella CAD, in tutte quelle degli azionamenti, le approssimazioni si devono SEMPRE fare all'ultimo momento, per non sommare catene d'approssimazione successiva!


Qualcosetta più che un neofina oramai, anche se non si finisce mai d'imparare!
DUE Stampati GEEETech i3B, GT2560+, Marlin GEEETech originale con un paio di modifichine personali (Pin dedicato per la Z Probe e stampa dell'ETE da SD), Barre Trapezie, Estrusore da 0.3 con filo da 1.75, una con estrusore metallico ed una con estrusore ridisegnato e stampato da me, Software AutoCAD/Slic3r/Repetier

My Thingiverse
My Linkedin
[Risolto]: Misure di stampa (X,Y,Z) errate
July 28, 2016 04:54AM
So che è una domanda banale e non è nella discussione corretta. Il problema è stato risolto e vorrei aggiungerlo sul titolo del topic, qualcuno può aiutarmi? Grazie

Edited 1 time(s). Last edit at 07/28/2016 05:23AM by davgiuffrida.
Sorry, only registered users may post in this forum.

Click here to login