Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




da dxf a gcode - formule per archi G2/G3


Messaggi consigliati

emanuele oops
Inserito:

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!


Federico Milan
Inserita:

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

emanuele oops
Inserita: (modificato)

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
Federico Milan
Inserita:

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

emanuele.croci
Inserita:

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

emanuele oops
Inserita:

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

emanuele.croci
Inserita:

In bocca al lupo e... grazie per i complimenti!

Ciao, Emanuele

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...