nurbs

Sezione dedicata a Linuxcnc
Rispondi
xemet
Senior
Senior
Messaggi: 2435
Iscritto il: martedì 14 novembre 2006, 9:13
Località: Palermo
Contatta:

nurbs

Messaggio da xemet » venerdì 9 marzo 2007, 15:22

per ora sto lavorando ad una modifica al codice sorgente di EMC2 che consiste nell'aggiunta di un codice G per poter disegnare delle curve nurbs.
Il codice è in due parti, G5.2 permette di inserire i punti di controllo e i pesi, mentre G5.3 disegna la curva.
La nurbs non viene calcolata in real time perchè questo comporterebbe modifiche non indifferenti al pianificatore della traiettoria, viene invece approssimata in "biarchi" ovvero coppie di archi tangenti tra loro. I biarchi sono anche tangenti uno con l'altro, quindi in pratica alla fine si hanno tutti archi tangenti uno con l'altro, e quindi un movimento molto fluido.




qui c'è un immagine delle prime prove:
stessi punti di controllo per ogni curva, ma ordine k differente.

ciaoo
Non hai i permessi necessari per visualizzare i file e le foto allegati in questo messaggio. Per visualizzare tali file devi registrarti ed effettuare il Login
Ultima modifica di xemet il lunedì 12 marzo 2007, 14:49, modificato 4 volte in totale.

"la risata è qualcosa di molto potente e solo le persone civili, le persone libere ed emancipate, sanno ridere di se stesse" Doris Lessing

my websites:
http://www.xemet.altervista.org
http://www.emc2cnc.altervista.org

Dino
Senior
Senior
Messaggi: 815
Iscritto il: lunedì 13 novembre 2006, 23:08
Località: Dolomiti (BL)
Contatta:

Re: nurbs

Messaggio da Dino » venerdì 9 marzo 2007, 19:15

xemet ha scritto:per ora sto lavorando ad una modifica al codice sorgente di EMC2 che consiste nell'aggiunta di un codice G per poter disegnare delle curve nurbs.
Il codice è in due parti, G5.2 permette di inserire i punti di controllo e i pesi, mentre G5.3 disegna la curva.
Senza dubbio interessante, complimenti.

