Vai al contenuto
PLC Forum


da dxf a gcode - formule per archi G2/G3


emanuele oops

Messaggi consigliati

emanuele oops

Mi sono bloccato...

non riesco a risolvere in modo soddisfacente i calcoli necessari per convertire da dxf in gcode le curve

nella rappresentazione degli archi il dxf restituisce la tangente di alfa/2 e il gcode richiede il comando G2/3 con il raggio o in alternativa le coordinate del centro dell'arco (I & J)

scopro dopo tanto tempo che non tutti i controller accettano il G2/3 con il raggio (perche per valori di angolo prossimi a 180 e 360 gradi la precisione comincia ad essere critica e anche se raramente ho avuto un blocco macchina per un errore di percorso)

in effetti il problema e' questo:

conoscendo le coord. del punto A e B estremi dell'arco, il raggio e l'angolo, come ricavare in pochi semplici e puliti passaggi, le coordinate del centro.

meglio ancora: determinare le coordinate di intersezione tra una retta e una circonferenza

qualche genio che mi aiuta ?

grazie!

Link al commento
Condividi su altri siti


Federico Milan

Il forum non è specifico di programmazione o di formati grafici!

Per quanto riguarda l'intersezione di una retta con una circonferenza, i punti si trovano ponendo a sistema l'equazione della retta e l'equazione della circonferenza, per esempio

y=R1x+R1

x^2+y^2+C1*x+C2*y+C3=0

che alla fine è una equazione di sencondo grado dove si dovranno tener solo le soluzioni fisicamente valide.

ciao

Link al commento
Condividi su altri siti

emanuele oops

Grazie Federico per il tuo interessamento

non pensavo di invadere un forum destinato ad altro...

comunque c'ero gia' arrivato a questa soluzione, il problema era su quale procedura usare... ma non importa, visto che ho sconfinato!

Non trovo dove chiudere la discussione

Modificato: da emanuele oops
Link al commento
Condividi su altri siti

Federico Milan

Il confine non è rigido, di matematica si tratte, purtroppo l'applicazione di comandi esula e con grande probabilità potresti non trovare il corretto supporto, viceversa se posti sul forum corretto troverai più esperti della materia che potrebbero aiutarti maggiormente.

ciao

Link al commento
Condividi su altri siti

emanuele.croci

Ciao,

pensando di farti cosa gradita, ti posto una subroutine Visual Basic da me scritta qualche anno fa....

In ingresso passi i punti A e B per cui deve passare il tuo arco + il Raggio R richiesto

In uscita ti dà (Xc; Yc), coordinate del centro del cerchio.

Utilizza il suo interno 2 ulteriori subroutine molto facili, DISTANZA (la distanza tra 2 punti usando il teorema di Pitagora) e ANGOLO (l'angolo in radianti tra la retta AB e l'asse delle ascisse).

Se vuoi posso postarle, comunque sono molto banali...

Ciao, Emanuele

P.S.: il metodo usato è: Nel triangolo isoscele ABC (C=centro del cerchio), trovo l'angolo CAB e, da qui, trovo l'angolo formato tra AC e l'asse delle ascisse.

da qui, sapendo che la distanza tra A e C è pari al raggio, avrò che

Xc=Xa + R * cos (angoloCA)= Xa + AC * cos(angoloCA)

evidentemente AC=R

Link al commento
Condividi su altri siti

emanuele oops

pensavo di aver risolto (con una equazione di 2° grado) ed avevo dimenticato la richiesta di aiuto...

ma quando ho visto la tua soluzione sono rimasto entusiasta dalla semplicita' e bellezza delle poche righe di programma!

appena posso provero' la tua soluzione e ti faro' sapere

grazie e worthy.gif ti faro' sapere

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...