Non molte domande qui. OpenGL è un overkill. Potrebbe fornire una bella funzionalità per l'anteprima del lavoro finale, ma sicuramente non è necessario per il disegno.
Pensa a questa cosa come ad un editor grafico dei dati CNC. Tutto ciò che dovresti essere in grado di fare con il CNC dovrebbe essere fattibile qui. Può cambiare il numero di giri del mandrino? Rendilo disponibile per essere collegato a un nodo. Può cambiare la velocità del movimento? Rendilo disponibile. Inizia con questo semplice set di funzionalità - rappresentazione grafica dell'attività, modificabile graficamente. "Aggiungi nodo, rimuovi nodo, sposta nodo, cancella nodo, imposta il livello dell'asse Z, le proprietà del nodo (compresi i comandi speciali come la velocità del mandrino)." Utilizza alcune (eventuali) librerie gfx per visualizzarle tutte.
Una volta che hai iniziato ad aggiungere cose automatiche: le curve di bezier si sono auto-trasformate in serie di linee, cerchi, forme di connessione automatica (alzare il mandrino, muoversi alla massima velocità, mandrino più basso), importare Corel / SVG, sfalsare dalla forma ( questo è importante: si disegna la forma che si desidera ottenere, quindi si sposta il percorso attuale verso l'esterno o verso l'interno in base allo spessore dello strumento di taglio), l'ottimizzazione per gli strumenti conici (un argomento da considerare, gli strumenti conici consentono un'estrema flessibilità), importare di bitmap in scala di grigi come progetti 3D, stepping di profondità (importante - convertire una traccia in più tracce a varie profondità, aumentando la profondità Z ad ogni passo), area di riempimento (per rimuovere una grande quantità di materiale), ottimizzare la forma per più strumenti (prima grezzo, quindi preciso) e così via.
(un punto interessante è che potrebbe essere necessario implementare un algoritmo "Viaggiatore" in un determinato punto: poiché lo strumento grezzo ha rimosso gran parte del materiale, ci sono molte isole separate per lo strumento preciso da "visitare", e possono essere elaborati in ordine arbitrario, quindi collegarli in base al problema del venditore ridurrà al minimo il tempo di viaggio degli strumenti).