Dino
NON più moderatore della sezione EMC ( http://www.linuxcnc.org/ )
Felice utilizzatore di GNU/Linux http://www.gnu.org/ http://www.kernel.org/
Linux Registered User #192043 http://counter.li.org/
Sito internet http://dino.delfavero.it/

Avatar utente
tandu
Senior
Senior
Messaggi: 705
Iscritto il: martedì 14 novembre 2006, 9:55
Località: Roma
Contatta:

Messaggio da tandu » venerdì 9 marzo 2007, 19:39

E' molto interessante!
Una cosa carina sarebbe quella di aggiungere delle funzionalità  limitate, tipiche del CAD, che ti permettono di fare piccoli aggiustamenti prima di fare la lavorazione

Buon lavoro!!
Giuseppe

xemet
Senior
Senior
Messaggi: 2435
Iscritto il: martedì 14 novembre 2006, 9:13
Località: Palermo
Contatta:

Messaggio da xemet » venerdì 9 marzo 2007, 21:18

sto realizzando una piccola interfaccia in Python in cui è possibile disegnare le nurbs.

Usando la funzione "filter" di emc è possibile fare aprire ad AXIS un file .py (script python), questo script deve mandare in uscita (semplici print...) la serie di g code che servono alla lavorazione. In pratica apri EMC2, in AXIS nella finestra per aprire un file, scegli il file .py che lancia il programma, dopo di che nel programma ti disegni la nurbs, la cambi come vuoi e poi la mandi sottoforma di gcode ad AXIS dal quale finalmente puoi eseguire la lavorazione.
ovviamente è ancora tutto a livello molto basilare...a poco a poco crescerà , l'intento è quello di arrivare alle superfici.
E soprattutto io non sono un programmatore professionista...ma molto autodidatta. Prima della modifica fatta ai sorgenti di EMC2 non avevo mai scritto in C...anche se comunque con l'esperienza di altri linguaggi ho capito che alla fine impararne uno nuovo non è tanto terribile...tralaltro conoscevo bene il Pascal...che è sicuramente più vicino al C che non il Python...

Ciaoo
Non hai i permessi necessari per visualizzare i file e le foto allegati in questo messaggio. Per visualizzare tali file devi registrarti ed effettuare il Login
Ultima modifica di xemet il lunedì 12 marzo 2007, 19:35, modificato 1 volta in totale.

"la risata è qualcosa di molto potente e solo le persone civili, le persone libere ed emancipate, sanno ridere di se stesse" Doris Lessing

my websites:
http://www.xemet.altervista.org
http://www.emc2cnc.altervista.org

Avatar utente
kalytom
Administrator
Administrator
Messaggi: 42377
Iscritto il: lunedì 13 novembre 2006, 9:17
Località: Poggiomarino (Na)
Contatta:

Messaggio da kalytom » venerdì 9 marzo 2007, 22:15

quanto sono ignorante !
Immagine

Dino
Senior
Senior
Messaggi: 815
Iscritto il: lunedì 13 novembre 2006, 23:08
Località: Dolomiti (BL)
Contatta:

info

Messaggio da Dino » sabato 10 marzo 2007, 1:08

Ciao,
ho iniziato tre-quattro anni fa, e non ancora terminato, la scrittura in C, con le API gtk e con il supporto per la visualizzazione delle API OpenGL un cam che importa un file dxf e crea in output un file G-code, è ancora in alpha dato che non ho avuto tempo ma a breve penso di riprendere in mano il progetto, posso chiederti se hai del materiale per studiare la matematica delle curve e superfici nurbs?

Allego uno screenshot del programma.

Grazie
Dino
Non hai i permessi necessari per visualizzare i file e le foto allegati in questo messaggio. Per visualizzare tali file devi registrarti ed effettuare il Login
NON più moderatore della sezione EMC ( http://www.linuxcnc.org/ )
Felice utilizzatore di GNU/Linux http://www.gnu.org/ http://www.kernel.org/
Linux Registered User #192043 http://counter.li.org/
Sito internet http://dino.delfavero.it/

Avatar utente
tandu
Senior
Senior
Messaggi: 705
Iscritto il: martedì 14 novembre 2006, 9:55
Località: Roma
Contatta:

Messaggio da tandu » sabato 10 marzo 2007, 9:42

Secondo me un lavoro anche interessante é gcam scritto in c con l'uso del gtk, ultimamente è stato fatto anche il porting su windows. Gli volevo aggiungere una funziona di import per file dxf 2D, ma non ho avuto tempo :(
Giuseppe

xemet
Senior
Senior
Messaggi: 2435
Iscritto il: martedì 14 novembre 2006, 9:13
Località: Palermo
Contatta:

Messaggio da xemet » sabato 10 marzo 2007, 13:07

gcam non l'ho ancora provato...

e dire che gli ho anche dato dei soldi :)


x Dino, si ho un libro in inglese sulle curve e superfici con tutta la matematica che serve, solo che non ricordo il titolo e non l'ho qui perchè ieri l'ho lasciato all'università , lunedì ti faccio sapere.
Comunque per le semplici curve mi sono basato anche su una dispensina di un mio professore (che poi ho visto essere presa praticamente da quel libro), le nurbs sono praticamente uguali alle b-spline come formulazione, cambia solo che ci sono i pesi che modificano come viene "attratta" la curva dal punto di controllo.

Ciaoo

"la risata è qualcosa di molto potente e solo le persone civili, le persone libere ed emancipate, sanno ridere di se stesse" Doris Lessing

my websites:
http://www.xemet.altervista.org
http://www.emc2cnc.altervista.org

Dino
Senior
Senior
Messaggi: 815
Iscritto il: lunedì 13 novembre 2006, 23:08
Località: Dolomiti (BL)
Contatta:

Messaggio da Dino » domenica 11 marzo 2007, 12:37

tandu ha scritto:Secondo me un lavoro anche interessante é gcam scritto in c con l'uso del gtk, ultimamente è stato fatto anche il porting su windows. Gli volevo aggiungere una funziona di import per file dxf 2D, ma non ho avuto tempo :(
Se ti serve il codice C per leggere un file .dxf, ti posso dare i file che ho scritto per il mio progetto, legge il file e restituisce gli archi, linee, punti, superfici, ecc.
xemet ha scritto:si ho un libro in inglese sulle curve e superfici con tutta la matematica che serve, solo che non ricordo il titolo e non l'ho qui perchè ieri l'ho lasciato all'università , lunedì ti faccio sapere.
Non ti preoccupare non ho fretta, è più per cultura che per uso a breve.

Grazie
Dino
NON più moderatore della sezione EMC ( http://www.linuxcnc.org/ )
Felice utilizzatore di GNU/Linux http://www.gnu.org/ http://www.kernel.org/
Linux Registered User #192043 http://counter.li.org/
Sito internet http://dino.delfavero.it/

Avatar utente
tandu
Senior
Senior
Messaggi: 705
Iscritto il: martedì 14 novembre 2006, 9:55
Località: Roma
Contatta:

Messaggio da tandu » domenica 11 marzo 2007, 14:41

Ciao Dino,
Se mi dai il codice posso provare ad integrarlo con gcam, anche se adesso sono più orientato ad usare cambam ... questione di tempo :(
Giuseppe

Dino
Senior
Senior
Messaggi: 815
Iscritto il: lunedì 13 novembre 2006, 23:08
Località: Dolomiti (BL)
Contatta:

Messaggio da Dino » domenica 18 marzo 2007, 20:41

tandu ha scritto:Ciao Dino,
Se mi dai il codice posso provare ad integrarlo con gcam, anche se adesso sono più orientato ad usare cambam ... questione di tempo :(
Appena ho un momento copio i file con le funzioni per leggere e scrivere i DXF e te li invio.

Ciao
Dino
NON più moderatore della sezione EMC ( http://www.linuxcnc.org/ )
Felice utilizzatore di GNU/Linux http://www.gnu.org/ http://www.kernel.org/
Linux Registered User #192043 http://counter.li.org/
Sito internet http://dino.delfavero.it/

xemet
Senior
Senior
Messaggi: 2435
Iscritto il: martedì 14 novembre 2006, 9:13
Località: Palermo
Contatta:

Messaggio da xemet » mercoledì 8 agosto 2007, 20:14

a distanza di un po' di tempo ecco una foto di una prima lavorazione effettuata utilizzando la modifica per le NURBS.

Allego anche il g-code per realizzare questa lavorazione se qualcuno volesse capire di cosa si tratta.

G5.2 inizia l'acquisizione deti dai per la realizzazione della nurbs, ovvero i punti di controllo, il peso per ogni punto e il parametro L che definisce il grado della curva (L-1).
G5.3 chiude la sequenza dei punti e definisce la nurbs.

Ciaoo
Non hai i permessi necessari per visualizzare i file e le foto allegati in questo messaggio. Per visualizzare tali file devi registrarti ed effettuare il Login
Ultima modifica di xemet il giovedì 9 agosto 2007, 13:58, modificato 1 volta in totale.

"la risata è qualcosa di molto potente e solo le persone civili, le persone libere ed emancipate, sanno ridere di se stesse" Doris Lessing

my websites:
http://www.xemet.altervista.org
http://www.emc2cnc.altervista.org

Avatar utente
tandu
Senior
Senior
Messaggi: 705
Iscritto il: martedì 14 novembre 2006, 9:55
Località: Roma
Contatta:

Messaggio da tandu » giovedì 9 agosto 2007, 10:14

Bel lavoro!
Pensi di far integrare la funzionalità  alle prossime release di emc2?
Giuseppe

xemet
Senior
Senior
Messaggi: 2435
Iscritto il: martedì 14 novembre 2006, 9:13
Località: Palermo
Contatta:

Messaggio da xemet » giovedì 9 agosto 2007, 13:57

beh, questo non lo so perchè dipende dagli sviluppatori e anche dal fatto che io non sono un programmatore quindi probabilmente la qualità  del mio codice non è paragonabile a quella degli altri.

Comunque è facile generare un file di patch che con un unico comando da terminale trasforma la versione di sviluppo (trunk) in quella modificata da me che poi basta compilare per avere disponibile. Però ancora ci sono un po' di cose da ggiungere/migliorare.

Ciaoo

"la risata è qualcosa di molto potente e solo le persone civili, le persone libere ed emancipate, sanno ridere di se stesse" Doris Lessing

my websites:
http://www.xemet.altervista.org
http://www.emc2cnc.altervista.org

xemet
Senior
Senior
Messaggi: 2435
Iscritto il: martedì 14 novembre 2006, 9:13
Località: Palermo
Contatta:

Messaggio da xemet » venerdì 7 settembre 2007, 10:50

ispirato dal pinguino di Dino (vedi sopra) stamattina ho fatto questo, tutto con le NURBS:

http://www.youtube.com/watch?v=8T6_nFt-VeM

ciaoo

"la risata è qualcosa di molto potente e solo le persone civili, le persone libere ed emancipate, sanno ridere di se stesse" Doris Lessing

my websites:
http://www.xemet.altervista.org
http://www.emc2cnc.altervista.org

Rispondi

Torna a “Linuxcnc”