Oppure

Loading
23/08/16 17:49
antiriti
Sono un ingegnere civile appassionato di Visual basic net. Utilizzando la classe graphitem sto facendo una specie di minicad per disegnare linee e nodi che mi serviranno per fare un successivo schema per il calcolo di travi in c.a o acciaio.
Mi sorge un problema, dovendo lavorare su oggetti eposti da graphitem che espone delle proprietà generali (colore, tratto, ecc...) e non gli oggetti linea creati come faccio ad individuare l'oggetto linea nella classe graphitem dall'esterno? Ho pensato di creare delle collezioni linee all'interno di graphitem ... Non so se va bene cosi, in ogni caso sareste cosi gentili da indirizzarmi?
>> Saluti e grazie
>> Antonino Iriti
aaa
24/08/16 9:14
TheDarkJuster
Per creare un cad, come per un gioco serve un motore "logico" e un "visivo". Il motore visuale elabora ciò che è presente le logico e lo mostra nello schermo.

Il motore logico tiene traccia di tutto ciò che è stato disegnato, delle sue proprietà, della sua posizione, del materiale ecc....

Il motorie visuale di solito si fa con qualcosa di diverso da graphitem..... Solitamente si fa con qualche libreria 3D o 2D.

Una delle più famose librerie 2D per giochi è questa: github.com/flibitijibibo/… ma fa anche molto altro, ad esempio: SDL_RenderDrawPoint, SDL_RenderDrawPoints, SDL_RenderDrawLines e molto, molto altro ancora!
aaa
24/08/16 9:52
antiriti
Grazie per la risposta veloce. Sto già guardando....
aaa
24/08/16 11:26
lumo
Potresti linkare la documentazione a graphitem? Non mi intendo molto di net framework.

Se hai bisogno solo di collegare nodi qualcosa di semplice potrebbe andare, quello che TheDarkJuster chiama "motore logico" è tecnicamente chiamato scenegraph, può diventare anche piuttosto complesso (per non parlare del rendering).

Ti servono 3d, zoom, rotazione eccetera?

Seconda cosa, non capisco bene cosa intendi per trovare l'oggetto linea dall'esterno, potresti spiegarti meglio?
aaa
25/08/16 7:16
antiriti
Graphitem è la classe che è descritta da Piero Tofy nel capitolo 96 della guida al Visual Basic.net pubblicata qui nel sito. L'oggetto linea è una classe che eredita da Graphitem. Dopo che disegno le linee ho bisogno di richiamarle dall'esterno della classe stessa, per fare delle operazioni. Però la classe Graphitem ha un metodo draw per disegnarle e i punti inizio e fine della linea stessa sono proprietà della classe Linea. Io non posso riferirmi alla linea, per esempio con Graphitem.linea.inizio, perché chiaramente la proprietà inizio si riferisce alla linea e non è una proprietà di grahitem. Io avevo pensato che graphitem deve esporre una collection di Linee, chiedevo dei consigli. E' interessante però la costruzione di un motore come suggeriva TheDarkJuster. Si certamente mi serviranno il pan, zoom, magari anche 3d, ma solo per costruire la mesh per schematizzare gli elementi strutturali.
Tenete presente che non sono un programmatore di professione ... grazie per i suggerimenti!
aaa
25/08/16 8:28
TheDarkJuster
3D? Questo è un problema.... Per poter usare il 3D... occorre una libreria 3D, diciamo ad esempio github.com/opentk/… o directx8 (antiche) . Non sarà facile: per poter usare il 3D è necessario studiare MOLTO bene la libreria che si vuole usare e tener conto che potrebbero servirti molti shaders!

Il progetto che ti sei scelto è un progetto abbastanza difficile, anche per chi lo fa per professione. Ci vorrà diverso tempo prima di avere un prototipo funzionante e la strutta del progetto deve essere ben pensata, altrimenti non vedrà mai la luce.
aaa
25/08/16 12:47
lumo
Ah ok, quindi è una classe custom. Per esattezza la guida è di Totem.
Se tutti i graphitem che mostri sono linee, puoi fare un cast alla sottoclasse (non so se sia così, ma in linea teorica l'oggetto che disegni dovrebbe ereditare da GraphItem), dove puoi aggiungere la proprietà linea che ti serve.

Pan e zoom li puoi ottenere con Graphics, il 3D invece no. Purtroppo la mia conoscenza dell'ingegneria civile è totalmente nulla e non riesco a immaginare le tue esigenze.

Una soluzione potrebbe essere quella di usare un programma separato per fare i modelli (magari blender lo fa? boh) e poi importarli nel tuo programma leggendo il formato esportato, quindi fare i calcoli (e così mancherebbe però l'aspetto interattivo probabilmente).
aaa
25/08/16 16:45
antiriti
Si il problema generale è discretizzare le linee che poi diventeranno elementi travi, che sono collegati ai nodi (cioè punti). Questi elementi saranno disegnati da graphitem; successivamente però io devo selezionarli ed impostare caratteristiche fisiche (Modulo di Young, sezione, ecc.). Il motore di calcolo ce l'ho già, fra l'altro scritto in Fortran e tradotto da me in vb6 e vbnet. Per adesos sto lavorando in 2D.... grazie per il vostro contributo!
aaa